Skip to content

Commit

Permalink
Update unit tests for latest codeception
Browse files Browse the repository at this point in the history
  • Loading branch information
kijin committed Jan 28, 2021
1 parent 0db0228 commit f46b41f
Show file tree
Hide file tree
Showing 12 changed files with 331 additions and 295 deletions.
12 changes: 7 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,18 @@ jobs:
- name: PHP Lint
run: if find . -name "*.php" ! -path "./vendor/*" -print0 | xargs -0 -n 1 -P 8 php -l | grep -v "No syntax errors detected"; then exit 1; fi

- name: Download codeception
if: matrix.php != '8.0'
run: wget https://codeception.com/releases/2.3.9/codecept.phar
- name: Download codeception (PHP 7.2 and above)
if: matrix.php >= '7.2'
run: wget https://codeception.com/codecept.phar

- name: Download codeception (PHP 7.1 and below)
if: matrix.php <= '7.1'
run: wget https://codeception.com/php56/codecept.phar

- name: Run PHP development server
if: matrix.php != '8.0'
run: php -S localhost:8000 &

- name: Build and run codeception
if: matrix.php != '8.0'
run: |
php codecept.phar build
php codecept.phar run --debug --fail-fast --env travis
2 changes: 1 addition & 1 deletion codeception.dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ paths:
log: tests/_output
data: tests/_data
helpers: tests/_support
bootstrap: _bootstrap.php
settings:
bootstrap: _bootstrap.php
colors: true
memory_limit: 1024M
error_level: "E_ALL & ~E_STRICT & ~E_DEPRECATED & ~E_NOTICE"
Expand Down
10 changes: 10 additions & 0 deletions common/framework/db.php
Original file line number Diff line number Diff line change
Expand Up @@ -1196,6 +1196,16 @@ public function getTotalElapsedTime(): float
return $this->_total_time;
}

/**
* Enable or disable debug comments.
*
* @param bool $enabled
*/
public function setDebugComment(bool $enabled)
{
$this->_debug_comment = $enabled;
}

