<?php class SiteTreeBacklinksTest extends SapphireTest { static $fixture_file = "sapphire/tests/SiteTreeBacklinksTest.yml"; static function set_up_once() { SiteTreeTest::set_up_once(); parent::set_up_once(); } static function tear_down_once() { SiteTreeTest::tear_down_once(); parent::tear_down_once(); } function setUp() { parent::setUp(); // Log in as admin so that we don't run into permission issues. That's not what we're // testing here. $this->logInWithPermssion('ADMIN'); } function testSavingPageWithLinkAddsBacklink() { // load page 1 $page1 = $this->objFromFixture('Page', 'page1'); // assert backlink to page 2 doesn't exist $page2 = $this->objFromFixture('Page', 'page2'); $this->assertFalse($page1->BackLinkTracking()->containsIDs(array($page2->ID)), 'Assert backlink to page 2 doesn\'t exist'); // add hyperlink to page 1 on page 2 $page2->Content .= '<p><a href="page1/">Testing page 1 link</a></p>'; $page2->write(); // load page 1 $page1 = $this->objFromFixture('Page', 'page1'); // assert backlink to page 2 exists $this->assertTrue($page1->BackLinkTracking()->containsIDs(array($page2->ID)), 'Assert backlink to page 2 exists'); } function testRemovingLinkFromPageRemovesBacklink() { // load page 1 $page1 = $this->objFromFixture('Page', 'page1'); // assert backlink to page 3 exits $page3 = $this->objFromFixture('Page', 'page3'); $this->assertTrue($page1->BackLinkTracking()->containsIDs(array($page3->ID)), 'Assert backlink to page 3 exists'); // remove hyperlink to page 1 $page3->Content = '<p>No links anymore!</p>'; $page3->write(); // load page 1 $page1 = $this->objFromFixture('Page', 'page1'); // assert backlink to page 3 exists $this->assertFalse($page1->BackLinkTracking()->containsIDs(array($page3->ID)), 'Assert backlink to page 3 doesn\'t exist'); } } ?>