stringValidator = UtilityFactory::getInstance()->newValidatorFactory()->newStringValidator();
}
public function testCanConstruct() {
$this->assertInstanceOf(
HtmlColumns::class,
new HtmlColumns()
);
}
public function testUnknownTypeThrowsException() {
$instance = new HtmlColumns();
$this->expectException( 'InvalidArgumentException' );
$instance->addContents(
[ 'Foo' ],
'bar'
);
}
public function testDefaultColumnUnorderedList() {
$instance = new HtmlColumns();
$instance->addContents(
[
'a' => [ 'Foo', 'Bar' ],
'B' => [ 'Ichi', 'Ni' ]
],
HtmlColumns::INDEXED_LIST
);
$expected = [
'
',
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
public function testTwoColumnUnorderedList() {
$listContinuesAbbrev = '...';
$instance = new HtmlColumns();
$instance->addContents(
[
'a' => [ 'Foo', 'Bar' ],
'B' => [ 'Baz', 'Fom', 'Fin', 'Fum' ]
],
HtmlColumns::INDEXED_LIST
);
$instance->setColumns( 2 );
$instance->setContinueAbbrev( $listContinuesAbbrev );
$expected = [
'
',
'
',
'
',
'
B ' . $listContinuesAbbrev . '
',
'
',
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
public function testThreeColumnUnorderedList() {
$instance = new HtmlColumns();
$instance->addContents(
[
'a' => [ 'Foo', 'Bar' ],
'B' => [ 'Ichi', 'Ni' ]
],
HtmlColumns::INDEXED_LIST
);
$instance->setColumns( 3 );
$expected = [
'
',
'
',
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
public function testTwoColumnOrderedList() {
$instance = new HtmlColumns();
$instance->addContents(
[
'a' => [ 'Foo', 'Bar' ],
'B' => [ 'Ichi', 'Ni' ]
],
HtmlColumns::INDEXED_LIST
);
$instance->setColumns( 2 );
$instance->setListType( 'ol' );
$expected = [
'
',
'
',
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
public function testTwoColumnOrderedListNoHeader() {
$instance = new HtmlColumns();
$instance->addContents(
[
'Foo', 'Baz', 'Bar'
],
HtmlColumns::PLAIN_LIST
);
$instance->setColumns( 2 );
$instance->setColumnListClass( 'foo-class' );
$instance->setColumnClass( 'bar-class' );
$instance->setListType( 'ul' );
$expected = [
'
',
'
',
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
public function testResponsiveColumnsToBeDeterminedByBrowser() {
$instance = new HtmlColumns();
$instance->addContents(
[
'Foo', 'Baz', 'Bar'
],
HtmlColumns::PLAIN_LIST
);
$instance->setColumns( 2 );
$instance->setColumnListClass( 'foo-class' );
$instance->setResponsiveCols();
$instance->setResponsiveColsThreshold( 1 );
$instance->setListType( 'ul' );
$instance->isRTL( true );
$expected = [
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
public function testResponsiveColumnsOnResponsiveColsThreshold() {
$instance = new HtmlColumns();
$instance->addContents(
[
'Foo', 'Baz', 'Bar'
],
HtmlColumns::PLAIN_LIST
);
$instance->setColumns( 2 );
$instance->setColumnListClass( 'foo-class' );
$instance->setResponsiveCols();
$instance->setResponsiveColsThreshold( 4 );
$instance->setListType( 'ul' );
$instance->isRTL( true );
$expected = [
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
public function testItemListWithAttributes() {
$instance = new HtmlColumns();
$instance->addContents(
[
'Foo', 'Baz', 'Bar'
],
HtmlColumns::PLAIN_LIST
);
$instance->setColumns( 2 );
$instance->setColumnListClass( 'foo-class' );
$instance->setResponsiveCols();
$instance->setResponsiveColsThreshold( 1 );
$instance->setListType( 'ul' );
$instance->isRTL( true );
$instance->setItemAttributes(
[
md5( 'Foo' ) => [
'id' => 123
],
md5( 'Bar' ) => 456
]
);
$expected = [
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
public function testOListWithAttributes() {
$instance = new HtmlColumns();
$instance->addContents(
[
'Foo', 'Baz', 'Bar'
],
HtmlColumns::PLAIN_LIST
);
$instance->setColumns( 2 );
$instance->setColumnListClass( 'foo-class' );
$instance->setResponsiveCols();
$instance->setResponsiveColsThreshold( 1 );
$instance->setListType( 'ol', 'i' );
$instance->isRTL( true );
$instance->setItemAttributes(
[
md5( 'Foo' ) => [
'id' => 123
],
md5( 'Bar' ) => 456
]
);
$expected = [
'
'
];
$this->stringValidator->assertThatStringContains(
$expected,
$instance->getHtml()
);
}
}