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 = [ '
', '
', '
a
', '
B
' ]; $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 = [ '
', '
', '
a
', '
  • Foo
  • Bar
', '
B
  • Baz
', '
', '
B ' . $listContinuesAbbrev . '
', '
  • Fom
  • Fin
  • Fum
', '
' ]; $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 = [ '
', '
', '
a
  • Foo
  • Bar
', '
', '
B
  • Ichi
  • Ni
' ]; $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 = [ '
', '
', '
a
  1. Foo
  2. Bar
', '
', '
B
  1. Ichi
  2. Ni
' ]; $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 = [ '
', '
', '
  • Foo
  • Baz
', '
', '
  • Bar
' ]; $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 = [ '
', '
  • Foo
  • Baz
  • Bar
' ]; $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 = [ '
', '
  • Foo
  • Baz
  • Bar
' ]; $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 = [ '
', '
  • Foo
  • Baz
  • Bar
' ]; $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 = [ '
', '
  1. Foo
  2. Baz
  3. Bar
' ]; $this->stringValidator->assertThatStringContains( $expected, $instance->getHtml() ); } }