/** * Testing getTransport always returns instance of * Klarna_Checkout_HTTP_TransportInterface * * @return void */ public function testValidTransportType() { $curl = new Klarna_Checkout_HTTP_TransportStub; $object = new Klarna_Checkout_BasicConnector( $curl, $this->digest, 'aboogie' ); $this->assertInstanceOf( 'Klarna_Checkout_HTTP_TransportInterface', $object->getTransport() ); }
/** * Test with an infinite redirect (301) loop. * * @return void */ public function testApplyGet301InfiniteLoop() { $this->setExpectedException( 'Klarna_Checkout_ConnectorException', 'Infinite redirect loop detected.' ); $options = array('url' => 'localhost'); $curl = new Klarna_Checkout_HTTP_TransportStub; $curl->addResponse( array( 'code' => 301, 'headers' => array('Location' => 'not localhost'), 'payload' => "" ) ); $object = new Klarna_Checkout_BasicConnector( $curl, $this->digest, 'aboogie' ); $object->apply('GET', $this->orderStub, $options); }
/** * Ensue that a 301 redirect is not followed by POST. * * @return void */ public function testApplyPostDoesntFollowRedirect301() { $options = array('url' => 'localhost'); $curl = new Klarna_Checkout_HTTP_TransportStub; $payload = 'Forbidden'; $redirect = 'not localhost'; $data = array( array( 'code' => 503, 'headers' => array(), 'payload' => $payload ), array( 'code' => 301, 'headers' => array('Location' => $redirect), 'payload' => "" ) ); foreach ($data as $response) { $curl->addResponse($response); } $object = new Klarna_Checkout_BasicConnector( $curl, $this->digest, 'aboogie' ); $result = null; try { $result = $object->apply('POST', $this->orderStub, $options); } catch (Exception $e) { throw $e; } $request = $curl->request; $this->assertNotEquals($redirect, $request->getUrl(), 'Url Option'); }