]> BookStack Code Mirror - bookstack/blobdiff - tests/Entity/PageContentTest.php
Fix build:js:watch not building at first launch in Docker
[bookstack] / tests / Entity / PageContentTest.php
index 7aeaf0012a023eb4657f13f236bf4ff51b84e208..99547fd1798563d414cc5aa3355a93eee923868d 100644 (file)
@@ -71,6 +71,25 @@ class PageContentTest extends TestCase
         $pageResp->assertSee($content);
     }
 
+    public function test_page_includes_rendered_on_book_export()
+    {
+        $page = Page::query()->first();
+        $secondPage = Page::query()
+            ->where('book_id', '!=', $page->book_id)
+            ->first();
+
+        $content = '<p id="bkmrk-meow">my cat is awesome and scratchy</p>';
+        $secondPage->html = $content;
+        $secondPage->save();
+
+        $page->html = "{{@{$secondPage->id}#bkmrk-meow}}";
+        $page->save();
+
+        $this->asEditor();
+        $htmlContent = $this->get($page->book->getUrl('/export/html'));
+        $htmlContent->assertSee('my cat is awesome and scratchy');
+    }
+
     public function test_page_content_scripts_removed_by_default()
     {
         $this->asEditor();
@@ -243,6 +262,23 @@ class PageContentTest extends TestCase
         $this->assertEquals(substr_count($updatedPage->html, "bkmrk-test\""), 1);
     }
 
+    public function test_anchors_referencing_non_bkmrk_ids_rewritten_after_save()
+    {
+        $this->asEditor();
+        $page = Page::first();
+
+        $content = '<h1 id="non-standard-id">test</h1><p><a href="#non-standard-id">link</a></p>';
+        $this->put($page->getUrl(), [
+            'name' => $page->name,
+            'html' => $content,
+            'summary' => ''
+        ]);
+
+        $updatedPage = Page::where('id', '=', $page->id)->first();
+        $this->assertStringContainsString('id="bkmrk-test"', $updatedPage->html);
+        $this->assertStringContainsString('href="#bkmrk-test"', $updatedPage->html);
+    }
+
     public function test_get_page_nav_sets_correct_properties()
     {
         $content = '<h1 id="testa">Hello</h1><h2 id="testb">There</h2><h3 id="testc">Donkey</h3>';
@@ -312,10 +348,10 @@ class PageContentTest extends TestCase
         $this->actingAs($this->getAdmin())
             ->put($page->getUrl(''), [
                 'name' => 'Testing',
-                'html' => '<p>Hello &amp; welcome</p>',
+                'html' => '<p>&quot;Hello &amp; welcome&quot;</p>',
             ]);
 
         $page->refresh();
-        $this->assertEquals('Hello & welcome', $page->text);
+        $this->assertEquals('"Hello & welcome"', $page->text);
     }
 }