diff --git a/tests/_data/lang/lang.xml b/tests/_data/lang/lang.xml new file mode 100644 index 000000000..cafc0a1f7 --- /dev/null +++ b/tests/_data/lang/lang.xml @@ -0,0 +1,23 @@ + + + + + + + + + HTML
내용

]]>
+ HTML
Content

]]>
+ HTML コンテンツ

]]>
+
+ + + + + + + + + + +
\ No newline at end of file diff --git a/tests/unit/framework/parsers/LangParserTest.php b/tests/unit/framework/parsers/LangParserTest.php new file mode 100644 index 000000000..eacb53101 --- /dev/null +++ b/tests/unit/framework/parsers/LangParserTest.php @@ -0,0 +1,68 @@ +_dir); + foreach ($files as $file) + { + if (preg_match('/\.php$/', $file)) + { + Rhymix\Framework\Storage::delete($file); + } + } + } + + public function _after() + { + $files = Rhymix\Framework\Storage::readDirectory(\RX_BASEDIR . $this->_dir); + foreach ($files as $file) + { + if (preg_match('/\.php$/', $file)) + { + Rhymix\Framework\Storage::delete($file); + } + } + } + + public function testConvertDirectory() + { + Rhymix\Framework\Parsers\LangParser::convertDirectory(\RX_BASEDIR . $this->_dir, ['ko', 'en']); + $this->assertTrue(file_exists(\RX_BASEDIR . $this->_dir . '/ko.php')); + $this->assertTrue(file_exists(\RX_BASEDIR . $this->_dir . '/en.php')); + $this->assertFalse(file_exists(\RX_BASEDIR . $this->_dir . '/ja.php')); + $this->assertFalse(file_exists(\RX_BASEDIR . $this->_dir . '/fr.php')); + + $lang = new stdClass; + include \RX_BASEDIR . $this->_dir . '/ko.php'; + $this->assertEquals('테스트 언어', $lang->testlang); + $this->assertEquals('

HTML
내용

', $lang->testhtml); + $this->assertEquals(['foo' => '푸', 'bar' => '바'], $lang->testarray); + + $lang = new stdClass; + include \RX_BASEDIR . $this->_dir . '/en.php'; + $this->assertEquals('Test Lang', $lang->testlang); + $this->assertEquals('

HTML
Content

', $lang->testhtml); + $this->assertEquals(['foo' => 'FOO', 'bar' => 'BAR'], $lang->testarray); + } + + public function testCompileXMLtoPHP() + { + $in = \RX_BASEDIR . $this->_dir . '/lang.xml'; + $out = \RX_BASEDIR . $this->_dir . '/ja.php'; + $noout = \RX_BASEDIR . $this->_dir . '/en.php'; + $result = Rhymix\Framework\Parsers\LangParser::compileXMLtoPHP($in, 'ja', $out); + $this->assertEquals($out, $result); + $this->assertTrue(file_exists($result)); + $this->assertFalse(file_exists($noout)); + + $lang = new stdClass; + include \RX_BASEDIR . $this->_dir . '/ja.php'; + $this->assertEquals('テスト言語', $lang->testlang); + $this->assertEquals('

HTML コンテンツ

', $lang->testhtml); + $this->assertNull($lang->testarray); + } +}