Add unit tests for ModuleInfoParser

This commit is contained in:
Kijin Sung 2020-07-07 18:04:17 +09:00
parent 9d88e53439
commit 1abdb2d788
4 changed files with 96 additions and 0 deletions

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">테스트 모듈</title>
<title xml:lang="en">Test Module</title>
<description xml:lang="ko">유닛 테스트용 모듈입니다.</description>
<description xml:lang="en">This module is for unit testing.</description>
<version>2.0</version>
<date>2020-07-07</date>
<category>service</category>
<license link="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GPLv2</license>
<author email_address="devops@rhymix.org" link="https://rhymix.org">
<name xml:lang="ko">Rhymix 개발자</name>
<name xml:lang="en">Rhymix Developer</name>
</author>
<author email_address="other.developer@rhymix.org">
<name xml:lang="ko">다른 개발자</name>
<name xml:lang="en">Other Developer</name>
</author>
</module>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants>
<grant name="view" default="guest">
<title xml:lang="ko">열람</title>
<title xml:lang="en">View</title>
</grant>
</grants>
<actions>
<action name="dispTestView" type="view" permission="view" standalone="false" index="true">
<route route="$document_srl:int" priority="100" />
<route route="$document_srl:int/comment/$comment_srl:int" priority="70" />
<route route="$document_srl:int/tag/$tag:word" priority="50" />
</action>
<action name="dispTestWrite" type="view" permission="view" standalone="false" meta-noindex="true" route="write" global_route="true" />
<action name="procTestSubmitData" type="controller" standalone="false" check-csrf="false" ruleset="submitData" />
<action name="dispTestAdminIndex" type="view" admin_index="true" menu_name="test" menu_index="true" />
<action name="procTestAdminSubmitData" type="controller" permission="manager" check_var="module_srl" check_type="thisisatest" method="GET|POST" />
<action name="dispTestErrorHandler" type="view" standalone="true" error-handlers="404" />
</actions>
<menus>
<menu name="test" type="all">
<title xml:lang="ko">테스트 메뉴</title>
<title xml:lang="en">Test Menu</title>
</menu>
</menus>
<permissions>
<permission action="procTestSubmitData" target="view" />
</permissions>
</module>

View file

@ -0,0 +1,10 @@
<?php
class ModuleActionParserTest extends \Codeception\TestCase\Test
{
public function testLoadXML()
{
$info = Rhymix\Framework\Parsers\ModuleActionParser::loadXML(\RX_BASEDIR . 'tests/_data/module/module.xml');
$this->assertTrue(is_object($info));
}
}

View file

@ -0,0 +1,37 @@
<?php
class ModuleInfoParserTest extends \Codeception\TestCase\Test
{
public function testLoadXML()
{
Context::init();
Context::setLangType('ko');
$info = Rhymix\Framework\Parsers\ModuleInfoParser::loadXML(\RX_BASEDIR . 'tests/_data/module/info.xml');
$this->assertTrue(is_object($info));
$this->assertEquals('테스트 모듈', $info->title);
$this->assertEquals('유닛 테스트용 모듈입니다.', $info->description);
$this->assertEquals('2.0', $info->version);
$this->assertEquals('20200707', $info->date);
$this->assertEquals('service', $info->category);
$this->assertEquals('GPLv2', $info->license);
$this->assertEquals('https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html', $info->license_link);
$this->assertTrue(is_array($info->author));
$this->assertEquals('Rhymix 개발자', $info->author[0]->name);
$this->assertEquals('devops@rhymix.org', $info->author[0]->email_address);
$this->assertEquals('https://rhymix.org', $info->author[0]->homepage);
$this->assertEquals('다른 개발자', $info->author[1]->name);
$this->assertEquals('other.developer@rhymix.org', $info->author[1]->email_address);
$this->assertEquals('', $info->author[1]->homepage);
Context::setLangType('en');
$info = Rhymix\Framework\Parsers\ModuleInfoParser::loadXML(\RX_BASEDIR . 'tests/_data/module/info.xml');
$this->assertEquals('Test Module', $info->title);
$this->assertEquals('This module is for unit testing.', $info->description);
$this->assertEquals('Rhymix Developer', $info->author[0]->name);
$this->assertEquals('dispTestView', $info->default_index_act);
$this->assertEquals('dispTestAdminIndex', $info->admin_index_act);
$this->assertTrue(is_array($info->error_handlers));
$this->assertEquals('dispTestErrorHandler', $info->error_handlers[404]);
}
}