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); }