function testRelativeLinks()
 {
     // Page on toplevel
     $page = new DocumentationPage('test.md', new DocumentationEntity('mymodule', null, BASE_PATH . '/sapphiredocs/tests/docs/'));
     $result = DocumentationParser::rewrite_relative_links($page->getMarkdown(), $page, 'mycontroller/cms/2.4/en/');
     $this->assertContains('[link: subfolder index](mycontroller/cms/2.4/en/subfolder/)', $result);
     $this->assertContains('[link: subfolder page](mycontroller/cms/2.4/en/subfolder/subpage)', $result);
     $this->assertContains('[link: http](http://silverstripe.org)', $result);
     $this->assertContains('[link: api](api:DataObject)', $result);
     // Page in subfolder
     $page = new DocumentationPage('subfolder/subpage.md', new DocumentationEntity('mymodule', null, BASE_PATH . '/sapphiredocs/tests/docs/'));
     $result = DocumentationParser::rewrite_relative_links($page->getMarkdown(), $page, 'mycontroller/cms/2.4/en/');
     $this->assertContains('[link: absolute index](mycontroller/cms/2.4/en/)', $result);
     $this->assertContains('[link: absolute index with name](mycontroller/cms/2.4/en/index)', $result);
     $this->assertContains('[link: relative index](mycontroller/cms/2.4/en/)', $result);
     $this->assertContains('[link: relative parent page](mycontroller/cms/2.4/en/test)', $result);
     $this->assertContains('[link: absolute parent page](mycontroller/cms/2.4/en/test)', $result);
     // Page in nested subfolder
     $page = new DocumentationPage('subfolder/subsubfolder/subsubpage.md', new DocumentationEntity('mymodule', null, BASE_PATH . '/sapphiredocs/tests/docs/'));
     $result = DocumentationParser::rewrite_relative_links($page->getMarkdown(), $page, 'mycontroller/cms/2.4/en/');
     $this->assertContains('[link: absolute index](mycontroller/cms/2.4/en/)', $result);
     $this->assertContains('[link: relative index](mycontroller/cms/2.4/en/subfolder/)', $result);
     $this->assertContains('[link: relative parent page](mycontroller/cms/2.4/en/subfolder/subpage)', $result);
     $this->assertContains('[link: relative grandparent page](mycontroller/cms/2.4/en/test)', $result);
     $this->assertContains('[link: absolute page](mycontroller/cms/2.4/en/test)', $result);
 }
 public function testRelativeLinks()
 {
     // index.md
     $result = DocumentationParser::rewrite_relative_links($this->indexPage->getMarkdown(), $this->indexPage);
     $this->assertContains('[link: subfolder index](dev/docs/en/documentationparsertest/2.4/subfolder/)', $result);
     // test.md
     $result = DocumentationParser::rewrite_relative_links($this->page->getMarkdown(), $this->page);
     $this->assertContains('[link: subfolder index](dev/docs/en/documentationparsertest/2.4/subfolder/)', $result);
     $this->assertContains('[link: subfolder page](dev/docs/en/documentationparsertest/2.4/subfolder/subpage/)', $result);
     $this->assertContains('[link: http](http://silverstripe.org)', $result);
     $this->assertContains('[link: api](api:DataObject)', $result);
     $result = DocumentationParser::rewrite_relative_links($this->subPage->getMarkdown(), $this->subPage);
     # @todo this should redirect to /subpage/
     $this->assertContains('[link: relative](dev/docs/en/documentationparsertest/2.4/subfolder/subpage.md/)', $result);
     $this->assertContains('[link: absolute index](dev/docs/en/documentationparsertest/2.4/)', $result);
     # @todo this should redirect to /
     $this->assertContains('[link: absolute index with name](dev/docs/en/documentationparsertest/2.4/index/)', $result);
     $this->assertContains('[link: relative index](dev/docs/en/documentationparsertest/2.4/)', $result);
     $this->assertContains('[link: relative parent page](dev/docs/en/documentationparsertest/2.4/test/)', $result);
     $this->assertContains('[link: absolute parent page](dev/docs/en/documentationparsertest/2.4/test/)', $result);
     $result = DocumentationParser::rewrite_relative_links($this->subSubPage->getMarkdown(), $this->subSubPage);
     $this->assertContains('[link: absolute index](dev/docs/en/documentationparsertest/2.4/)', $result);
     $this->assertContains('[link: relative index](dev/docs/en/documentationparsertest/2.4/subfolder/)', $result);
     $this->assertContains('[link: relative parent page](dev/docs/en/documentationparsertest/2.4/subfolder/subpage/)', $result);
     $this->assertContains('[link: relative grandparent page](dev/docs/en/documentationparsertest/2.4/test/)', $result);
     $this->assertContains('[link: absolute page](dev/docs/en/documentationparsertest/2.4/test/)', $result);
 }