You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ch...@apache.org on 2009/09/23 14:14:51 UTC
svn commit: r818069 - in /incubator/shindig/trunk/php/test:
gadgets/MakeRequestTest.php misc/sampleAtomFeed.xml
Author: chabotc
Date: Wed Sep 23 12:14:50 2009
New Revision: 818069
URL: http://svn.apache.org/viewvc?rev=818069&view=rev
Log:
SHINDIG-1178 by Arne Roomann-Kurrik - Removes duplicate content in MakeRequestTest.php and sampleAtomFeed.xml
Modified:
incubator/shindig/trunk/php/test/gadgets/MakeRequestTest.php
incubator/shindig/trunk/php/test/misc/sampleAtomFeed.xml
Modified: incubator/shindig/trunk/php/test/gadgets/MakeRequestTest.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/gadgets/MakeRequestTest.php?rev=818069&r1=818068&r2=818069&view=diff
==============================================================================
--- incubator/shindig/trunk/php/test/gadgets/MakeRequestTest.php (original)
+++ incubator/shindig/trunk/php/test/gadgets/MakeRequestTest.php Wed Sep 23 12:14:50 2009
@@ -246,249 +246,3 @@
}
}
-<?php
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Provides an implementation of RemoteContentFetcher which can be controlled
- * by unit tests and does not actually make any external requests.
- * RemoteContentRequest objects added to this class are added to an internal
- * FIFO queue. Every time a request is sent to fetchRequest, the next
- * RemoteContentRequest object in the queue is returned as a response.
- * Requests sent to fetchRequest are also stored in a queue for later retrieval
- * and examination.
- */
-class MockMakeRequestFetcher extends RemoteContentFetcher {
- private $responses;
- private $requests;
-
- /**
- * Constructor.
- */
- public function __construct() {
- $this->responses = array();
- $this->requests = array();
- }
-
- /**
- * Adds a response object to an internal queue of responses.
- * @param RemoteContentRequest $response The response to return.
- */
- public function enqueueResponse(RemoteContentRequest $response) {
- $this->responses[] = $response;
- }
-
- /**
- * Returns a request object that was sent to fetchRequest. If multiple
- * requests have been sent to fetchRequest, they are returned by this
- * method in the order they were requested.
- * @return RemoteContentRequest
- */
- public function dequeueRequest() {
- return array_shift($this->requests);
- }
-
- /**
- * Fakes a content request to a remote server.
- * @param RemoteContentRequest $request The external request information.
- * @return RemoteContentRequest The next response which was enqueued by
- * calling enqueueResponse.
- */
- public function fetchRequest(RemoteContentRequest $request) {
- $this->requests[] = $request;
- return array_shift($this->responses);
- }
-
- /**
- * Fakes multiple requests to a remote server. Calls fetchRequest for
- * each request passed to this method.
- * @param array $requests An array of RemoteContentRequests.
- * @return An array of RemoteContentRequests corresponging to the responses
- * returned for each of the request inputs.
- */
- public function multiFetchRequest(Array $requests) {
- $responses = array();
- foreach ($requests as $key => $request) {
- $responses[$key] = $this->fetchRequest($request);
- }
- return $responses;
- }
-}
-
-/**
- * Unit tests for the MakeRequest class.
- */
-class MakeRequestTest extends PHPUnit_Framework_TestCase {
- private $fetcher;
- private $makeRequest;
-
- /**
- * Prepares the environment before running a test.
- */
- protected function setUp() {
- parent::setUp();
- $this->fetcher = new MockMakeRequestFetcher();
- $this->makeRequest = new MakeRequest($this->fetcher);
- $this->context = new GadgetContext('GADGET');
-
- $this->response = new RemoteContentRequest('http://www.example.com');
- $this->response->setHttpCode(200);
- $this->response->setResponseContent("Basic response");
- }
-
- /**
- * Cleans up the environment after running a test.
- */
- protected function tearDown() {
- parent::tearDown();
- }
-
- /**
- * Executes a makeRequest call and returns the request object which would
- * have been sent externally (as opposed to the response).
- *
- * @param MakeRequestOptions $params
- * @param RemoteContentRequest $response The response to return for this
- * request.
- * @return RemoteContentRequest The request object.
- */
- protected function catchRequest(MakeRequestOptions $params, RemoteContentRequest $response) {
- $this->fetcher->enqueueResponse($response);
- $result = $this->makeRequest->fetch($this->context, $params);
- return $this->fetcher->dequeueRequest();
- }
-
- /**
- * Tests that makeRequest calls with an invalid url throw an exception.
- */
- public function testInvalidUrl() {
- try {
- $params = new MakeRequestOptions('invalidurl');
- $this->makeRequest->fetch($params);
- $this->fail("Calling makeRequest with an invalid url should throw an exception.");
- } catch (Exception $ex) { }
- }
-
- /**
- * Tests that normal requests specify a GET to the supplied URL.
- */
- public function testBasicRequest() {
- $params = new MakeRequestOptions('http://www.example.com');
- $params->setNoCache(true);
-
- $request = $this->catchRequest($params, $this->response);
- $this->assertContains($request->getUrl(), 'http://www.example.com');
- $this->assertEquals('GET', $request->getMethod());
- }
-
- /**
- * Tests that signed requests generate appropriate oauth_ and opensocial_
- * parameters.
- */
- public function testSignedRequest() {
- $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default');
- $params = new MakeRequestOptions('http://www.example.com');
- $params->setAuthz('SIGNED')
- ->setNoCache(true)
- ->setSecurityTokenString(urlencode(base64_encode($token->toSerialForm())));
-
- $request = $this->catchRequest($params, $this->response);
-
- $this->assertContains('oauth_signature', $request->getUrl());
- $this->assertContains('oauth_signature_method=RSA-SHA1', $request->getUrl());
- $this->assertContains('opensocial_app_url=appUrl', $request->getUrl());
- $this->assertContains('opensocial_viewer_id=viewer', $request->getUrl());
- $this->assertContains('opensocial_owner_id=owner', $request->getUrl());
- $this->assertEquals('GET', $request->getMethod());
- }
-
- /**
- * Tests that setting "sign_viewer" = false does not include viewer
- * information in the request.
- */
- public function testSignedNoViewerRequest() {
- $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default');
- $params = new MakeRequestOptions('http://www.example.com');
- $params->setAuthz('SIGNED')
- ->setNoCache(true)
- ->setSignViewer(false)
- ->setSecurityTokenString(urlencode(base64_encode($token->toSerialForm())));
-
- $request = $this->catchRequest($params, $this->response);
-
- $this->assertContains('oauth_signature', $request->getUrl());
- $this->assertNotContains('opensocial_viewer_id=viewer', $request->getUrl());
- $this->assertContains('opensocial_owner_id=owner', $request->getUrl());
- }
-
- /**
- * Tests that setting "format" = "FEED" parses an atom feed into a JSON
- * structure.
- */
- public function testFeedRequest() {
- $params = new MakeRequestOptions('http://www.example.com');
- $params->setResponseFormat('FEED')
- ->setNoCache(true)
- ->setNumEntries(2);
-
- $sampleAtomPath = realpath(dirname(__FILE__) . "/../misc/sampleAtomFeed.xml");
- $sampleAtom = file_get_contents($sampleAtomPath);
- $this->response->setResponseContent($sampleAtom);
- $this->fetcher->enqueueResponse($this->response);
- $result = $this->makeRequest->fetch($this->context, $params);
- $feedJson = json_decode($result->getResponseContent(), true);
-
- $this->assertArrayHasKey('Entry', $feedJson);
- $this->assertEquals(2, count($feedJson['Entry']));
- $this->assertArrayHasKey('Title', $feedJson['Entry'][0]);
- $this->assertEquals("Atom-Powered Robots Run Amok", $feedJson['Entry'][0]['Title']);
- }
-
- /**
- * Tests that setting request headers are passed in the outgoing request.
- */
- public function testRequestHeaders(){
- $params = new MakeRequestOptions('http://www.example.com');
- $params->setRequestHeaders(array(
- "Content-Type" => "application/json",
- "Accept-Language" => "en-us"
- ));
- $params->setNoCache(true);
-
- $request = $this->catchRequest($params, $this->response);
- $this->assertTrue($request->hasHeaders());
- $this->assertEquals('application/json', $request->getHeader('Content-Type'));
- $this->assertEquals('en-us', $request->getHeader('Accept-Language'));
- }
-
- /**
- * Tests that setting request headers in a form urlencoded way are passed in the outgoing request.
- */
- public function testFormEncodedRequestHeaders(){
- $params = new MakeRequestOptions('http://www.example.com');
- $params->setFormEncodedRequestHeaders("Content-Type=application%2Fx-www-form-urlencoded&Accept-Language=en-us");
- $params->setNoCache(true);
-
- $request = $this->catchRequest($params, $this->response);
- $this->assertTrue($request->hasHeaders());
- $this->assertEquals('application/x-www-form-urlencoded', $request->getHeader('Content-Type'));
- }
-}
-
Modified: incubator/shindig/trunk/php/test/misc/sampleAtomFeed.xml
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/misc/sampleAtomFeed.xml?rev=818069&r1=818068&r2=818069&view=diff
==============================================================================
--- incubator/shindig/trunk/php/test/misc/sampleAtomFeed.xml (original)
+++ incubator/shindig/trunk/php/test/misc/sampleAtomFeed.xml Wed Sep 23 12:14:50 2009
@@ -32,37 +32,3 @@
<summary>This is the third sample atom entry.</summary>
</entry>
</feed>
-<?xml version="1.0" encoding="utf-8"?>
-<feed xmlns="http://www.w3.org/2005/Atom">
- <title>Example Feed</title>
- <subtitle>A subtitle.</subtitle>
- <link href="http://example.org/feed/" rel="self" />
- <link href="http://example.org/" />
- <id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id>
- <updated>2009-01-03T18:30:02Z</updated>
- <author>
- <name>John Doe</name>
- <email>johndoe@example.com</email>
- </author>
- <entry>
- <title>Atom-Powered Robots Run Amok</title>
- <link href="http://example.org/entry1" />
- <id>urn:uuid:11111111-1111-1111-1111-111111111111</id>
- <updated>2009-01-01T18:30:02Z</updated>
- <summary>This is the first sample atom entry.</summary>
- </entry>
- <entry>
- <title>Atom-Powered Robots Now OK</title>
- <link href="http://example.org/entry2" />
- <id>urn:uuid:22222222-2222-2222-2222-222222222222</id>
- <updated>2009-01-02T18:30:02Z</updated>
- <summary>This is the second sample atom entry.</summary>
- </entry>
- <entry>
- <title>Atom Feed Samples Interesting, Scientists Say</title>
- <link href="http://example.org/entry3" />
- <id>urn:uuid:333333333-3333-3333-3333-333333333333</id>
- <updated>2009-01-03T18:30:02Z</updated>
- <summary>This is the third sample atom entry.</summary>
- </entry>
-</feed>
\ No newline at end of file