diff --git a/code/model/SiteTreeLinkTracking.php b/code/model/SiteTreeLinkTracking.php index 9e3638e1..477a6647 100644 --- a/code/model/SiteTreeLinkTracking.php +++ b/code/model/SiteTreeLinkTracking.php @@ -259,12 +259,13 @@ class SiteTreeLinkTracking_Parser { // Local anchor. $matches = array(); if(preg_match('/^#(.*)/i', $href, $matches)) { + $anchor = preg_quote($matches[1], '#'); $results[] = array( 'Type' => 'localanchor', 'Target' => null, 'Anchor' => $matches[1], 'DOMReference' => $link, - 'Broken' => !preg_match("#(name|id)=\"{$matches[1]}\"#", $htmlValue->getContent()) + 'Broken' => !preg_match("#(name|id)=\"{$anchor}\"#", $htmlValue->getContent()) ); continue; diff --git a/tests/model/SiteTreeLinkTrackingTest.php b/tests/model/SiteTreeLinkTrackingTest.php index e5967631..d73bab9a 100644 --- a/tests/model/SiteTreeLinkTrackingTest.php +++ b/tests/model/SiteTreeLinkTrackingTest.php @@ -20,6 +20,7 @@ class SiteTreeLinkTrackingTest extends SapphireTest { $this->assertFalse($this->isBroken('anchor')); $this->assertFalse($this->isBroken('anchor')); + $this->assertTrue($this->isBroken('anchor')); $page = new Page(); $page->Content = 'nameid';