summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/Utils/HtmlTableTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/Utils/HtmlTableTest.php')
-rw-r--r--www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/Utils/HtmlTableTest.php118
1 files changed, 118 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/Utils/HtmlTableTest.php b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/Utils/HtmlTableTest.php
new file mode 100644
index 00000000..6be1347f
--- /dev/null
+++ b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/Utils/HtmlTableTest.php
@@ -0,0 +1,118 @@
+<?php
+
+namespace SMW\Tests\Utils;
+
+use SMW\Tests\TestEnvironment;
+use SMW\Utils\HtmlTable;
+
+/**
+ * @covers \SMW\Utils\HtmlTable
+ * @group semantic-mediawiki
+ *
+ * @license GNU GPL v2+
+ * @since 3.0
+ *
+ * @author mwjames
+ */
+class HtmlTableTest extends \PHPUnit_Framework_TestCase {
+
+ private $stringValidator;
+
+ protected function setUp() {
+ parent::setUp();
+
+ $this->stringValidator = TestEnvironment::newValidatorFactory()->newStringValidator();
+ }
+
+ public function testStandardTable_Cell_Row() {
+
+ $instance = new HtmlTable();
+
+ $instance->cell( 'Foo', [ 'rel' => 'some' ] );
+ $instance->row( [ 'class' => 'bar' ] );
+
+ $this->stringValidator->assertThatStringContains(
+ '<table><tr class="bar row-odd"><td rel="some">Foo</td></tr></table>',
+ $instance->table()
+ );
+ }
+
+ public function testStandardTable_Header_Cell_Row() {
+
+ $instance = new HtmlTable();
+
+ $instance->header( 'Foo ');
+ $instance->cell( 'Bar' );
+ $instance->row();
+
+ $this->stringValidator->assertThatStringContains(
+ '<table><th>Foo </th><tr class="row-odd"><td>Bar</td></tr></table>',
+ $instance->table()
+ );
+ }
+
+ public function testStandardTable_Header_Cell_Row_IsHtml() {
+
+ $instance = new HtmlTable();
+
+ $instance->header( 'Foo' );
+ $instance->cell( 'Bar' );
+ $instance->row();
+
+ $this->stringValidator->assertThatStringContains(
+ '<table><thead><th>Foo</th></thead><tbody><tr class="row-odd"><td>Bar</td></tr></tbody></table>',
+ $instance->table( [], false, true )
+ );
+ }
+
+ public function testTransposedTable_Cell_Row() {
+
+ $instance = new HtmlTable();
+
+ // We need a dedicated header definition to support a table transpose
+ $instance->header( 'Foo' );
+ $instance->header( 'Bar' );
+
+ $instance->cell( 'lala', [ 'class' => 'foo' ] );
+ $instance->row();
+
+ $instance->cell( 'lula', [ 'rel' => 'tuuu' ] );
+ $instance->cell( 'lila' );
+ $instance->row();
+
+ $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->table( [], true )
+ );
+ }
+
+ public function testTransposedTable_Cell_Row_IsHtml() {
+
+ $instance = new HtmlTable();
+
+ // We need a dedicated header definition to support a table transpose
+ $instance->header( 'Foo' );
+ $instance->header( 'Bar' );
+
+ $instance->cell( 'lala', [ 'class' => 'foo' ] );
+ $instance->row();
+
+ $instance->cell( 'lula', [ 'rel' => 'tuuu' ] );
+ $instance->cell( 'lila' );
+ $instance->row();
+
+ $this->stringValidator->assertThatStringContains(
+ [
+ '<table data-transpose="1"><tbody><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>',
+ '</tbody></table>'
+ ],
+ $instance->table( [], true, true )
+ );
+ }
+
+}