/** * testing discovery * */ public function testDiscovery() { $storage = new Zend_OpenId_Consumer_Storage_File(dirname(__FILE__)."/_files/consumer"); $consumer = new Zend_OpenId_ConsumerHelper($storage); $http = new Zend_Http_Client(null, array( 'maxredirects' => 4, 'timeout' => 15, 'useragent' => 'Zend_OpenId' )); $test = new Zend_Http_Client_Adapter_Test(); $http->setAdapter($test); $consumer->SetHttpClient($http); // Bad response $storage->delDiscoveryInfo(self::ID); $id = self::ID; $this->assertFalse( $consumer->discovery($id, $server, $version) ); // Test HTML based discovery (OpenID 1.1) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel=\"openid.server\" href=\"" . self::SERVER . "\">\n" . "<link rel=\"openid.delegate\" href=\"" . self::REAL_ID . "\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 1.1, $version ); // Test HTML based discovery (OpenID 1.1) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link href=\"" . self::SERVER . "\" rel=\"openid.server\">\n" . "<link href=\"" . self::REAL_ID . "\" rel=\"openid.delegate\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 1.1, $version ); // Test HTML based discovery (OpenID 2.0) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel=\"openid2.provider\" href=\"" . self::SERVER . "\">\n" . "<link rel=\"openid2.local_id\" href=\"" . self::REAL_ID . "\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 2.0, $version ); // Test HTML based discovery (OpenID 2.0) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link href=\"" . self::SERVER . "\" rel=\"openid2.provider\">\n" . "<link href=\"" . self::REAL_ID . "\" rel=\"openid2.local_id\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 2.0, $version ); // Test HTML based discovery (OpenID 1.1 and 2.0) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel=\"openid2.provider\" href=\"" . self::SERVER . "\">\n" . "<link rel=\"openid2.local_id\" href=\"" . self::REAL_ID . "\">\n" . "<link rel=\"openid.server\" href=\"" . self::SERVER . "\">\n" . "<link rel=\"openid.delegate\" href=\"" . self::REAL_ID . "\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 2.0, $version ); // Test HTML based discovery (OpenID 1.1) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel='openid.server' href='" . self::SERVER . "'>\n" . "<link rel='openid.delegate' href='" . self::REAL_ID . "'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 1.1, $version ); // Test HTML based discovery (OpenID 1.1) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link href='" . self::SERVER . "' rel='openid.server'>\n" . "<link href='" . self::REAL_ID . "' rel='openid.delegate'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 1.1, $version ); // Test HTML based discovery (OpenID 2.0) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel='openid2.provider' href='" . self::SERVER . "'>\n" . "<link rel='openid2.local_id' href='" . self::REAL_ID . "'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 2.0, $version ); // Test HTML based discovery (OpenID 2.0) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link href='" . self::SERVER . "' rel='openid2.provider'>\n" . "<link href='" . self::REAL_ID . "' rel='openid2.local_id'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 2.0, $version ); // Test HTML based discovery (OpenID 1.1 and 2.0) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel='openid2.provider' href='" . self::SERVER . "'>\n" . "<link rel='openid2.local_id' href='" . self::REAL_ID . "'>\n" . "<link rel='openid.server' href='" . self::SERVER . "'>\n" . "<link rel='openid.delegate' href='" . self::REAL_ID . "'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue( $consumer->discovery($id, $server, $version) ); $this->assertSame( self::REAL_ID, $id ); $this->assertSame( self::SERVER, $server ); $this->assertSame( 2.0, $version ); // Wrong HTML $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertFalse( $consumer->discovery($id, $server, $version) ); }
/** * testing discovery * */ public function testDiscovery() { $storage = new Zend_OpenId_Consumer_Storage_File(dirname(__FILE__) . "/_files/consumer"); $consumer = new Zend_OpenId_ConsumerHelper($storage); $http = new Zend_Http_Client(null, array('maxredirects' => 4, 'timeout' => 15, 'useragent' => 'Zend_OpenId')); $test = new Zend_Http_Client_Adapter_Test(); $http->setAdapter($test); $consumer->SetHttpClient($http); // Bad response $storage->delDiscoveryInfo(self::ID); $id = self::ID; $this->assertFalse($consumer->discovery($id, $server, $version)); // Test Yardis Discovery $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<meta http-equiv=\"X-XRDS-Location\" content=\"" . self::SERVER . "\" />" . "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" . "<xrds:XRDS xmlns:xrds=\"xri://\$xrds\" xmlns=\"xri://\$xrd*(\$v*2.0)\">\n" . " <XRD>\n" . " <Service priority=\"0\">\n" . " <Type>http://specs.openid.net/auth/2.0/server</Type>\n" . " <URI>" . self::SERVER . "</URI>\n" . " </Service>\n" . " </XRD>\n" . "</xrds:XRDS>"); $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame("http://specs.openid.net/auth/2.0/identifier_select", $id); $this->assertSame(self::SERVER, $server); $this->assertSame(2.0, $version); // Test HTML based discovery (OpenID 1.1) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel=\"openid.server\" href=\"" . self::SERVER . "\">\n" . "<link rel=\"openid.delegate\" href=\"" . self::REAL_ID . "\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(1.1, $version); // Test HTML based discovery (OpenID 1.1) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link href=\"" . self::SERVER . "\" rel=\"openid.server\">\n" . "<link href=\"" . self::REAL_ID . "\" rel=\"openid.delegate\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(1.1, $version); // Test HTML based discovery (OpenID 2.0) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel=\"openid2.provider\" href=\"" . self::SERVER . "\">\n" . "<link rel=\"openid2.local_id\" href=\"" . self::REAL_ID . "\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(2.0, $version); // Test HTML based discovery (OpenID 2.0) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link href=\"" . self::SERVER . "\" rel=\"openid2.provider\">\n" . "<link href=\"" . self::REAL_ID . "\" rel=\"openid2.local_id\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(2.0, $version); // Test HTML based discovery (OpenID 1.1 and 2.0) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel=\"openid2.provider\" href=\"" . self::SERVER . "\">\n" . "<link rel=\"openid2.local_id\" href=\"" . self::REAL_ID . "\">\n" . "<link rel=\"openid.server\" href=\"" . self::SERVER . "\">\n" . "<link rel=\"openid.delegate\" href=\"" . self::REAL_ID . "\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(2.0, $version); // Test HTML based discovery (OpenID 1.1) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel='openid.server' href='" . self::SERVER . "'>\n" . "<link rel='openid.delegate' href='" . self::REAL_ID . "'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(1.1, $version); // Test HTML based discovery (OpenID 1.1) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link href='" . self::SERVER . "' rel='openid.server'>\n" . "<link href='" . self::REAL_ID . "' rel='openid.delegate'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(1.1, $version); // Test HTML based discovery (OpenID 2.0) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel='openid2.provider' href='" . self::SERVER . "'>\n" . "<link rel='openid2.local_id' href='" . self::REAL_ID . "'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(2.0, $version); // Test HTML based discovery (OpenID 2.0) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link href='" . self::SERVER . "' rel='openid2.provider'>\n" . "<link href='" . self::REAL_ID . "' rel='openid2.local_id'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(2.0, $version); // Test HTML based discovery (OpenID 1.1 and 2.0) (single quotes) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel='openid2.provider' href='" . self::SERVER . "'>\n" . "<link rel='openid2.local_id' href='" . self::REAL_ID . "'>\n" . "<link rel='openid.server' href='" . self::SERVER . "'>\n" . "<link rel='openid.delegate' href='" . self::REAL_ID . "'>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(2.0, $version); // Wrong HTML $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertFalse($consumer->discovery($id, $server, $version)); // Test HTML based discovery with multivalue rel (OpenID 1.1) $storage->delDiscoveryInfo(self::ID); $test->setResponse("HTTP/1.1 200 OK\r\n\r\n" . "<html><head>\n" . "<link rel=\" aaa openid.server bbb \" href=\"" . self::SERVER . "\">\n" . "<link rel=\"aaa openid.delegate\" href=\"" . self::REAL_ID . "\">\n" . "</head><body</body></html>\n"); $id = self::ID; $this->assertTrue($consumer->discovery($id, $server, $version)); $this->assertSame(self::REAL_ID, $id); $this->assertSame(self::SERVER, $server); $this->assertSame(1.1, $version); }