diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Renderer/HtmlTableRendererTest.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Renderer/HtmlTableRendererTest.php | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Renderer/HtmlTableRendererTest.php b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Renderer/HtmlTableRendererTest.php new file mode 100644 index 00000000..6cb9b2b6 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Renderer/HtmlTableRendererTest.php @@ -0,0 +1,178 @@ +<?php + +namespace SMW\Test\MediaWiki\Renderer; + +use SMW\MediaWiki\Renderer\HtmlTableRenderer; +use SMW\Tests\Utils\UtilityFactory; + +/** + * @covers \SMW\MediaWiki\Renderer\HtmlTableRenderer + * @group semantic-mediawiki + * + * @license GNU GPL v2+ + * @since 1.9 + * + * @author mwjames + */ +class HtmlTableRendererTest extends \PHPUnit_Framework_TestCase { + + private $stringValidator; + + protected function setUp() { + parent::setUp(); + + $this->stringValidator = UtilityFactory::getInstance()->newValidatorFactory()->newStringValidator(); + } + + public function testCanConstruct() { + + $this->assertInstanceOf( + '\SMW\MediaWiki\Renderer\HtmlTableRenderer', + new HtmlTableRenderer() + ); + } + + public function testAddHeaderItem() { + + $instance = new HtmlTableRenderer(); + $instance->addHeaderItem( 'span', 'lala' ); + + $this->stringValidator->assertThatStringContains( + '<span>lala</span>', + $instance->getHeaderItems() + ); + } + + public function testAddTableHeader() { + + $instance = new HtmlTableRenderer(); + $instance->addHeader( 'lala' ); + + $this->stringValidator->assertThatStringContains( + '<th>lala</th>', + $instance->getHtml() + ); + + $instance = new HtmlTableRenderer( true ); + $instance->addHeader( 'lila' ); + + $this->stringValidator->assertThatStringContains( + '<thead><th>lila</th></thead>', + $instance->getHtml() + ); + } + + public function testAddTableRow() { + + $instance = new HtmlTableRenderer(); + + $instance + ->addCell( 'lala', [ 'class' => 'foo' ] ) + ->addRow() + ->addCell( 'lula' ) + ->addRow(); + + $this->stringValidator->assertThatStringContains( + '<tr class="row-odd"><td class="foo">lala</td></tr><tr class="row-even"><td>lula</td></tr>', + $instance->getHtml() + ); + + $instance = new HtmlTableRenderer(); + + $instance + ->setHtmlContext( true ) + ->addCell( 'lila' ) + ->addRow(); + + $this->stringValidator->assertThatStringContains( + '<tbody><tr class="row-odd"><td>lila</td></tr></tbody>', + $instance->getHtml() + ); + } + + public function testStandardTable() { + + $instance = new HtmlTableRenderer(); + + $instance + ->addCell( 'lala', [ 'rel' => 'tuuu' ] ) + ->addRow( [ 'class' => 'foo' ] ); + + $this->stringValidator->assertThatStringContains( + '<table><tr class="foo row-odd"><td rel="tuuu">lala</td></tr></table>', + $instance->getHtml() + ); + + $instance = new HtmlTableRenderer(); + + $instance + ->addHeader( 'lula' ) + ->addCell( 'lala' ) + ->addRow(); + + $this->stringValidator->assertThatStringContains( + '<table><th>lula</th><tr class="row-odd"><td>lala</td></tr></table>', + $instance->getHtml() + ); + + $instance = new HtmlTableRenderer( true ); + + $instance + ->addHeader( 'lula' ) + ->addCell( 'lala' ) + ->addRow(); + + $this->stringValidator->assertThatStringContains( + '<table><thead><th>lula</th></thead><tbody><tr class="row-odd"><td>lala</td></tr></tbody></table>', + $instance->getHtml() + ); + } + + public function testTransposedTable() { + + $instance = new HtmlTableRenderer(); + + // We need a dedicated header definition to support a table transpose + $instance + ->transpose( true ) + ->addHeader( 'Foo' )->addHeader( 'Bar' ) + ->addCell( 'lala', [ 'class' => 'foo' ] ) + ->addRow() + ->addCell( 'lula', [ 'rel' => 'tuuu' ] )->addCell( 'lila' ) + ->addRow(); + + $this->stringValidator->assertThatStringContains( + '<table data-transpose="1"><tr class="row-odd"><th>Foo</th><td class="foo">lala</td><td rel="tuuu">lula</td></tr><tr class="row-even"><th>Bar</th><td></td><td>lila</td></tr></table>', + $instance->getHtml() + ); + + $instance = new HtmlTableRenderer( true ); + + $instance + ->transpose( true ) + ->addHeader( 'Foo' )->addHeader( 'Bar' ) + ->addCell( 'lala', [ 'class' => 'foo' ] ) + ->addRow() + ->addCell( 'lula' )->addCell( 'lila' ) + ->addRow(); + + $this->stringValidator->assertThatStringContains( // @codingStandardsIgnoreStart phpcs, ignore --sniffs=Generic.Files.LineLength + '<table data-transpose="1"><thead></thead><tbody><tr class="row-odd"><th>Foo</th><td class="foo">lala</td><td>lula</td></tr><tr class="row-even"><th>Bar</th><td></td><td>lila</td></tr></tbody></table>', // @codingStandardsIgnoreEnd + $instance->getHtml() + ); + } + + public function testEmptyTable() { + + $instance = new HtmlTableRenderer(); + + $instance + ->addCell() + ->addRow(); + + $this->assertEmpty( + $instance->getHtml() + ); + } + +} |