/**
  * Generate breadcrumb links to the URL path being displayed
  *
  * @return string
  */
 public function Breadcrumbs()
 {
     $basePath = str_replace(Director::protocolAndHost(), '', Director::absoluteBaseURL());
     $relPath = parse_url(substr($_SERVER['REQUEST_URI'], strlen($basePath), strlen($_SERVER['REQUEST_URI'])), PHP_URL_PATH);
     $parts = explode('/', $relPath);
     $base = Director::absoluteBaseURL();
     $pathPart = "";
     $pathLinks = array();
     foreach ($parts as $part) {
         if ($part != '') {
             $pathPart .= "{$part}/";
             $pathLinks[] = "<a href=\"{$base}{$pathPart}\">{$part}</a>";
         }
     }
     return implode('&nbsp;&rarr;&nbsp;', $pathLinks);
 }
 public function testAlternativeBaseURL()
 {
     // Get original protocol and hostname
     $rootURL = Director::protocolAndHost();
     // relative base URLs - you should end them in a /
     Config::inst()->update('SilverStripe\\Control\\Director', 'alternate_base_url', '/relativebase/');
     $_SERVER['REQUEST_URI'] = "{$rootURL}/relativebase/sub-page/";
     $this->assertEquals('/relativebase/', Director::baseURL());
     $this->assertEquals($rootURL . '/relativebase/', Director::absoluteBaseURL());
     $this->assertEquals($rootURL . '/relativebase/subfolder/test', Director::absoluteURL('subfolder/test'));
     // absolute base URLs - you should end them in a /
     Config::inst()->update('SilverStripe\\Control\\Director', 'alternate_base_url', 'http://www.example.org/');
     $_SERVER['REQUEST_URI'] = "http://www.example.org/sub-page/";
     $this->assertEquals('http://www.example.org/', Director::baseURL());
     $this->assertEquals('http://www.example.org/', Director::absoluteBaseURL());
     $this->assertEquals('http://www.example.org/sub-page/', Director::absoluteURL('', Director::REQUEST));
     $this->assertEquals('http://www.example.org/', Director::absoluteURL('', Director::BASE));
     $this->assertEquals('http://www.example.org/', Director::absoluteURL('', Director::ROOT));
     $this->assertEquals('http://www.example.org/sub-page/subfolder/test', Director::absoluteURL('subfolder/test', Director::REQUEST));
     $this->assertEquals('http://www.example.org/subfolder/test', Director::absoluteURL('subfolder/test', Director::ROOT));
     $this->assertEquals('http://www.example.org/subfolder/test', Director::absoluteURL('subfolder/test', Director::BASE));
 }