]> BookStack Code Mirror - bookstack/commitdiff
Added test to check page HTML id de-duplication
authorDan Brown <redacted>
Sat, 20 Apr 2019 12:01:22 +0000 (13:01 +0100)
committerDan Brown <redacted>
Sat, 20 Apr 2019 12:01:56 +0000 (13:01 +0100)
Relates to #1393

app/Entities/Repos/PageRepo.php
tests/Entity/PageContentTest.php

index 148ae8459e088f15f0a55ad483add20acc77004a..aad540adba9a7e4b649acb10a2d163b11a259abc 100644 (file)
@@ -139,6 +139,7 @@ class PageRepo extends EntityRepo
         if ($htmlText == '') {
             return $htmlText;
         }
+
         libxml_use_internal_errors(true);
         $doc = new DOMDocument();
         $doc->loadHTML(mb_convert_encoding($htmlText, 'HTML-ENTITIES', 'UTF-8'));
index 003d07d4e19c754d2703e3f77409673a0c1d2280..124866e76f82fdbb7dc987a9ebfd57118943f063 100644 (file)
@@ -159,4 +159,21 @@ class PageContentTest extends TestCase
         $pageView = $this->get($pageB->getUrl());
         $pageView->assertSuccessful();
     }
+
+    public function test_duplicate_ids_fixed_on_page_save()
+    {
+        $this->asEditor();
+        $page = Page::first();
+
+        $content = '<p id="bkmrk-test">test a</p>'."\n".'<p id="bkmrk-test">test b</p>';
+        $pageSave = $this->put($page->getUrl(), [
+            'name' => $page->name,
+            'html' => $content,
+            'summary' => ''
+        ]);
+        $pageSave->assertRedirect();
+
+        $updatedPage = Page::where('id', '=', $page->id)->first();
+        $this->assertEquals(substr_count($updatedPage->html, "bkmrk-test\""), 1);
+    }
 }