*/ class TocGeneratorTest extends \PHPUnit_Framework_TestCase { public function testInstantiateSucceeds() { $obj = new TocGenerator(); $this->assertInstanceOf('\TOC\TocGenerator', $obj); } // --------------------------------------------------------------- public function testGetItemsTraversesLevelsCorrectly() { $obj = new TocGenerator(); $html = "

A-Header

Foobar

B-Header

C-Header

D-Header

E-Header

F-Header

G-Header

H-Header

Hi
"; $fixture = array_filter(array_map('trim', file(__DIR__ . '/fixtures/testHtmlList.html'))); $actual = array_filter(array_map('trim', explode(PHP_EOL, $obj->getHtmlMenu($html, 1, 6)))); $this->assertEquals($fixture, $actual); } // --------------------------------------------------------------- public function testGetItemsMatchesOnlyElementsWithIDs() { $html = "

A-Header

Foobar

B-Header

C-Header

"; $obj = new TocGenerator(); $menu = $obj->getMenu($html, 1); $this->assertCount(2, $menu); $this->assertEquals('A-Header', $menu->getFirstChild()->getLabel()); $this->assertEquals('B-Header', $menu->getLastChild()->getLabel()); } // --------------------------------------------------------------- // // public function testGetItemsUsesTitleForDisplayTextWhenAvailableAndPlainTextWhenNot() // { // $obj = new TocGenerator(); // // $html = '

A Header

'; // $html .= '

B Header

'; // $html .= '

C Header

'; // // $this->assertEquals( // ['a' => 'Foo Bar!', 'b' => 'B Header', 'c' => 'Baz Biz~'], // $obj->getItems($html, 1, 3) // ); // } // // // --------------------------------------------------------------- // // public function testGetItemsGetsOnlyHeaderLevelsSpecified() // { // $obj = new TocGenerator(); // // $html = '

A Header

'; // $html .= '

B Header

'; // $html .= '

C Header

'; // $html .= '

D Header

'; // $html .= '
E Header
'; // $html .= '
F Header
'; // // $this->assertCount(1, $obj->getItems($html, 5, 1)); // $this->assertCount(2, $obj->getItems($html, 5, 5)); // $this->assertCount(6, $obj->getItems($html, -1, 20)); // } // // // --------------------------------------------------------------- // // public function testGetHtmlItemsReturnsExpectedListItems() // { // $obj = new TocGenerator(); // // $html = '

A Header

'; // $html .= '

B Header

'; // $html .= '

C Header

'; // // $this->assertEquals( // "
  • Foo Bar!
  • B Header
  • Baz Biz~
  • ", // $obj->getHtmlItems($html, 1, 3) // ); // } // // // --------------------------------------------------------------- // // public function testGetItemsReturnsAnEmptyArrayWhenNoContentOrMatches() // { // $obj = new TocGenerator(); // $this->assertEquals([], $obj->getItems("

    Boo

    Bar

    ")); // $this->assertEquals([], $obj->getItems("")); // } } /* EOF: TocGeneratorTest.php */