2008-04-06 06:00:43 +02:00
|
|
|
<?php
|
2008-06-15 15:33:53 +02:00
|
|
|
/**
|
|
|
|
* @package sapphire
|
|
|
|
* @subpackage tests
|
2008-09-27 18:04:01 +02:00
|
|
|
*
|
|
|
|
* @todo test Director::alternateBaseFolder()
|
2008-06-15 15:33:53 +02:00
|
|
|
*/
|
2008-04-06 06:00:43 +02:00
|
|
|
class DirectorTest extends SapphireTest {
|
|
|
|
|
|
|
|
public function testFileExists() {
|
|
|
|
$tempFileName = 'DirectorTest_testFileExists.tmp';
|
|
|
|
$tempFilePath = TEMP_FOLDER . '/' . $tempFileName;
|
|
|
|
|
|
|
|
// create temp file
|
|
|
|
file_put_contents($tempFilePath, '');
|
|
|
|
|
|
|
|
$this->assertTrue(
|
|
|
|
Director::fileExists($tempFilePath),
|
|
|
|
'File exist check with absolute path'
|
|
|
|
);
|
|
|
|
|
|
|
|
$this->assertTrue(
|
|
|
|
Director::fileExists($tempFilePath . '?queryparams=1&foo[bar]=bar'),
|
|
|
|
'File exist check with query params ignored'
|
|
|
|
);
|
|
|
|
|
|
|
|
unlink($tempFilePath);
|
|
|
|
}
|
2008-09-30 01:41:50 +02:00
|
|
|
|
2008-09-27 18:04:01 +02:00
|
|
|
public function testAlternativeBaseURL() {
|
2008-09-30 01:41:50 +02:00
|
|
|
// relative base URLs - you should end them in a /
|
|
|
|
Director::setBaseURL('/relativebase/');
|
|
|
|
$this->assertEquals('/relativebase/', Director::baseURL());
|
|
|
|
$this->assertEquals(Director::protocolAndHost() . '/relativebase/', Director::absoluteBaseURL());
|
|
|
|
$this->assertEquals(Director::protocolAndHost() . '/relativebase/subfolder/test', Director::absoluteURL('subfolder/test'));
|
|
|
|
|
|
|
|
// absolute base URLs - you should end them in a /
|
|
|
|
Director::setBaseURL('http://www.example.org/');
|
|
|
|
$this->assertEquals('http://www.example.org/', Director::baseURL());
|
|
|
|
$this->assertEquals('http://www.example.org/', Director::absoluteBaseURL());
|
|
|
|
$this->assertEquals('http://www.example.org/subfolder/test', Director::absoluteURL('subfolder/test'));
|
|
|
|
|
|
|
|
// Setting it to false restores functionality
|
2008-09-27 18:04:01 +02:00
|
|
|
Director::setBaseURL(false);
|
2008-09-30 01:41:50 +02:00
|
|
|
$this->assertEquals(BASE_URL.'/', Director::baseURL());
|
|
|
|
$this->assertEquals(Director::protocolAndHost().BASE_URL.'/', Director::absoluteBaseURL(BASE_URL));
|
|
|
|
$this->assertEquals(Director::protocolAndHost().BASE_URL . '/subfolder/test', Director::absoluteURL('subfolder/test'));
|
2008-09-27 18:04:01 +02:00
|
|
|
}
|
2008-10-12 18:16:25 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Tests that {@link Director::is_absolute()} works under different environment types
|
|
|
|
*/
|
|
|
|
public function testIsAbsolute() {
|
|
|
|
$expected = array (
|
|
|
|
'C:/something' => true,
|
|
|
|
'd:\\' => true,
|
|
|
|
'e/' => false,
|
|
|
|
's:/directory' => true,
|
|
|
|
'/var/www' => true,
|
|
|
|
'\\Something' => true,
|
|
|
|
'something/c:' => false,
|
|
|
|
'folder' => false,
|
|
|
|
'a/c:/' => false
|
|
|
|
);
|
|
|
|
|
|
|
|
foreach($expected as $path => $result) {
|
|
|
|
$this->assertEquals(Director::is_absolute($path), $result, "Test result for $path");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-02-11 22:07:58 +01:00
|
|
|
public function testIsAbsoluteUrl() {
|
|
|
|
$this->assertTrue(Director::is_absolute_url('http://test.com'));
|
|
|
|
$this->assertTrue(Director::is_absolute_url('https://test.com'));
|
|
|
|
$this->assertTrue(Director::is_absolute_url(' https://test.com/testpage '));
|
|
|
|
$this->assertFalse(Director::is_absolute_url('test.com/testpage'));
|
|
|
|
$this->assertTrue(Director::is_absolute_url('ftp://test.com'));
|
|
|
|
$this->assertFalse(Director::is_absolute_url('/relative'));
|
|
|
|
$this->assertFalse(Director::is_absolute_url('relative'));
|
|
|
|
$this->assertFalse(Director::is_absolute_url('/relative/?url=http://test.com'));
|
2009-03-17 23:22:55 +01:00
|
|
|
$this->assertTrue(Director::is_absolute_url('http://test.com/?url=http://test.com'));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testIsRelativeUrl() {
|
|
|
|
$siteUrl = Director::absoluteBaseURL();
|
|
|
|
$this->assertFalse(Director::is_relative_url('http://test.com'));
|
|
|
|
$this->assertFalse(Director::is_relative_url('https://test.com'));
|
|
|
|
$this->assertFalse(Director::is_relative_url(' https://test.com/testpage '));
|
|
|
|
$this->assertTrue(Director::is_relative_url('test.com/testpage'));
|
|
|
|
$this->assertFalse(Director::is_relative_url('ftp://test.com'));
|
|
|
|
$this->assertTrue(Director::is_relative_url('/relative'));
|
|
|
|
$this->assertTrue(Director::is_relative_url('relative'));
|
|
|
|
$this->assertTrue(Director::is_relative_url('/relative/?url=http://test.com'));
|
|
|
|
$this->assertFalse(Director::is_relative_url('http://test.com/?url=' . $siteUrl));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testMakeRelative() {
|
|
|
|
$siteUrl = Director::absoluteBaseURL();
|
|
|
|
$siteUrlNoProtocol = preg_replace('/https?:\/\//', '', $siteUrl);
|
|
|
|
$this->assertEquals(Director::makeRelative("$siteUrl"), '');
|
|
|
|
//$this->assertEquals(Director::makeRelative("https://$siteUrlNoProtocol"), '');
|
|
|
|
$this->assertEquals(Director::makeRelative(" $siteUrl/testpage "), 'testpage');
|
|
|
|
//$this->assertEquals(Director::makeRelative("$siteUrlNoProtocol/testpage"), 'testpage');
|
|
|
|
$this->assertEquals(Director::makeRelative('ftp://test.com'), 'ftp://test.com');
|
|
|
|
$this->assertEquals(Director::makeRelative('http://test.com'), 'http://test.com');
|
|
|
|
$this->assertEquals(Director::makeRelative('/relative'), '/relative');
|
|
|
|
$this->assertEquals(Director::makeRelative('relative'), 'relative');
|
|
|
|
$this->assertEquals(Director::makeRelative("$siteUrl/?url=http://test.com"), '?url=http://test.com');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testIsSiteUrl() {
|
|
|
|
$siteUrl = Director::absoluteBaseURL();
|
|
|
|
$siteUrlNoProtocol = preg_replace('/https?:\/\//', '', $siteUrl);
|
|
|
|
$this->assertTrue(Director::is_site_url($siteUrl));
|
|
|
|
$this->assertTrue(Director::is_site_url("$siteUrl/testpage"));
|
|
|
|
$this->assertTrue(Director::is_site_url(" $siteUrl/testpage "));
|
|
|
|
$this->assertTrue(Director::is_site_url("$siteUrlNoProtocol/testpage"));
|
|
|
|
$this->assertFalse(Director::is_site_url('http://test.com/testpage'));
|
|
|
|
//$this->assertFalse(Director::is_site_url('test.com/testpage'));
|
|
|
|
$this->assertTrue(Director::is_site_url('/relative'));
|
|
|
|
$this->assertTrue(Director::is_site_url('relative'));
|
|
|
|
$this->assertFalse(Director::is_site_url("http://test.com/?url=$siteUrl"));
|
2009-02-11 22:07:58 +01:00
|
|
|
}
|
|
|
|
|
2008-04-06 06:00:43 +02:00
|
|
|
}
|
|
|
|
?>
|