From 6c66a8935a86a773ed47b1d6388c5121db28404b Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sat, 20 Apr 2019 13:01:22 +0100 Subject: [PATCH] Added test to check page HTML id de-duplication Relates to #1393 --- app/Entities/Repos/PageRepo.php | 1 + tests/Entity/PageContentTest.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) 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); + } }