diff --git a/app/Entities/Repos/PageRepo.php b/app/Entities/Repos/PageRepo.php index 148ae8459..aad540adb 100644 --- a/app/Entities/Repos/PageRepo.php +++ b/app/Entities/Repos/PageRepo.php @@ -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')); diff --git a/tests/Entity/PageContentTest.php b/tests/Entity/PageContentTest.php index 003d07d4e..124866e76 100644 --- a/tests/Entity/PageContentTest.php +++ b/tests/Entity/PageContentTest.php @@ -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 = '

test a

'."\n".'

test b

'; + $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); + } }