105 lines
3.2 KiB
PHP
105 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace SMW\Tests\Utils\Html;
|
|
|
|
use SMW\Tests\TestEnvironment;
|
|
use SMW\Utils\Html\SummaryTable;
|
|
|
|
/**
|
|
* @covers \SMW\Utils\Html\SummaryTable
|
|
* @group semantic-mediawiki
|
|
*
|
|
* @license GPL-2.0-or-later
|
|
* @since 3.1
|
|
*
|
|
* @author mwjames
|
|
*/
|
|
class SummaryTableTest extends \PHPUnit\Framework\TestCase {
|
|
|
|
private $stringValidator;
|
|
|
|
protected function setUp(): void {
|
|
parent::setUp();
|
|
|
|
$this->stringValidator = TestEnvironment::newValidatorFactory()->newStringValidator();
|
|
}
|
|
|
|
public function testBuildHTML() {
|
|
$instance = new SummaryTable(
|
|
[ 'Foo' => 'Bar' ]
|
|
);
|
|
|
|
$this->stringValidator->assertThatStringContains(
|
|
[
|
|
'<div class="smw-summarytable"><div class="smw-table smwfacttable">',
|
|
'<div class="smw-table-row"><div class="smw-table-cell smwpropname">Foo</div>',
|
|
'<div class="smw-table-cell smwprops">Bar</div></div></div></div>'
|
|
],
|
|
$instance->buildHTML()
|
|
);
|
|
}
|
|
|
|
public function testBuildHTML_SetAttributes() {
|
|
$instance = new SummaryTable(
|
|
[ 'Foo' => 'Bar' ]
|
|
);
|
|
|
|
$instance->setAttributes(
|
|
[
|
|
'Foo' => [ 'style' => 'display:none;' ]
|
|
]
|
|
);
|
|
|
|
$this->stringValidator->assertThatStringContains(
|
|
[
|
|
'<div class="smw-summarytable"><div class="smw-table smwfacttable">',
|
|
'<div class="smw-table-row" style="display:none;"><div class="smw-table-cell smwpropname">Foo</div>',
|
|
'<div class="smw-table-cell smwprops">Bar</div></div></div></div>'
|
|
],
|
|
$instance->buildHTML()
|
|
);
|
|
}
|
|
|
|
public function testBuildHTML_ColumnThreshold() {
|
|
$instance = new SummaryTable(
|
|
[ 'Foo' => 'Bar', 'Foobar' => 'Bar' ]
|
|
);
|
|
|
|
$instance->setColumnThreshold( 1 );
|
|
|
|
$this->stringValidator->assertThatStringContains(
|
|
[
|
|
'<div class="smw-summarytable-columns"><div class="smw-summarytable-columns-2">',
|
|
'<div class="smw-summarytable"><div class="smw-table smwfacttable">',
|
|
'<div class="smw-table-row"><div class="smw-table-cell smwpropname">Foo</div>',
|
|
'<div class="smw-table-cell smwprops">Bar</div></div></div></div></div>',
|
|
'<div class="smw-summarytable-columns-2"><div class="smw-summarytable"><div class="smw-table smwfacttable">',
|
|
'<div class="smw-table-row"><div class="smw-table-cell smwpropname">Foobar</div>',
|
|
'<div class="smw-table-cell smwprops">Bar</div></div></div></div></div></div>'
|
|
],
|
|
$instance->buildHTML( [ 'columns' => 2 ] )
|
|
);
|
|
}
|
|
|
|
public function testBuildHTML_ColumnThreshold_NoImage() {
|
|
$instance = new SummaryTable(
|
|
[ 'Foo' => 'Bar', 'Foobar' => 'Bar' ]
|
|
);
|
|
|
|
$instance->noImage();
|
|
$instance->setColumnThreshold( 1 );
|
|
|
|
$this->stringValidator->assertThatStringContains(
|
|
[
|
|
'<div class="smw-summarytable-imagecolumn"><div class="smw-summarytable-facts">',
|
|
'<div class="smw-summarytable"><div class="smw-table smwfacttable">',
|
|
'<div class="smw-table-row"><div class="smw-table-cell smwpropname">Foo</div><div class="smw-table-cell smwprops">Bar</div></div>',
|
|
'<div class="smw-table-row"><div class="smw-table-cell smwpropname">Foobar</div><div class="smw-table-cell smwprops">Bar</div></div></div></div></div>',
|
|
'<div class="smw-summarytable-image"><div class="smw-summarytable-item-center"><div class="smw-summarytable-noimage"></div></div></div></div>'
|
|
],
|
|
$instance->buildHTML( [ 'columns' => 2 ] )
|
|
);
|
|
}
|
|
|
|
}
|