]> BookStack Code Mirror - bookstack/blob - tests/Unit/PageRepoTest.php
Hungarian translation
[bookstack] / tests / Unit / PageRepoTest.php
1 <?php
2 namespace Tests;
3
4 use BookStack\Entities\Repos\PageRepo;
5
6 class PageRepoTest extends TestCase
7 {
8     /**
9      * @var PageRepo $pageRepo
10      */
11     protected $pageRepo;
12
13     protected function setUp()
14     {
15         parent::setUp();
16         $this->pageRepo = app()->make(PageRepo::class);
17     }
18
19     public function test_get_page_nav_sets_correct_properties()
20     {
21         $content = '<h1 id="testa">Hello</h1><h2 id="testb">There</h2><h3 id="testc">Donkey</h3>';
22         $navMap = $this->pageRepo->getPageNav($content);
23
24         $this->assertCount(3, $navMap);
25         $this->assertArraySubset([
26             'nodeName' => 'h1',
27             'link' => '#testa',
28             'text' => 'Hello',
29             'level' => 1,
30         ], $navMap[0]);
31         $this->assertArraySubset([
32             'nodeName' => 'h2',
33             'link' => '#testb',
34             'text' => 'There',
35             'level' => 2,
36         ], $navMap[1]);
37         $this->assertArraySubset([
38             'nodeName' => 'h3',
39             'link' => '#testc',
40             'text' => 'Donkey',
41             'level' => 3,
42         ], $navMap[2]);
43     }
44
45     public function test_get_page_nav_does_not_show_empty_titles()
46     {
47         $content = '<h1 id="testa">Hello</h1><h2 id="testb">&nbsp;</h2><h3 id="testc"></h3>';
48         $navMap = $this->pageRepo->getPageNav($content);
49
50         $this->assertCount(1, $navMap);
51         $this->assertArraySubset([
52             'nodeName' => 'h1',
53             'link' => '#testa',
54             'text' => 'Hello'
55         ], $navMap[0]);
56     }
57
58     public function test_get_page_nav_shifts_headers_if_only_smaller_ones_are_used()
59     {
60         $content = '<h4 id="testa">Hello</h4><h5 id="testb">There</h5><h6 id="testc">Donkey</h6>';
61         $navMap = $this->pageRepo->getPageNav($content);
62
63         $this->assertCount(3, $navMap);
64         $this->assertArraySubset([
65             'nodeName' => 'h4',
66             'level' => 1,
67         ], $navMap[0]);
68         $this->assertArraySubset([
69             'nodeName' => 'h5',
70             'level' => 2,
71         ], $navMap[1]);
72         $this->assertArraySubset([
73             'nodeName' => 'h6',
74             'level' => 3,
75         ], $navMap[2]);
76     }
77
78 }
Morty Proxy This is a proxified and sanitized view of the page, visit original site.