/**
* ========================== DEPRECATED METHODS ==========================
* ==================== KEPT FOR COMPATIBILITY WITH XE ====================
Expand Down
481 changes: 253 additions & 228 deletions tests/unit/classes/FrontEndFileHandlerTest.php

Large diffs are not rendered by default.

33 changes: 13 additions & 20 deletions tests/unit/classes/ValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,25 @@ class ValidatorTest extends \Codeception\TestCase\Test
{
public function _before()
{
$ob_level = ob_get_level();

//$oContext = Context::getInstance();
//$oContext->init();

$ob_level = ob_get_level();

Context::init();
while (ob_get_level() > $ob_level)
{
ob_end_clean();
}
}

public function _after()
{
Rhymix\Framework\Storage::deleteDirectory(__DIR__ . '/validator/ruleset', true);
}

public function _failed()
{
Rhymix\Framework\Storage::deleteDirectory(__DIR__ . '/validator/ruleset', true);
}

public function testRequired()
{
$vd = new Validator();
Expand Down Expand Up @@ -187,20 +195,5 @@ public function testConditionXml()
$js = $vd->getJsPath();
$this->assertEquals(trim(file_get_contents(__DIR__ . '/validator/condition.en.js')), trim(file_get_contents($js)));
}

protected function tearDown()
{
// remove cache directory
$cache_dir = __DIR__ . '/validator/ruleset';
if(is_dir($cache_dir))
{
$files = (array)glob($cache_dir.'/*');
foreach($files as $file)
{
unlink($file);
}
rmdir($cache_dir);
}
}
}

6 changes: 6 additions & 0 deletions tests/unit/framework/DBTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

class DBTest extends \Codeception\TestCase\Test
{
public function _before()
{
$oDB = Rhymix\Framework\DB::getInstance();
$oDB->setDebugComment(false);
}

public function testGetInstance()
{
$oDB = Rhymix\Framework\DB::getInstance();
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/framework/DebugTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public function testDebugError()
$errors = Rhymix\Framework\Debug::getErrors();
$this->assertGreaterThanOrEqual(1, count($errors));
$error = array_pop($errors);
$this->assertContains('Rhymix', $error->message);
$this->assertStringContainsString('Rhymix', $error->message);
$this->assertEquals($file, $error->file);
$this->assertEquals($line, $error->line);
Rhymix\Framework\Debug::clearErrors();
Expand Down
42 changes: 21 additions & 21 deletions tests/unit/framework/PaginationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,36 +13,36 @@ public function testCountPages()
public function testCreateLinks()
{
$links = Rhymix\Framework\Pagination::createLinks('index.php?page=', 27, 3);
$this->assertContains('<div class="pagination">', $links);
$this->assertContains('<a href="index.php?page=3">', $links);
$this->assertContains('<span class="page_number">1</span>', $links);
$this->assertContains('<span class="page_number">10</span>', $links);
$this->assertStringContainsString('<div class="pagination">', $links);
$this->assertStringContainsString('<a href="index.php?page=3">', $links);
$this->assertStringContainsString('<span class="page_number">1</span>', $links);
$this->assertStringContainsString('<span class="page_number">10</span>', $links);

$links = Rhymix\Framework\Pagination::createLinks('/foo/bar/page/', 27, 13);
$this->assertContains('<div class="pagination">', $links);
$this->assertContains('<a href="/foo/bar/page/13">', $links);
$this->assertContains('<span class="page_number">11</span>', $links);
$this->assertContains('<span class="page_number">20</span>', $links);
$this->assertStringContainsString('<div class="pagination">', $links);
$this->assertStringContainsString('<a href="/foo/bar/page/13">', $links);
$this->assertStringContainsString('<span class="page_number">11</span>', $links);
$this->assertStringContainsString('<span class="page_number">20</span>', $links);

$links = Rhymix\Framework\Pagination::createLinks('/rhymix?page=$PAGE&foo=bar', 27, 25);
$this->assertContains('<div class="pagination">', $links);
$this->assertContains('<a href="/rhymix?page=27&amp;foo=bar">', $links);
$this->assertContains('<span class="page_number">21</span>', $links);
$this->assertContains('<span class="page_number">27</span>', $links);
$this->assertStringContainsString('<div class="pagination">', $links);
$this->assertStringContainsString('<a href="/rhymix?page=27&amp;foo=bar">', $links);
$this->assertStringContainsString('<span class="page_number">21</span>', $links);
$this->assertStringContainsString('<span class="page_number">27</span>', $links);

$links = Rhymix\Framework\Pagination::createLinks('p', 27, 3, 10, Rhymix\Framework\Pagination::COUNT_STYLE_CONTINUOUS);
$this->assertContains('<div class="pagination">', $links);
$this->assertContains('<span class="page_number">1</span>', $links);
$this->assertContains('<span class="page_number">10</span>', $links);
$this->assertStringContainsString('<div class="pagination">', $links);
$this->assertStringContainsString('<span class="page_number">1</span>', $links);
$this->assertStringContainsString('<span class="page_number">10</span>', $links);

$links = Rhymix\Framework\Pagination::createLinks('p', 27, 13, 10, Rhymix\Framework\Pagination::COUNT_STYLE_CONTINUOUS);
$this->assertContains('<div class="pagination">', $links);
$this->assertContains('<span class="page_number">9</span>', $links);
$this->assertContains('<span class="page_number">18</span>', $links);
$this->assertStringContainsString('<div class="pagination">', $links);
$this->assertStringContainsString('<span class="page_number">9</span>', $links);
$this->assertStringContainsString('<span class="page_number">18</span>', $links);

$links = Rhymix\Framework\Pagination::createLinks('p', 27, 25, 10, Rhymix\Framework\Pagination::COUNT_STYLE_CONTINUOUS);
$this->assertContains('<div class="pagination">', $links);
$this->assertContains('<span class="page_number">18</span>', $links);
$this->assertContains('<span class="page_number">27</span>', $links);
$this->assertStringContainsString('<div class="pagination">', $links);
$this->assertStringContainsString('<span class="page_number">18</span>', $links);
$this->assertStringContainsString('<span class="page_number">27</span>', $links);
}
}
4 changes: 2 additions & 2 deletions tests/unit/framework/StorageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -171,14 +171,14 @@ public function testWrite()
$this->assertTrue(Rhymix\Framework\Storage::write($testfile . '1', ''));
$this->assertTrue(file_exists($testfile . '1'));
$this->assertEquals(0, filesize($testfile . '1'));
$this->assertEmpty(0, glob($testfile . '1.tmp.*'));
$this->assertEmpty(glob($testfile . '1.tmp.*'));

// Empty stream copy test
$stream = fopen('php://temp', 'r');
$this->assertTrue(Rhymix\Framework\Storage::write($testfile . '2', $stream));
$this->assertTrue(file_exists($testfile . '2'));
$this->assertEquals(0, filesize($testfile . '2'));
$this->assertEmpty(0, glob($testfile . '2.tmp.*'));
$this->assertEmpty(glob($testfile . '2.tmp.*'));
fclose($stream);

// Umask test
Expand Down
28 changes: 14 additions & 14 deletions tests/unit/framework/parsers/DBTableParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,19 @@ public function testGetCreateQuery()
{
$table = Rhymix\Framework\Parsers\DBTableParser::loadXML(\RX_BASEDIR . 'tests/_data/dbtable/example.xml');
$sql = $table->getCreateQuery('rx_');
$this->assertContains('CREATE TABLE `rx_example` (', $sql);
$this->assertContains('`comment_srl` BIGINT NOT NULL,', $sql);
$this->assertContains('`status` VARCHAR(20) DEFAULT \'PUBLIC\',', $sql);
$this->assertContains('PRIMARY KEY (`example_srl`),', $sql);
$this->assertContains('INDEX `idx_document_srl` (`document_srl`),', $sql);
$this->assertContains('INDEX `idx_module_document_srl` (`module_srl`, `document_srl`),', $sql);
$this->assertContains('INDEX `idx_status` (`status`(6)),', $sql);
$this->assertContains('UNIQUE INDEX `unique_list_order` (`list_order`),', $sql);
$this->assertContains('SPATIAL INDEX `spatial_geometry` (`geometry`),', $sql);
$this->assertContains('FULLTEXT INDEX `fulltext_description` (`description`) WITH PARSER ngram,', $sql);
$this->assertContains('FOREIGN KEY (`module_srl`) REFERENCES `rx_module` (`module_srl`) ON DELETE CASCADE ON UPDATE RESTRICT', $sql);
$this->assertContains('CHECK (list_order < 0)', $sql);
$this->assertContains('CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci', $sql);
$this->assertContains('ENGINE = InnoDB', $sql);
$this->assertStringContainsString('CREATE TABLE `rx_example` (', $sql);
$this->assertStringContainsString('`comment_srl` BIGINT NOT NULL,', $sql);
$this->assertStringContainsString('`status` VARCHAR(20) DEFAULT \'PUBLIC\',', $sql);
$this->assertStringContainsString('PRIMARY KEY (`example_srl`),', $sql);
$this->assertStringContainsString('INDEX `idx_document_srl` (`document_srl`),', $sql);
$this->assertStringContainsString('INDEX `idx_module_document_srl` (`module_srl`, `document_srl`),', $sql);
$this->assertStringContainsString('INDEX `idx_status` (`status`(6)),', $sql);
$this->assertStringContainsString('UNIQUE INDEX `unique_list_order` (`list_order`),', $sql);
$this->assertStringContainsString('SPATIAL INDEX `spatial_geometry` (`geometry`),', $sql);
$this->assertStringContainsString('FULLTEXT INDEX `fulltext_description` (`description`) WITH PARSER ngram,', $sql);
$this->assertStringContainsString('FOREIGN KEY (`module_srl`) REFERENCES `rx_module` (`module_srl`) ON DELETE CASCADE ON UPDATE RESTRICT', $sql);
$this->assertStringContainsString('CHECK (list_order < 0)', $sql);
$this->assertStringContainsString('CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci', $sql);
$this->assertStringContainsString('ENGINE = InnoDB', $sql);
}
}
4 changes: 2 additions & 2 deletions tests/unit/framework/parsers/ModuleActionParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ public function testLoadXML()

// Grant
$this->assertEquals(['view'], array_keys(get_object_vars($info->grant)));
$this->assertEquals('View', $info->grant->view->title);
$this->assertContains($info->grant->view->title, ['View', '열람']);
$this->assertEquals('guest', $info->grant->view->default);

// Menu
$this->assertEquals(['test'], array_keys(get_object_vars($info->menu)));
$this->assertEquals('Test Menu', $info->menu->test->title);
$this->assertContains($info->menu->test->title, ['Test Menu', '테스트 메뉴']);
$this->assertEquals('dispTestAdminIndex', $info->menu->test->index);
$this->assertEquals(['dispTestAdminIndex'], $info->menu->test->acts);
$this->assertEquals('all', $info->menu->test->type);
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/functions/LegacyTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public function testTimeFunctions()
public function testGetEncodedEmailAddress()
{
$this->assertNotEquals('devops@rhymix.org', getEncodeEmailAddress('devops@rhymix.org'));
$this->assertContains('&#X', getEncodeEmailAddress('devops@rhymix.org'));
$this->assertStringContainsString('&#X', getEncodeEmailAddress('devops@rhymix.org'));
}

public function testGetMicrotime()
Expand Down

0 comments on commit f46b41f

Please sign in to comment.