From 52f106968a42210b1456e6b65ab7188ddd27fb90 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sat, 17 May 2025 12:54:47 +0900 Subject: [PATCH] Add unit test for XEXMLParser --- tests/_data/xml/xecompat.xml | 25 +++++++++++++++++ .../{xmlrpc/request.xml => xml/xmlrpc.xml} | 0 .../framework/parsers/XeXmlParserTest.php | 27 +++++++++++++++++++ .../framework/parsers/XmlrpcParserTest.php | 2 +- 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 tests/_data/xml/xecompat.xml rename tests/_data/{xmlrpc/request.xml => xml/xmlrpc.xml} (100%) create mode 100644 tests/unit/framework/parsers/XeXmlParserTest.php diff --git a/tests/_data/xml/xecompat.xml b/tests/_data/xml/xecompat.xml new file mode 100644 index 000000000..85d6479bf --- /dev/null +++ b/tests/_data/xml/xecompat.xml @@ -0,0 +1,25 @@ + + + 기본 레이아웃 + Default Layout + + 라이믹스 + Rhymix + + + + 로고 이미지 + Logo Image + + + 웹 폰트 + Web Font + + Noto Sans + + + Pretendard + + + + diff --git a/tests/_data/xmlrpc/request.xml b/tests/_data/xml/xmlrpc.xml similarity index 100% rename from tests/_data/xmlrpc/request.xml rename to tests/_data/xml/xmlrpc.xml diff --git a/tests/unit/framework/parsers/XeXmlParserTest.php b/tests/unit/framework/parsers/XeXmlParserTest.php new file mode 100644 index 000000000..8ef9a9345 --- /dev/null +++ b/tests/unit/framework/parsers/XeXmlParserTest.php @@ -0,0 +1,27 @@ +assertEquals('Default Layout', $output->layout->title->body); + $this->assertEquals('Rhymix', $output->layout->author->name->body); + $this->assertEquals('https://rhymix.org/', $output->layout->author->attrs->link); + $this->assertEquals('en', $output->layout->author->name->attrs->{'xml:lang'}); + + $this->assertEquals('logo_image', $output->layout->extra_vars->var[0]->attrs->name); + $this->assertEquals('web_font', $output->layout->extra_vars->var[1]->attrs->name); + $this->assertEquals('Noto Sans', $output->layout->extra_vars->var[1]->options[0]->attrs->value); + $this->assertEquals('Pretendard', $output->layout->extra_vars->var[1]->options[1]->title->body); + + $output = Rhymix\Framework\Parsers\XEXMLParser::loadXMLString($xml, 'ko'); + + $this->assertEquals('기본 레이아웃', $output->layout->title->body); + $this->assertEquals('라이믹스', $output->layout->author->name->body); + $this->assertEquals('웹 폰트', $output->layout->extra_vars->var[1]->title->body); + $this->assertEquals('Noto Sans', $output->layout->extra_vars->var[1]->options[0]->attrs->value); + } +} diff --git a/tests/unit/framework/parsers/XmlrpcParserTest.php b/tests/unit/framework/parsers/XmlrpcParserTest.php index e6dd19c6b..3771cb497 100644 --- a/tests/unit/framework/parsers/XmlrpcParserTest.php +++ b/tests/unit/framework/parsers/XmlrpcParserTest.php @@ -4,7 +4,7 @@ class XmlrpcParserTest extends \Codeception\Test\Unit { public function testParse() { - $xml = file_get_contents(\RX_BASEDIR . 'tests/_data/xmlrpc/request.xml'); + $xml = file_get_contents(\RX_BASEDIR . 'tests/_data/xml/xmlrpc.xml'); $params = Rhymix\Framework\Parsers\XMLRPCParser::parse($xml); $this->assertTrue(is_array($params)); $this->assertEquals('board', $params['module']);