Author: bhofmann Date: Mon Aug 16 21:26:20 2010 New Revision: 986132 URL: http://svn.apache.org/viewvc?rev=986132&view=rev Log: various fixes and improvements for php unit tests
including: - tests provide their own certificates for testing of signing functionality - rest api tests do not rely on a working apache instance of shindig anymore. any http calls are mocked instead. - tests work from command line. any needes $_SERVER variables are set in the tests - tests can override the main configuration with own values - some fixes in the provided sample json database - deleted needles make-release.sh script - deleted needles index.php in tests folder http://codereview.appspot.com/1988044/show Added: shindig/trunk/php/config/test.php shindig/trunk/php/test/certs/ shindig/trunk/php/test/certs/README shindig/trunk/php/test/certs/private.key shindig/trunk/php/test/certs/public.crt Removed: shindig/trunk/php/make-release.sh shindig/trunk/php/test/index.php Modified: shindig/trunk/php/src/common/Config.php shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php shindig/trunk/php/src/gadgets/ContainerConfig.php shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php shindig/trunk/php/src/social/servlet/ApiServlet.php shindig/trunk/php/test/ShindigAllTests.php shindig/trunk/php/test/common/BasicRemoteContentTest.php shindig/trunk/php/test/common/HttpServletTest.php shindig/trunk/php/test/gadgets/ContainerConfigTest.php shindig/trunk/php/test/gadgets/MakeRequestTest.php shindig/trunk/php/test/misc/upload/upload.xml shindig/trunk/php/test/social/InputAtomConverterTest.php shindig/trunk/php/test/social/InputJsonConverterTest.php shindig/trunk/php/test/social/InputXmlConverterTest.php shindig/trunk/php/test/social/MediaItemRestTest.php shindig/trunk/php/test/social/OutputAtomConverterTest.php shindig/trunk/php/test/social/OutputJsonConverterTest.php shindig/trunk/php/test/social/OutputXmlConverterTest.php shindig/trunk/php/test/social/RestBase.php shindig/trunk/php/test/social/RestRequestItemTest.php Added: shindig/trunk/php/config/test.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/config/test.php?rev=986132&view=auto ============================================================================== --- shindig/trunk/php/config/test.php (added) +++ shindig/trunk/php/config/test.php Mon Aug 16 21:26:20 2010 @@ -0,0 +1,29 @@ +<?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. + */ + +/** + * this configuration overrides some values for unit testing purposes + * you should not use these settings in production + */ +$shindigConfig = array( + 'private_key_file' => realpath(dirname(__FILE__) . '/../test/certs') . '/private.key', + 'public_key_file' => realpath(dirname(__FILE__) . '/../test/certs') . '/public.crt', + 'private_key_phrase' => 'partuza', +); \ No newline at end of file Modified: shindig/trunk/php/src/common/Config.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/common/Config.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/src/common/Config.php (original) +++ shindig/trunk/php/src/common/Config.php Mon Aug 16 21:26:20 2010 @@ -28,18 +28,20 @@ class ConfigException extends Exception class Config { private static $config = false; - static private function loadConfig() { + static public function loadConfig($local = 'local') { global $shindigConfig; if (! self::$config) { // load default configuration include_once realpath(dirname(__FILE__) . "/../../config") . '/container.php'; self::$config = $shindigConfig; - $localConfigPath = realpath(dirname(__FILE__) . "/../../config") . '/local.php'; - if (file_exists($localConfigPath)) { - // include local.php if it exists and merge the config arrays. - // the second array values overwrites the first one's - include_once $localConfigPath; - self::$config = array_merge(self::$config, $shindigConfig); + if ($local) { + $localConfigPath = realpath(dirname(__FILE__) . "/../../config") . '/' . $local . '.php'; + if (file_exists($localConfigPath)) { + // include local.php if it exists and merge the config arrays. + // the second array values overwrites the first one's + include_once $localConfigPath; + self::$config = array_merge(self::$config, $shindigConfig); + } } } } Modified: shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php (original) +++ shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php Mon Aug 16 21:26:20 2010 @@ -83,7 +83,7 @@ class BasicRemoteContentFetcher extends * @param RemoteContentRequest $request * @param string $content */ - private function parseResult(RemoteContentRequest $request, $content) { + protected function parseResult(RemoteContentRequest $request, $content) { $headers = ''; $body = ''; $httpCode = curl_getinfo($request->handle, CURLINFO_HTTP_CODE); Modified: shindig/trunk/php/src/gadgets/ContainerConfig.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/gadgets/ContainerConfig.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/src/gadgets/ContainerConfig.php (original) +++ shindig/trunk/php/src/gadgets/ContainerConfig.php Mon Aug 16 21:26:20 2010 @@ -48,7 +48,7 @@ class ContainerConfig { private function loadFromFile($file) { $contents = file_get_contents($file); - $contents = self::removeComments($contents); + $contents = $this->removeComments($contents); $config = json_decode($contents, true); if ($config == $contents) { throw new Exception("Failed to json_decode the container configuration"); @@ -63,7 +63,7 @@ class ContainerConfig { } } - public static function removeComments($str) { + public function removeComments($str) { // remove /* */ style comments $str = preg_replace('@/\\*.*?\\*/@s', '', $str); // remove // style comments, but keep 'http://' 'https://' and '"//' Modified: shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php (original) +++ shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php Mon Aug 16 21:26:20 2010 @@ -124,6 +124,10 @@ class JsonDbOpensocialService implements } } + public function resetDb() { + @unlink(sys_get_temp_dir() . '/' . $this->jsonDbFileName); + } + private function getAllPeople() { $db = $this->getDb(); $peopleTable = $db[self::$PEOPLE_TABLE]; @@ -774,7 +778,7 @@ class JsonDbOpensocialService implements public function updateAlbum($userId, $groupId, $album, $token) { $all = $this->getAllAlbums(); - if (! $all[$userId->getUserId($token)] || ! $all[$userId->getUserId($token)][$album['id']]) { + if (! $album['id'] || ! $all[$userId->getUserId($token)] || ! $all[$userId->getUserId($token)][$album['id']]) { throw new SocialSpiException("Album not found.", ResponseError::$BAD_REQUEST); } $origin = $all[$userId->getUserId($token)][$album['id']]; @@ -797,7 +801,8 @@ class JsonDbOpensocialService implements public function deleteAlbum($userId, $groupId, $albumId, $token) { $all = $this->getAllAlbums(); - if (! $all[$userId->getUserId($token)] || ! $all[$userId->getUserId($token)][$albumId]) { + $albumId = $albumId[0]; + if (! $albumId || ! $all[$userId->getUserId($token)] || ! $all[$userId->getUserId($token)][$albumId]) { throw new SocialSpiException("Album not found.", ResponseError::$BAD_REQUEST); } if ($all[$userId->getUserId($token)][$albumId]['ownerId'] != $userId->getUserId($token)) { @@ -836,6 +841,8 @@ class JsonDbOpensocialService implements $id = isset($all[$albumId]) ? (count($all[$albumId]) + 1) : 0; $mediaItem['id'] = $id; $mediaItem['lastUpdated'] = time(); + $mediaItem['created'] = $mediaItem['lastUpdated']; + $mediaItem['numComments'] = 0; if (isset($mediaItem['type'])) { $mediaItem['type'] = strtoupper($mediaItem['type']); if (! in_array($mediaItem['type'], MediaItem::$TYPES)) { @@ -861,7 +868,6 @@ class JsonDbOpensocialService implements $origin = $all[$mediaItem['albumId']][$mediaItem['id']]; $mediaItem['lastUpdated'] = time(); $mediaItem['created'] = $origin['created']; - $mediaItem['fileSize'] = $orgin['fileSize']; $mediaItem['numComments'] = $origin['numComments']; if (isset($mediaItem['type'])) { $mediaItem['type'] = strtoupper($mediaItem['type']); Modified: shindig/trunk/php/src/social/servlet/ApiServlet.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/social/servlet/ApiServlet.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/src/social/servlet/ApiServlet.php (original) +++ shindig/trunk/php/src/social/servlet/ApiServlet.php Mon Aug 16 21:26:20 2010 @@ -18,30 +18,30 @@ * under the License. */ -require 'src/social/service/DataRequestHandler.php'; -require 'src/common/SecurityToken.php'; -require 'src/common/BlobCrypter.php'; -require 'src/social/converters/InputConverter.php'; -require 'src/social/converters/InputJsonConverter.php'; -require 'src/social/converters/OutputConverter.php'; -require 'src/social/converters/OutputJsonConverter.php'; -require 'src/social/service/RequestItem.php'; -require 'src/social/service/RestRequestItem.php'; -require 'src/social/service/RpcRequestItem.php'; -require 'src/social/spi/GroupId.php'; -require 'src/social/spi/UserId.php'; -require 'src/social/spi/CollectionOptions.php'; -require 'src/common/Cache.php'; -require 'src/social/model/ComplexField.php'; -require 'src/social/model/Name.php'; -require 'src/social/model/Enum.php'; -require 'src/social/model/Person.php'; -require 'src/social/model/ListField.php'; -require 'src/social/model/Photo.php'; -require 'src/social/spi/RestfulCollection.php'; -require 'src/social/spi/DataCollection.php'; -require 'src/social/service/ResponseItem.php'; -require 'src/common/ShindigOAuth.php'; +require_once 'src/social/service/DataRequestHandler.php'; +require_once 'src/common/SecurityToken.php'; +require_once 'src/common/BlobCrypter.php'; +require_once 'src/social/converters/InputConverter.php'; +require_once 'src/social/converters/InputJsonConverter.php'; +require_once 'src/social/converters/OutputConverter.php'; +require_once 'src/social/converters/OutputJsonConverter.php'; +require_once 'src/social/service/RequestItem.php'; +require_once 'src/social/service/RestRequestItem.php'; +require_once 'src/social/service/RpcRequestItem.php'; +require_once 'src/social/spi/GroupId.php'; +require_once 'src/social/spi/UserId.php'; +require_once 'src/social/spi/CollectionOptions.php'; +require_once 'src/common/Cache.php'; +require_once 'src/social/model/ComplexField.php'; +require_once 'src/social/model/Name.php'; +require_once 'src/social/model/Enum.php'; +require_once 'src/social/model/Person.php'; +require_once 'src/social/model/ListField.php'; +require_once 'src/social/model/Photo.php'; +require_once 'src/social/spi/RestfulCollection.php'; +require_once 'src/social/spi/DataCollection.php'; +require_once 'src/social/service/ResponseItem.php'; +require_once 'src/common/ShindigOAuth.php'; /** * Common base class for API servlets. Modified: shindig/trunk/php/test/ShindigAllTests.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/ShindigAllTests.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/ShindigAllTests.php (original) +++ shindig/trunk/php/test/ShindigAllTests.php Mon Aug 16 21:26:20 2010 @@ -21,15 +21,15 @@ /* * This file is meant to be run through a php command line or cruiscontrol build, and not called directly * through the web browser. To run these tests from the command line: - * # cd /path/to/shindig - * # phpunit ShindigAllTests php/test/ShindigAllTests.php + * # cd /path/to/shindig/php + * # phpunit ShindigAllTests test/ShindigAllTests.php */ function __autoload($className) { - $basePath = realpath('./php'); + $basePath = realpath('./'); $locations = array('src/common', 'src/common/sample', 'src/gadgets', 'src/gadgets/http', 'src/gadgets/oauth', - 'src/gadgets/sample', 'src/social', 'src/social/http', 'src/social/service', - 'src/social/converters', 'src/social/opensocial', 'src/social/spi', 'src/social/model', + 'src/gadgets/sample', 'src/gadgets/render', 'src/gadgets/rewrite', 'src/gadgets/templates', 'src/social', 'src/social/http', 'src/social/service', + 'src/social/converters', 'src/social/opensocial', 'src/social/spi', 'src/social/model', 'src/social/servlet', 'src/social/sample', 'src/social/oauth'); $extension_class_paths = Config::get('extension_class_paths'); if (! empty($extension_class_paths)) { @@ -45,11 +45,11 @@ function __autoload($className) { } } -set_include_path(get_include_path() . PATH_SEPARATOR . realpath('./php') . PATH_SEPARATOR . realpath('./php/external')); +set_include_path(get_include_path() . PATH_SEPARATOR . realpath('.') . PATH_SEPARATOR . realpath('./external')); error_reporting(E_ALL | E_STRICT); require_once 'src/common/Config.php'; +Config::loadConfig('test'); require_once 'test/TestContext.php'; - if (defined('PHPUnit_MAIN_METHOD') === false) { define('PHPUnit_MAIN_METHOD', 'ShindigAllTests::main'); } @@ -63,7 +63,7 @@ class ShindigAllTests { public static function suite() { $suite = new PHPUnit_Framework_TestSuite(); $suite->setName('Shindig'); - $path = realpath('./php/test/'); + $path = realpath('./test/'); $testTypes = array('common', 'gadgets', 'social'); foreach ($testTypes as $type) { foreach (glob("$path/{$type}/*Test.php") as $file) { Added: shindig/trunk/php/test/certs/README URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/certs/README?rev=986132&view=auto ============================================================================== --- shindig/trunk/php/test/certs/README (added) +++ shindig/trunk/php/test/certs/README Mon Aug 16 21:26:20 2010 @@ -0,0 +1,5 @@ +These keys are just used for unit test and should never be used in production. + +Goto the certs directory shindig/php/certs and create your own public and private keys +with your own password there. + Added: shindig/trunk/php/test/certs/private.key URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/certs/private.key?rev=986132&view=auto ============================================================================== --- shindig/trunk/php/test/certs/private.key (added) +++ shindig/trunk/php/test/certs/private.key Mon Aug 16 21:26:20 2010 @@ -0,0 +1,18 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,FA1FDD216DED3C69 + +BFekZznDqWZAAtEryw/br7Yh3U8b0NWxgWQXPlaxlE3gQQYA8PJB4Jh/cjw7V4kQ +PcZddQSZ3KcN9a915aVoLdOJfp3RTOXk8wIRYBQ2o17ap7T/ylJlT0/qQdWp/3bh +s3FnY19ZaX2dAfh2ETCqWFoLMn+RuT8xgju3uMM9N9NmaQ080n/KGvl09Ljb9ul3 +91J3SrDT5IpfbAGicpcmyAV3WsQQC1FQsP3oJyADp/63oZeIuVFsrfAgRfR2xUwd +sS0mawHHEIDsZBPc/9tiiSA+a9QZrrcrra3RtOg2gFF6oErZuO0Ot7lI+Q6QbKPk +tNrMitIwMd6qQdTT3gBHbAzhk1D6db2k5gWOki74bxJMyWVDX01i5ncU8jn34p2g +6yDrjiEGdVACS/xHKeGJk/mBL8y/0wMq4yENHeEnQbFbYBo9NUOCsMc+Ja9DuLKs +o+dUWBHrGk6wyWBHi6I0Jox3hBQqrE8a5bVj+jvlck5Z+/ncOvVu8K7eL57yhQzr +RVW43qx/rqg5Diz3HEajo/I9qBEOidIBtijPXPkR9lSjXZlQrF6ItIA7HV14grCW +ZvycEttN5Z9OlnujbHddYHbTNb7ncLG+XfemWBVMWzDGLEEq8uYaLnFRTtbOdTT4 +EBARGw2MF6JRxYmEkf1yYGq61Hp1LAduF+UHodgH4tAg82KxLEKBC1ZPdSSF8pNq +3iaspbPSJo/ZGvI9uWUY+lyv4tsCa4HC62cU/TMjxNB6ll+HC5CYNyi96pdryeEW ++tPkpYxX6Oyv20gzwaqyv3MaYuHz+nHsJt87bW6CrGX4v2fzP2/maA== +-----END RSA PRIVATE KEY----- Added: shindig/trunk/php/test/certs/public.crt URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/certs/public.crt?rev=986132&view=auto ============================================================================== --- shindig/trunk/php/test/certs/public.crt (added) +++ shindig/trunk/php/test/certs/public.crt Mon Aug 16 21:26:20 2010 @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICkjCCAfugAwIBAgIJAI4XlVLWTYStMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRcwFQYDVQQKEw5BcGFjaGUgU2hp +bmRpZzAeFw0xMDA4MTUxNjAyMDZaFw0xMTA4MTUxNjAyMDZaMDsxCzAJBgNVBAYT +AlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRcwFQYDVQQKEw5BcGFjaGUgU2hpbmRp +ZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxXdIKgzLkMp1xlHyP+qwlvZX +Doz2kr/uC3UCoJHEG5bIvO3JZ5YQBDhQeNq2HyWzyi9645HHtU3WsnonJTL0WHYo +zXCwTesJrgRVDFxoQfvRu2E9p78rX1QtaLSdDgQGJkNO2MFMz7d2V+ADMPEEBJYg +E2qj2eOwjY5qJv356skCAwEAAaOBnTCBmjAdBgNVHQ4EFgQU/NfE6kopCs7uO3Ni +602hPU4GWGswawYDVR0jBGQwYoAU/NfE6kopCs7uO3Ni602hPU4GWGuhP6Q9MDsx +CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRcwFQYDVQQKEw5BcGFj +aGUgU2hpbmRpZ4IJAI4XlVLWTYStMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF +BQADgYEAj/QV42ys1V1TCi1C56BUD9e1oJVArEmlKITjlFQk4MNE55zgdvUSySHF +rhfkqnQYuczJRL52r5SvzM06bjpNumDJYFwpKOlwYz05LFTCrOLhJF4YmtOPoHJp +xvYLtrT6xJb192cTHDyiw8aqGa/f0An5C2fD9P9NCmiHZQazg6U= +-----END CERTIFICATE----- Modified: shindig/trunk/php/test/common/BasicRemoteContentTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/common/BasicRemoteContentTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/common/BasicRemoteContentTest.php (original) +++ shindig/trunk/php/test/common/BasicRemoteContentTest.php Mon Aug 16 21:26:20 2010 @@ -42,6 +42,7 @@ class MockSigningFetcherFactory { * @here will create a private key. */ public function __construct() { + $_SERVER["HTTP_HOST"] = 'localhost'; $privkey = openssl_pkey_new(); $phrase = Config::get('private_key_phrase') != '' ? (Config::get('private_key_phrase')) : null; openssl_pkey_export($privkey, $rsa_private_key, $phrase); Modified: shindig/trunk/php/test/common/HttpServletTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/common/HttpServletTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/common/HttpServletTest.php (original) +++ shindig/trunk/php/test/common/HttpServletTest.php Mon Aug 16 21:26:20 2010 @@ -54,6 +54,7 @@ class HttpServletTest extends PHPUnit_Fr protected function tearDown() { $this->HttpServlet = null; + ob_end_clean(); parent::tearDown(); } Modified: shindig/trunk/php/test/gadgets/ContainerConfigTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/gadgets/ContainerConfigTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/gadgets/ContainerConfigTest.php (original) +++ shindig/trunk/php/test/gadgets/ContainerConfigTest.php Mon Aug 16 21:26:20 2010 @@ -69,7 +69,8 @@ class ContainerConfigTest extends PHPUni "gadgets.oauthGadgetCallbackTemplate" : "//%host%/gadgets/oauthcallback" } EOD; - $uncommented = ContainerConfig::removeComments($jsFile); + $containerConfig = new ContainerConfig(Config::get('container_path')); + $uncommented = $containerConfig->removeComments($jsFile); $jsonObj = json_decode($uncommented, true); $this->assertNotEquals($uncommented, $jsonObj); $this->assertEquals(array("default"), $jsonObj["gadgets.container"]); Modified: shindig/trunk/php/test/gadgets/MakeRequestTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/gadgets/MakeRequestTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/gadgets/MakeRequestTest.php (original) +++ shindig/trunk/php/test/gadgets/MakeRequestTest.php Mon Aug 16 21:26:20 2010 @@ -35,6 +35,7 @@ class MockMakeRequestFetcher extends Rem * Constructor. */ public function __construct() { + $_SERVER["HTTP_HOST"] = 'localhost'; $this->responses = array(); $this->requests = array(); } @@ -161,7 +162,7 @@ class MakeRequestTest extends PHPUnit_Fr $params = new MakeRequestOptions('http://www.example.com'); $params->setAuthz('SIGNED') ->setNoCache(true) - ->setSecurityTokenString(urlencode(base64_encode($token->toSerialForm()))); + ->setSecurityTokenString(urldecode($token->toSerialForm())); $request = $this->catchRequest($params, $this->response); @@ -183,7 +184,7 @@ class MakeRequestTest extends PHPUnit_Fr $params->setAuthz('SIGNED') ->setNoCache(true) ->setSignViewer(false) - ->setSecurityTokenString(urlencode(base64_encode($token->toSerialForm()))); + ->setSecurityTokenString(urldecode($token->toSerialForm())); $request = $this->catchRequest($params, $this->response); Modified: shindig/trunk/php/test/misc/upload/upload.xml URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/misc/upload/upload.xml?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/misc/upload/upload.xml (original) +++ shindig/trunk/php/test/misc/upload/upload.xml Mon Aug 16 21:26:20 2010 @@ -27,7 +27,7 @@ function initData() { var jsonInput = document.getElementById("json-input"); - jsonInput.value = ' [ { "method":"mediaitems.create", "params": {"albumId":"1", "mediaItem": { "id" : "11223344", "thumbnailUrl" : "http://pages.example.org/images/11223344-tn.png", "mimeType" : "image/png", "type" : "image", "url" : "@field:1.jpg", "albumId" : "1" } } } ]'; + jsonInput.value = ' [ { "method":"mediaitems.create", "params": {"albumId":"1", "mediaItem": { "id" : "11223344", "thumbnailUrl" : "http://www.libpng.org/pub/png/img_png/pngnow.png", "mimeType" : "image/png", "type" : "image", "url" : "@field:1.jpg", "albumId" : "1" } } } ]'; gadgets.window.adjustHeight(); } Modified: shindig/trunk/php/test/social/InputAtomConverterTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/InputAtomConverterTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/InputAtomConverterTest.php (original) +++ shindig/trunk/php/test/social/InputAtomConverterTest.php Mon Aug 16 21:26:20 2010 @@ -151,7 +151,7 @@ class InputAtomConverterTest extends PHP <content type="application/xml"> <album xmlns="http://ns.opensocial.org/2008/opensocial"> <id>44332211</id> - <thumbnailUrl>http://pages.example.org/albums/4433221-tn.png</thumbnailUrl> + <thumbnailUrl>http://www.libpng.org/pub/png/img_png/pngnow.png</thumbnailUrl> <caption>Example Album</caption> <description>This is an example album, and this text is an example description</description> <location> @@ -168,7 +168,7 @@ class InputAtomConverterTest extends PHP </entry>'; $album = $this->inputAtomConverter->convertAlbums($xml); $this->assertEquals('44332211', $album['id']); - $this->assertEquals('http://pages.example.org/albums/4433221-tn.png', $album['thumbnailUrl']); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $album['thumbnailUrl']); $this->assertEquals('This is an example album, and this text is an example description', $album['description']); $this->assertEquals('Example Album', $album['title']); $this->assertEquals('example.org:55443322', $album['ownerId']); @@ -182,10 +182,10 @@ class InputAtomConverterTest extends PHP <content type="application/xml"> <mediaItem xmlns="http://ns.opensocial.org/2008/opensocial"> <id>11223344</id> - <thumbnailUrl>http://pages.example.org/images/11223344-tn.png</thumbnailUrl> + <thumbnailUrl>http://www.libpng.org/pub/png/img_png/pngnow.png</thumbnailUrl> <mimeType>image/png</mimeType> <type>image</type> - <url>http://pages.example.org/images/11223344.png</url> + <url>http://www.libpng.org/pub/png/img_png/pngnow.png</url> <albumId>44332211</albumId> </mediaItem> </content> @@ -196,9 +196,9 @@ class InputAtomConverterTest extends PHP </entry>'; $mediaItem = $this->inputAtomConverter->convertMediaItems($xml); $this->assertEquals('11223344', $mediaItem['id']); - $this->assertEquals('http://pages.example.org/images/11223344-tn.png', $mediaItem['thumbnailUrl']); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $mediaItem['thumbnailUrl']); $this->assertEquals('44332211', $mediaItem['albumId']); - $this->assertEquals('http://pages.example.org/images/11223344.png', $mediaItem['url']); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $mediaItem['url']); $this->assertEquals('image/png', $mediaItem['mimeType']); } } Modified: shindig/trunk/php/test/social/InputJsonConverterTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/InputJsonConverterTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/InputJsonConverterTest.php (original) +++ shindig/trunk/php/test/social/InputJsonConverterTest.php Mon Aug 16 21:26:20 2010 @@ -121,17 +121,17 @@ class InputJsonConverterTest extends PHP public function testConvertMediaItem() { $json = '{ "id" : "11223344", - "thumbnailUrl" : "http://pages.example.org/images/11223344-tn.png", + "thumbnailUrl" : "http://www.libpng.org/pub/png/img_png/pngnow.png", "mimeType" : "image/png", "type" : "image", - "url" : "http://pages.example.org/images/11223344.png", + "url" : "http://www.libpng.org/pub/png/img_png/pngnow.png", "albumId" : "44332211" }'; $mediaItem = $this->inputJsonConverter->convertMediaItems($json); $this->assertEquals('11223344', $mediaItem['id']); - $this->assertEquals('http://pages.example.org/images/11223344-tn.png', $mediaItem['thumbnailUrl']); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $mediaItem['thumbnailUrl']); $this->assertEquals('44332211', $mediaItem['albumId']); - $this->assertEquals('http://pages.example.org/images/11223344.png', $mediaItem['url']); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $mediaItem['url']); $this->assertEquals('image/png', $mediaItem['mimeType']); } } Modified: shindig/trunk/php/test/social/InputXmlConverterTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/InputXmlConverterTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/InputXmlConverterTest.php (original) +++ shindig/trunk/php/test/social/InputXmlConverterTest.php Mon Aug 16 21:26:20 2010 @@ -134,7 +134,7 @@ class InputXmlConverterTest extends PHPU $xml = '<?xml version="1.0" encoding="UTF-8"?> <album xmlns="http://ns.opensocial.org/2008/opensocial"> <id>44332211</id> - <thumbnailUrl>http://pages.example.org/albums/4433221-tn.png</thumbnailUrl> + <thumbnailUrl>http://www.libpng.org/pub/png/img_png/pngnow.png</thumbnailUrl> <caption>Example Album</caption> <description>This is an example album, and this text is an example description</description> <location> @@ -145,7 +145,7 @@ class InputXmlConverterTest extends PHPU </album>'; $album = $this->inputXmlConverter->convertAlbums($xml); $this->assertEquals('44332211', $album['id']); - $this->assertEquals('http://pages.example.org/albums/4433221-tn.png', $album['thumbnailUrl']); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $album['thumbnailUrl']); $this->assertEquals('This is an example album, and this text is an example description', $album['description']); $this->assertEquals('Example Album', $album['title']); $this->assertEquals('example.org:55443322', $album['ownerId']); @@ -158,17 +158,17 @@ class InputXmlConverterTest extends PHPU $xml = '<?xml version="1.0" encoding="UTF-8"?> <mediaItem xmlns="http://ns.opensocial.org/2008/opensocial"> <id>11223344</id> - <thumbnailUrl>http://pages.example.org/images/11223344-tn.png</thumbnailUrl> + <thumbnailUrl>http://www.libpng.org/pub/png/img_png/pngnow.png</thumbnailUrl> <mimeType>image/png</mimeType> <type>image</type> - <url>http://pages.example.org/images/11223344.png</url> + <url>http://www.libpng.org/pub/png/img_png/pngnow.png</url> <albumId>44332211</albumId> </mediaItem>'; $mediaItem = $this->inputXmlConverter->convertMediaItems($xml); $this->assertEquals('11223344', $mediaItem['id']); - $this->assertEquals('http://pages.example.org/images/11223344-tn.png', $mediaItem['thumbnailUrl']); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $mediaItem['thumbnailUrl']); $this->assertEquals('44332211', $mediaItem['albumId']); - $this->assertEquals('http://pages.example.org/images/11223344.png', $mediaItem['url']); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $mediaItem['url']); $this->assertEquals('image/png', $mediaItem['mimeType']); } } \ No newline at end of file Modified: shindig/trunk/php/test/social/MediaItemRestTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/MediaItemRestTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/MediaItemRestTest.php (original) +++ shindig/trunk/php/test/social/MediaItemRestTest.php Mon Aug 16 21:26:20 2010 @@ -24,7 +24,7 @@ class MediaItemRestTest extends RestBase protected function setUp() { $postData = '{ "id" : "44332211", - "thumbnailUrl" : "http://pages.example.org/albums/4433221-tn.png", + "thumbnailUrl" : "http://www.libpng.org/pub/png/img_png/pngnow.png", "title" : "Example Album", "description" : "This is an example album, and this text is an example description", "location" : { "latitude": 0, "longitude": 0 }, @@ -45,16 +45,6 @@ class MediaItemRestTest extends RestBase // $this->assertTrue(empty($ret), "Delete the created album failed. Response: $ret"); } - private function curlGet($url) { - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_HEADER, 0); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - $ret = curl_exec($ch); - curl_close($ch); - return $ret; - } - private function verifyLifeCycle($postData, $postDataFormat) { $url = '/mediaitems/1/@self/' . $this->album['id']; $ret = $this->curlRest($url, $postData, $postDataFormat); @@ -65,10 +55,8 @@ class MediaItemRestTest extends RestBase $this->assertFalse(empty($ret)); $fetched = json_decode($ret, true); $fetched = $fetched['entry'][0]; - $data = $this->curlGet($fetched['url']); - $this->assertTrue(substr($data, 0, strlen('GIF')) == 'GIF'); - $this->assertEquals('http://pages.example.org/images/11223344-tn.png', $fetched['thumbnailUrl'], "thumbnailUrl should be same."); - $this->assertEquals('image/gif', $fetched['mimeType'], "mimeType should be same."); + $this->assertEquals('http://www.libpng.org/pub/png/img_png/pngnow.png', $fetched['thumbnailUrl'], "thumbnailUrl should be same."); + $this->assertEquals('image/png', $fetched['mimeType'], "mimeType should be same."); $this->assertEquals('IMAGE', $fetched['type'], "type should be same."); $fetched['thumbnailUrl'] = 'http://changed.com/tn.png'; $ret = $this->curlRest($url . '/' . urlencode($mediaItem['id']), json_encode($fetched), 'application/json', 'PUT'); @@ -77,7 +65,7 @@ class MediaItemRestTest extends RestBase $fetched = json_decode($ret, true); $fetched = $fetched['entry'][0]; $this->assertEquals('http://changed.com/tn.png', $fetched['thumbnailUrl'], "thumbnailUrl should be same."); - $this->assertEquals('image/gif', $fetched['mimeType'], "mimeType should be same."); + $this->assertEquals('image/png', $fetched['mimeType'], "mimeType should be same."); $this->assertEquals('IMAGE', $fetched['type'], "type should be same."); $ret = $this->curlRest($url . '/' . urlencode($mediaItem['id']), '', 'application/json', 'DELETE'); @@ -91,7 +79,7 @@ class MediaItemRestTest extends RestBase public function testLifeCycleInJson() { $postData = '{ "id" : "11223344", - "thumbnailUrl" : "http://pages.example.org/images/11223344-tn.png", + "thumbnailUrl" : "http://www.libpng.org/pub/png/img_png/pngnow.png", "mimeType" : "image/png", "type" : "image", "url" : "http://www.google.com/intl/en_ALL/images/logo.gif", @@ -104,7 +92,7 @@ class MediaItemRestTest extends RestBase $postData = '<?xml version="1.0" encoding="UTF-8"?> <mediaItem xmlns="http://ns.opensocial.org/2008/opensocial"> <id>11223344</id> - <thumbnailUrl>http://pages.example.org/images/11223344-tn.png</thumbnailUrl> + <thumbnailUrl>http://www.libpng.org/pub/png/img_png/pngnow.png</thumbnailUrl> <mimeType>image/png</mimeType> <type>image</type> <url>http://www.google.com/intl/en_ALL/images/logo.gif</url> @@ -118,7 +106,7 @@ class MediaItemRestTest extends RestBase <content type="application/xml"> <mediaItem xmlns="http://ns.opensocial.org/2008/opensocial"> <id>11223344</id> - <thumbnailUrl>http://pages.example.org/images/11223344-tn.png</thumbnailUrl> + <thumbnailUrl>http://www.libpng.org/pub/png/img_png/pngnow.png</thumbnailUrl> <mimeType>image/png</mimeType> <type>image</type> <url>http://www.google.com/intl/en_ALL/images/logo.gif</url> @@ -136,10 +124,10 @@ class MediaItemRestTest extends RestBase public function testLifeCycleWithActivity() { // Creates the media item. $postData = '{ "id" : "11223344", - "thumbnailUrl" : "http://pages.example.org/images/11223344-tn.png", + "thumbnailUrl" : "http://www.libpng.org/pub/png/img_png/pngnow.png", "mimeType" : "image/png", "type" : "image", - "url" : "http://pages.example.org/images/11223344.png", + "url" : "http://www.libpng.org/pub/png/img_png/pngnow.png", "albumId" : "' . $this->album['id'] . '" }'; $url = '/mediaitems/1/@self/' . $this->album['id']; Modified: shindig/trunk/php/test/social/OutputAtomConverterTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/OutputAtomConverterTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/OutputAtomConverterTest.php (original) +++ shindig/trunk/php/test/social/OutputAtomConverterTest.php Mon Aug 16 21:26:20 2010 @@ -32,6 +32,8 @@ class OutputAtomConverterTest extends PH * Prepares the environment before running a test. */ protected function setUp() { + $_SERVER['REQUEST_METHOD'] = 'GET'; + $_SERVER["HTTP_HOST"] = 'localhost'; parent::setUp(); $this->OutputAtomConverter = new OutputAtomConverter(); } Modified: shindig/trunk/php/test/social/OutputJsonConverterTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/OutputJsonConverterTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/OutputJsonConverterTest.php (original) +++ shindig/trunk/php/test/social/OutputJsonConverterTest.php Mon Aug 16 21:26:20 2010 @@ -32,6 +32,7 @@ class OutputJsonConverterTest extends PH * Prepares the environment before running a test. */ protected function setUp() { + $_SERVER['REQUEST_METHOD'] = 'GET'; parent::setUp(); $this->OutputJsonConverter = new OutputJsonConverter(); } Modified: shindig/trunk/php/test/social/OutputXmlConverterTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/OutputXmlConverterTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/OutputXmlConverterTest.php (original) +++ shindig/trunk/php/test/social/OutputXmlConverterTest.php Mon Aug 16 21:26:20 2010 @@ -32,6 +32,7 @@ class OutputXmlConverterTest extends PHP * Prepares the environment before running a test. */ protected function setUp() { + $_SERVER['REQUEST_METHOD'] = 'GET'; parent::setUp(); $this->OutputXmlConverter = new OutputXmlConverter(); } Modified: shindig/trunk/php/test/social/RestBase.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/RestBase.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/RestBase.php (original) +++ shindig/trunk/php/test/social/RestBase.php Mon Aug 16 21:26:20 2010 @@ -24,32 +24,34 @@ */ class RestBase extends PHPUnit_Framework_TestCase { - /* Modify this if you want to test in a different social graph then partuza. The security token - * only works if ALLOW_PLAINTEXT_TOKEN is set to true in the file shindig/php/config/containerphp - * The format of the plain text token is owner:viewer:appId:domain:appUrl:moduleId:containerId - */ - private $securityToken = '1:1:1:partuza:test.com:1:0'; + private $securityToken; // The server to test against. You may need to add shindig to 127.0.0.1 mapping in /etc/hosts. private $restUrl = ''; public function __construct() { - $this->restUrl = 'http://' . $_SERVER["HTTP_HOST"] . Config::get('web_prefix') . '/social/rest'; + $db = new JsonDbOpensocialService(); + $db->resetDb(); + $this->securityToken = BasicSecurityToken::createFromValues(1, 1, 1, 'partuza', 'test.com', 1, 0)->toSerialForm(); + $this->securityToken = urldecode($this->securityToken); + $this->restUrl = 'http://localhost' . Config::get('web_prefix') . '/social/rest'; } - protected function curlRest($url, $postData, $contentType, $method = 'POST') { - $ch = curl_init(); - if (substr($url, 0, 1) != '/') { - $url = '/' . $url; - } + protected function curlRest($url, $postData, $contentType = 'application/json', $method = 'POST') { + $_SERVER['CONTENT_TYPE'] = $contentType; $sep = strpos($url, '?') !== false ? '&' : '?'; - curl_setopt($ch, CURLOPT_URL, $this->restUrl . $url . $sep . 'st=' . $this->securityToken); - curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: $contentType")); - curl_setopt($ch, CURLOPT_HEADER, 0); - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); - curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - $ret = curl_exec($ch); - curl_close($ch); + $_SERVER["REQUEST_URI"] = $this->restUrl . $url . $sep . 'st=' . $this->securityToken; + $parsedUrl = parse_url($_SERVER["REQUEST_URI"]); + $GLOBALS['HTTP_RAW_POST_DATA'] = $postData ? $postData : null; + $_SERVER['REQUEST_METHOD'] = $method; + $_SERVER['QUERY_STRING'] = $parsedUrl['query']; + $_SERVER['HTTP_HOST'] = $parsedUrl['host']; + $_GET = array('st' => $this->securityToken); + $servlet = new DataServiceServlet(); + $servletMethod = 'do' . ucfirst(strtolower($method)); + ob_start(); + $servlet->$servletMethod(); + $ret = ob_get_clean(); + //var_dump($ret); return $ret; } Modified: shindig/trunk/php/test/social/RestRequestItemTest.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/test/social/RestRequestItemTest.php?rev=986132&r1=986131&r2=986132&view=diff ============================================================================== --- shindig/trunk/php/test/social/RestRequestItemTest.php (original) +++ shindig/trunk/php/test/social/RestRequestItemTest.php Mon Aug 16 21:26:20 2010 @@ -27,6 +27,7 @@ class RestRequestItemTest extends PHPUni * Prepares the environment before running a test. */ protected function setUp() { + $_SERVER['REQUEST_METHOD'] = 'GET'; parent::setUp(); }
