/** * @covers OneLogin_Saml2_Utils::setBaseURL */ public function testSetBaseURL() { $_SERVER['HTTP_HOST'] = 'sp.example.com'; $_SERVER['HTTPS'] = 'https'; $_SERVER['REQUEST_URI'] = '/example1/route.php?x=test'; $_SERVER['QUERY_STRING'] = '?x=test'; $_SERVER['SCRIPT_NAME'] = '/example1/route.php'; unset($_SERVER['PATH_INFO']); $expectedUrlNQ = 'https://sp.example.com/example1/route.php'; $expectedRoutedUrlNQ = 'https://sp.example.com/example1/route.php'; $expectedUrl = 'https://sp.example.com/example1/route.php?x=test'; OneLogin_Saml2_Utils::setBaseURL("no-valid-url"); $this->assertEquals('https', OneLogin_Saml2_Utils::getSelfProtocol()); $this->assertEquals('sp.example.com', OneLogin_Saml2_Utils::getSelfHost()); $this->assertNull(OneLogin_Saml2_Utils::getSelfPort()); $this->assertNull(OneLogin_Saml2_Utils::getBaseURLPath()); $this->assertEquals($expectedUrlNQ, OneLogin_Saml2_Utils::getSelfURLNoQuery()); $this->assertEquals($expectedRoutedUrlNQ, OneLogin_Saml2_Utils::getSelfRoutedURLNoQuery()); $this->assertEquals($expectedUrl, OneLogin_Saml2_Utils::getSelfURL()); OneLogin_Saml2_Utils::setBaseURL("http://anothersp.example.com:81/example2/"); $expectedUrlNQ2 = 'http://anothersp.example.com:81/example2/route.php'; $expectedRoutedUrlNQ2 = 'http://anothersp.example.com:81/example2/route.php'; $expectedUrl2 = 'http://anothersp.example.com:81/example2/route.php?x=test'; $this->assertEquals('http', OneLogin_Saml2_Utils::getSelfProtocol()); $this->assertEquals('anothersp.example.com', OneLogin_Saml2_Utils::getSelfHost()); $this->assertEquals('81', OneLogin_Saml2_Utils::getSelfPort()); $this->assertEquals('/example2/', OneLogin_Saml2_Utils::getBaseURLPath()); $this->assertEquals($expectedUrlNQ2, OneLogin_Saml2_Utils::getSelfURLNoQuery()); $this->assertEquals($expectedRoutedUrlNQ2, OneLogin_Saml2_Utils::getSelfRoutedURLNoQuery()); $this->assertEquals($expectedUrl2, OneLogin_Saml2_Utils::getSelfURL()); $_SERVER['PATH_INFO'] = '/test'; $expectedUrlNQ2 = 'http://anothersp.example.com:81/example2/route.php/test'; $this->assertEquals($expectedUrlNQ2, OneLogin_Saml2_Utils::getSelfURLNoQuery()); $this->assertEquals($expectedRoutedUrlNQ2, OneLogin_Saml2_Utils::getSelfRoutedURLNoQuery()); $this->assertEquals($expectedUrl2, OneLogin_Saml2_Utils::getSelfURL()); }