/**
  * Tests OutputJsonConverter->outputResponse()
  */
 public function testOutputResponse()
 {
     $inputConverter = new InputJsonConverter();
     $outputConverter = new OutputJsonConverter();
     $servletRequest = array('url' => '/people/1/@self');
     $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default');
     $requestItem = RestRequestItem::createWithRequest($servletRequest, $token, $inputConverter, $outputConverter);
     $requestItem->applyUrlTemplate("/people/{userId}/{groupId}/{personId}");
     $response = array('entry' => array('isOwner' => false, 'isViewer' => false, 'displayName' => '1 1', 'id' => '1'));
     $responseItem = new ResponseItem(null, null, $response);
     ob_start();
     $outputConverter->outputResponse($responseItem, $requestItem);
     $output = ob_get_clean();
     $expected = '{
     "entry": {
       "isOwner": false,
       "isViewer": false,
       "displayName": "1 1",
       "id": "1"
     }
 }';
     $outputJson = json_decode($output);
     $expectedJson = json_decode($expected);
     $this->assertEquals($expectedJson, $outputJson);
 }
 private function getToken()
 {
     if (is_null($this->token)) {
         $this->token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1');
     }
     return $this->token;
 }
    /**
     * Tests OutputXmlConverter->outputResponse()
     */
    public function testOutputResponse()
    {
        $inputConverter = new InputXmlConverter();
        $outputConverter = new OutputXmlConverter();
        $servletRequest = array('url' => '/people/1/@self');
        $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default');
        $requestItem = RestRequestItem::createWithRequest($servletRequest, $token, $inputConverter, $outputConverter);
        $requestItem->applyUrlTemplate("/people/{userId}/{groupId}/{personId}");
        $entry = array('isOwner' => false, 'isViewer' => false, 'displayName' => '1 1', 'id' => '1');
        $response = array('entry' => $entry);
        $responseItem = new ResponseItem(null, null, $response);
        ob_start();
        $outputConverter->outputResponse($responseItem, $requestItem);
        $output = ob_get_clean();
        $expected = '<?xml version="1.0" encoding="UTF-8"?>
<response>
  <entry>
    <isOwner></isOwner>
    <isViewer></isViewer>
    <displayName>1 1</displayName>
    <id>1</id>
  </entry>
</response>
';
        $outputXml = simplexml_load_string($output);
        $expectedXml = simplexml_load_string($expected);
        $this->assertEquals($expectedXml, $outputXml);
    }
 public function __construct()
 {
     $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';
 }
 /**
  * Tests BasicSecurityToken::createFromValues()
  */
 public function testCreateFromValues()
 {
     $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1');
     $this->assertEquals('owner', $token->getOwnerId());
     $this->assertEquals('viewer', $token->getViewerId());
     $this->assertEquals('app', $token->getAppId());
     $this->assertEquals('domain', $token->getDomain());
     $this->assertEquals('appUrl', $token->getAppUrl());
     $this->assertEquals('1', $token->getModuleId());
 }
 /**
  * Tests MessagesHandler->handlePut()
  */
 public function testHandlePut()
 {
     $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1');
     //Create message
     $request = array();
     $request['url'] = '/messages/@viewer/outbox/1';
     $request['postData'] = 'message 1';
     $requestItem = new RestRequestItem();
     $requestItem->createRequestItemWithRequest($request, $token);
     $response = $this->MessagesHandler->handlePut($requestItem);
     $this->assertEquals(NOT_IMPLEMENTED, $response->getError());
     $this->assertEquals("Not implemented", $response->getErrorMessage());
 }
 /**
  * Tests UserId->getUserId()
  */
 public function testGetUserId()
 {
     $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1');
     $userId = $this->UserId->getUserId($token);
     $this->assertEquals('john.doe', $userId);
     $this->UserId->__construct(UserId::$types[1], 1);
     //owner
     $userId = $this->UserId->getUserId($token);
     $this->assertEquals('john.doe', $userId);
     $this->UserId->__construct(UserId::$types[2], 1);
     //userId
     $userId = $this->UserId->getUserId($token);
     $this->assertEquals('1', $userId);
 }
 /**
  * Tests RestRequestItem->createWithRequest()
  */
 public function testCreateWithRequest()
 {
     $expectedParams = array('oauth_nonce' => '10075052d8a3cd0087d11346edba8f1f', 'oauth_timestamp' => '1242011332', 'oauth_consumer_key' => 'consumerKey', 'fields' => 'gender,name', 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_signature' => 'wDcyXTBqhxW70G+ddZtw7zPVGyE=');
     $urlencodedParams = array();
     foreach ($expectedParams as $key => $value) {
         $urlencodedParams[] = $key . '=' . urlencode($value);
     }
     $url = '/people/1/@self?' . join('&', $urlencodedParams);
     $outputConverter = new OutputJsonConverter();
     $servletRequest = array('url' => $url);
     $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default');
     $requestItem = RestRequestItem::createWithRequest($servletRequest, $token, 'convertJson', $outputConverter);
     $params = $requestItem->getParameters();
     $this->assertEquals($expectedParams, $params);
 }
 /**
  * Tests JsonDbOpensocialService->getActivities() with paging.
  */
 public function testGetActivities()
 {
     $token = BasicSecurityToken::createFromValues('jane.doe', 'jane.doe', 1, 1, 1, 1);
     $userId = new UserId('owner', null);
     $userIds = array($userId);
     $groupId = new GroupId('self', null);
     $startIndex = 1;
     $count = 1;
     $ret = $this->service->getActivities($userIds, $groupId, 1, null, null, null, null, $startIndex, $count, null, 1, $token);
     $this->assertEquals($startIndex, $ret->startIndex);
     $this->assertEquals($count, count($ret->entry));
     $this->assertEquals(2, $ret->totalResults);
     $this->assertEquals('2', $ret->entry[0]['id']);
     $this->assertEquals('Jane says George likes yoda!', $ret->entry[0]['title']);
     $this->assertEquals('or is it you?', $ret->entry[0]['body']);
 }
 /**
  * Tests PeopleHandler->handleGet()
  */
 public function testHandleGet()
 {
     $request = array();
     $request['url'] = '/people/@viewer/@self';
     $request['method'] = 'GET';
     $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1');
     $requestItem = new RestRequestItem();
     $requestItem->createRequestItemWithRequest($request, $token);
     $response = $this->PeopleHandler->handleGet($requestItem);
     $person = $response->getResponse();
     $this->assertEquals('john.doe', $person['id']);
     $this->assertEquals('MALE', $person['gender']['key']);
     $this->assertEquals('Male', $person['gender']['displayValue']);
     $this->assertEquals('Doe', $person['name']['familyName']);
     $this->assertEquals('John', $person['name']['givenName']);
     $this->assertEquals('John Doe', $person['name']['unstructured']);
 }
 /**
  * Tests BasicSecurityToken::createFromValues(), toSerialForm() and createFromToken() 
  */
 public function testCreateFromValues()
 {
     $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default');
     $this->assertEquals('owner', $token->getOwnerId());
     $this->assertEquals('viewer', $token->getViewerId());
     $this->assertEquals('app', $token->getAppId());
     $this->assertEquals('domain', $token->getDomain());
     $this->assertEquals('appUrl', $token->getAppUrl());
     $this->assertEquals('1', $token->getModuleId());
     $stringToken = urldecode($token->toSerialForm());
     $duplicatedToken = BasicSecurityToken::createFromToken($stringToken, Config::get('token_max_age'));
     $this->assertEquals('owner', $duplicatedToken->getOwnerId());
     $this->assertEquals('viewer', $duplicatedToken->getViewerId());
     $this->assertEquals('app', $duplicatedToken->getAppId());
     $this->assertEquals('domain', $duplicatedToken->getDomain());
     $this->assertEquals('appUrl', $duplicatedToken->getAppUrl());
     $this->assertEquals('1', $duplicatedToken->getModuleId());
 }
    /**
     * Tests OutputAtomConverter->outputResponse()
     */
    public function testOutputResponse()
    {
        $inputConverter = new InputAtomConverter();
        $outputConverter = new OutputAtomConverter();
        $servletRequest = array('url' => '/people/1/@self');
        $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default');
        $requestItem = RestRequestItem::createWithRequest($servletRequest, $token, $inputConverter, $outputConverter);
        $requestItem->applyUrlTemplate("/people/{userId}/{groupId}/{personId}");
        $entry = array('isOwner' => false, 'isViewer' => false, 'displayName' => '1 1', 'id' => '1');
        $response = array('entry' => $entry);
        $responseItem = new ResponseItem(null, null, $response);
        ob_start();
        $outputConverter->outputResponse($responseItem, $requestItem);
        $output = ob_get_clean();
        $expected = '<entry xmlns="http://www.w3.org/2005/Atom">
  <title>person entry for shindig:1</title>
  <author>
    <uri>urn:guid:1</uri>
    <name>shindig:1</name>
  </author>
  <id>urn:guid:1</id>
  <updated>2008-12-11T19:58:31+01:00</updated>
  <content type="application/xml">
    <entry xmlns="http://ns.opensocial.org/2008/opensocial">
      <isOwner></isOwner>
      <isViewer></isViewer>
      <displayName>1 1</displayName>
      <id>1</id>
    </entry>
  </content>
</entry>
';
        $outputXml = simplexml_load_string($output);
        $expectedXml = simplexml_load_string($expected);
        $expectedXml->updated = $outputXml->updated;
        // Prefix may be 'shindig' or something else.
        $expectedXml->title = $outputXml->title;
        $expectedXml->author->name = $outputXml->author->name;
        $this->assertEquals($expectedXml, $outputXml);
    }
 /**
  * Tests JsonDbOpensocialService->createActivity()
  */
 public function testCreateActivity()
 {
     $userId = new UserId('viewer', null);
     $groupId = new GroupId('self', null);
     $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1');
     $activity = array();
     $activity['id'] = 2;
     $activity['title'] = 'John Doe wrote: asdasd';
     $activity['body'] = 'write back!';
     $activity['mediaItems'] = array();
     $activity['mediaItems'][0]['type'] = 'image';
     $activity['mediaItems'][0]['mimeType'] = 'image';
     $activity['mediaItems'][0]['image'] = 'http://cdn.davesdaily.com/pictures/784-awesome-hands.jpg';
     $this->JsonDbOpensocialService->createActivity($userId, $activity, $token);
     /*		
     		//Validating the created activity
     		$token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1');
     		$responseItem = $this->JsonDbOpensocialService->getActivity($userId, $groupId, 2, null, null, $token);
     		$entry = $responseItem->getResponse();
     		$this->assertEquals(2, $entry['id']);
     		$this->assertEquals('John Doe wrote: asdasd', $entry['title']);
     		$this->assertEquals('write back!', $entry['body']);
     		$this->assertEquals('image', $activity['mediaItems'][0]['type']);
     		$this->assertEquals('image', $activity['mediaItems'][0]['mimeType']);
     		$this->assertEquals('http://cdn.davesdaily.com/pictures/784-awesome-hands.jpg', $activity['mediaItems'][0]['image']);
     		$this->assertEquals('app', $entry['appId']);
     */
 }
 /** 
  * Return iframe URL based on the given parameters
  * @param	int			owner id
  * @param	string		avaiable options are 'profile', 'canvas'
  *						http://code.google.com/apis/orkut/docs/orkutdevguide/orkutdevguide-0.8.html#ops_mode
  * @param	string		extra application parameters
  * @return	iframe url
  */
 function getIframeUrl($oid, $view = 'default', $appParams = '')
 {
     $app_settings = $this->getSettings();
     $user_settings = $this->getApplicationSettings($_SESSION['member_id']);
     //retrieve user preferences
     foreach ($app_settings as $key => $setting) {
         if (!empty($key)) {
             $value = isset($user_settings[$key]) ? $user_settings[$key] : (isset($setting->default) ? $setting->default : null);
             if (isset($user_settings[$key])) {
                 unset($user_settings[$key]);
             }
             //shindig doesn't like ';', it only takes '&' as of Apr 6th, 2009
             //$prefs .= SEP.'up_' . urlencode($key) . '=' . urlencode($value);
             $prefs .= '&up_' . urlencode($key) . '=' . urlencode($value);
         }
     }
     foreach ($user_settings as $name => $value) {
         // if some keys _are_ set in the db, but not in the gadget metadata, we still parse them on the url
         // (the above loop unsets the entries that matched
         if (!empty($value) && !isset($appParams[$name])) {
             //shindig doesn't like ';', it only takes '&' as of Apr 6th, 2009
             //$prefs .= SEP.'up_' . urlencode($name) . '=' . urlencode($value);
             $prefs .= '&up_' . urlencode($name) . '=' . urlencode($value);
         }
     }
     //generate security token
     $securityToken = BasicSecurityToken::createFromValues($oid > 0 ? $oid : $_SESSION['member_id'], $_SESSION['member_id'], $this->getId(), 'default', urlencode($this->getUrl()), $this->getModuleId());
     // mod id
     //TODO:
     //   all the & should be using the constant "SEP", however, shingdig isn't parsing ";",
     //   it only parses "&".  Once shindig fixed this, we gotta change it back to SEP
     //@harris July 23, 2009
     $url = AT_SHINDIG_URL . '/gadgets/ifr?' . "bpc=1&synd=ATutor" . "&container=default" . "&viewer=" . $_SESSION['member_id'] . "&owner=" . $oid . "&aid=" . $this->getId() . "&mid=" . $this->getModuleId() . "&country=US" . "&lang=en" . "&view=" . $view . "&parent=" . urlencode("http://" . $_SERVER['HTTP_HOST']) . $prefs . (isset($appParams) ? '&view-params=' . urlencode($appParams) : '') . "&st=" . urlencode(base64_encode($securityToken->toSerialForm())) . "&v=" . $this->getVersion() . "&url=" . urlencode($this->getUrl()) . "#rpctoken=" . rand(0, getrandmax());
     //random unique number
     return $url;
 }
 public function testInvalidateUserResourcesWithEmptyAppId()
 {
     $token = BasicSecurityToken::createFromValues('owner', 'viewer', null, 'domain', 'appUrl', '1', 'default');
     $token->setAuthenticationMode(AuthenticationMode::$OAUTH_CONSUMER_REQUEST);
     $request = new RemoteContentRequest('http://url');
     $request->setToken($token);
     $request->setAuthType(RemoteContentRequest::$AUTH_SIGNED);
     $this->service->markResponse($request);
     $opensocialIds = array('owner');
     $this->service->invalidateUserResources($opensocialIds, $token);
     $this->assertFalse($this->service->isValid($request));
     $this->service->markResponse($request);
     $this->assertTrue($this->service->isValid($request));
 }
Exemple #16
0
            if (isset($user_prefs[$key])) {
                unset($user_prefs[$key]);
            }
            $prefs .= '&up_' . urlencode($key) . '=' . urlencode($value);
        }
    }
    // Prepare the user preferences for inclusion in the iframe url
    foreach ($user_prefs as $name => $value) {
        // if some keys _are_ set in the db, but not in the gadget metadata, we still parse them on the url
        // (the above loop unsets the entries that matched
        if (!empty($value) && !isset($appParams[$name])) {
            $prefs .= '&up_' . urlencode($name) . '=' . urlencode($value);
        }
    }
    // Create an encrypted security token, this is used by shindig to get the various gadget instance info like the viewer and owner
    $securityToken = BasicSecurityToken::createFromValues(isset($vars['person']['id']) ? $vars['person']['id'] : SecurityToken::$ANONYMOUS, isset($_SESSION['id']) ? $_SESSION['id'] : SecurityToken::$ANONYMOUS, $gadget['id'], PartuzaConfig::get('container'), urlencode($gadget['url']), $gadget['mod_id']);
    $gadget_url_params = array();
    parse_str(parse_url($gadget['url'], PHP_URL_QUERY), $gadget_url_params);
    // Create the actual iframe URL, this containers a slew of query params that shindig requires to render the gadget, and for the gadget to be able to make social requests
    $rpctoken = rand(0, getrandmax());
    $iframe_url = PartuzaConfig::get('gadget_server') . '/gadgets/ifr?' . "synd=" . PartuzaConfig::get('container') . "&container=" . PartuzaConfig::get('container') . "&viewer=" . (isset($_SESSION['id']) ? $_SESSION['id'] : '0') . "&owner=" . (isset($vars['person']['id']) ? $vars['person']['id'] : '0') . "&aid=" . $gadget['id'] . "&mid=" . $gadget['mod_id'] . (isset($_GET['nocache']) && $_GET['nocache'] == '1' || isset($gadget_url_params['nocache']) && intval($gadget_url_params['nocache']) == 1 || isset($_GET['bpc']) && $_GET['bpc'] == '1' ? "&nocache=1" : '') . "&country=US" . "&lang=en" . "&view=" . $view . "&parent=" . urlencode("http://" . $_SERVER['HTTP_HOST']) . $prefs . (isset($_GET['appParams']) ? '&view-params=' . urlencode($_GET['appParams']) : '') . "&st=" . urlencode(base64_encode($securityToken->toSerialForm())) . "&v=" . $gadget['version'] . "&url=" . urlencode($gadget['url']) . "#rpctoken=" . $rpctoken;
    // Create some chrome, this includes a header with a title, various button for varios actions, and the actual iframe
    ?>
<div class="gadgets-gadget-chrome" style="width:<?php 
    echo $width;
    ?>
px">
<div id="gadgets-gadget-title-bar-<?php 
    echo $gadget['mod_id'];
    ?>
" class="gadgets-gadget-title-bar">
 public function load_get_application($app_url)
 {
     global $db;
     $error = false;
     $info = array();
     // see if we have up-to-date info in our db. Cut-off time is 1 day (aka refresh module info once a day)
     $time = $_SERVER['REQUEST_TIME'] - 24 * 60 * 60;
     $url = $db->addslashes($app_url);
     $res = $db->query("select * from applications where url = '{$url}' and modified > {$time}");
     if ($db->num_rows($res)) {
         // we have an entry with up-to-date info
         $info = $db->fetch_array($res, MYSQLI_ASSOC);
     } else {
         // Either we dont have a record of this module or its out of date, so we retrieve the app meta data.
         // Create a fake security token so that gadgets with signed preloading don't fail to load
         $securityToken = BasicSecurityToken::createFromValues(1, 1, 0, PartuzaConfig::get('container'), urlencode($app_url), 0, 1);
         $response = $this->fetch_gadget_metadata($app_url, $securityToken);
         if (!is_object($response) && !is_array($response)) {
             // invalid json object, something bad happened on the shindig metadata side.
             $error = 'An error occured while retrieving the gadget information';
         } else {
             // valid response, process it
             $gadget = $response->gadgets[0];
             if (isset($gadget->errors) && !empty($gadget->errors[0])) {
                 // failed to retrieve gadget, or failed parsing it
                 $error = $gadget->errors[0];
             } else {
                 // retrieved and parsed gadget ok, store it in db
                 $info['url'] = $db->addslashes($gadget->url);
                 $info['title'] = isset($gadget->title) ? $gadget->title : '';
                 $info['directory_title'] = isset($gadget->directoryTitle) ? $gadget->directoryTitle : '';
                 $info['height'] = isset($gadget->height) ? $gadget->height : '';
                 $info['screenshot'] = isset($gadget->screenshot) ? $gadget->screenshot : '';
                 $info['thumbnail'] = isset($gadget->thumbnail) ? $gadget->thumbnail : '';
                 $info['author'] = isset($gadget->author) ? $gadget->author : '';
                 $info['author_email'] = isset($gadget->authorEmail) ? $gadget->authorEmail : '';
                 $info['description'] = isset($gadget->description) ? $gadget->description : '';
                 $info['settings'] = isset($gadget->userPrefs) ? serialize($gadget->userPrefs) : '';
                 $info['views'] = isset($gadget->views) ? serialize($gadget->views) : '';
                 if ($gadget->scrolling == 'true') {
                     $gadget->scrolling = 1;
                 }
                 $info['scrolling'] = !empty($gadget->scrolling) ? $gadget->scrolling : '0';
                 $info['height'] = !empty($gadget->height) ? $gadget->height : '0';
                 // extract the version from the iframe url
                 $iframe_url = $gadget->iframeUrl;
                 $iframe_params = array();
                 parse_str($iframe_url, $iframe_params);
                 $info['version'] = isset($iframe_params['v']) ? $iframe_params['v'] : '';
                 $info['modified'] = $_SERVER['REQUEST_TIME'];
                 // Insert new application into our db, or if it exists (but had expired info) update the meta data
                 $db->query("insert into applications\n\t\t\t\t\t\t\t\t(id, url, title, directory_title, screenshot, thumbnail, author, author_email, description, settings, views, version, height, scrolling, modified)\n\t\t\t\t\t\t\t\tvalues\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['url']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['title']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['directory_title']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['screenshot']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['thumbnail']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['author']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['author_email']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['description']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['settings']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['views']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['version']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['height']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['scrolling']) . "',\n\t\t\t\t\t\t\t\t\t'" . $db->addslashes($info['modified']) . "'\n\t\t\t\t\t\t\t\t) on duplicate key update\n\t\t\t\t\t\t\t\t\turl = '" . $db->addslashes($info['url']) . "',\n\t\t\t\t\t\t\t\t\ttitle = '" . $db->addslashes($info['title']) . "',\n\t\t\t\t\t\t\t\t\tdirectory_title = '" . $db->addslashes($info['directory_title']) . "',\n\t\t\t\t\t\t\t\t\tscreenshot = '" . $db->addslashes($info['screenshot']) . "',\n\t\t\t\t\t\t\t\t\tthumbnail = '" . $db->addslashes($info['thumbnail']) . "',\n\t\t\t\t\t\t\t\t\tauthor = '" . $db->addslashes($info['author']) . "',\n\t\t\t\t\t\t\t\t\tauthor_email = '" . $db->addslashes($info['author_email']) . "',\n\t\t\t\t\t\t\t\t\tdescription = '" . $db->addslashes($info['description']) . "',\n\t\t\t\t\t\t\t\t\tsettings = '" . $db->addslashes($info['settings']) . "',\n\t\t\t\t\t\t\t\t\tviews = '" . $db->addslashes($info['views']) . "',\n\t\t\t\t\t\t\t\t\tversion = '" . $db->addslashes($info['version']) . "',\n\t\t\t\t\t\t\t\t\theight = '" . $db->addslashes($info['height']) . "',\n\t\t\t\t\t\t\t\t\tscrolling = '" . $db->addslashes($info['scrolling']) . "',\n\t\t\t\t\t\t\t\t\tmodified = '" . $db->addslashes($info['modified']) . "'\n\t\t\t\t\t\t\t\t");
                 $res = $db->query("select id from applications where url = '" . $db->addslashes($info['url']) . "'");
                 if (!$db->num_rows($res)) {
                     $error = "Could not store application in registry";
                 } else {
                     list($id) = $db->fetch_row($res);
                     $info['id'] = $id;
                     $this->invalidate_dependency('applications', $id);
                 }
             }
         }
     }
     if (!$error) {
         $this->add_dependency('applications', $info['id']);
     }
     $info['error'] = $error;
     return $info;
 }
 /**
  * Tests through SigningFetcher
  */
 public function testSigningFetch()
 {
     $request1 = new RemoteContentRequest('http://test.chabotc.com/signing.html');
     $token = BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default');
     $request1->setToken($token);
     $request1->setAuthType(RemoteContentRequest::$AUTH_SIGNED);
     $request2 = new RemoteContentRequest('http://test.chabotc.com/ok.html');
     $this->basicRemoteContent->invalidate($request1);
     $this->basicRemoteContent->invalidate($request2);
     $requests = array($request1, $request2);
     $this->basicRemoteContent->multiFetch($requests);
     $content = $request1->getResponseContent();
     $this->assertEquals("OK", trim($content));
     $content = $request2->getResponseContent();
     $this->assertEquals("OK", trim($content));
 }
 /**
  * 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(urldecode($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 ActivitiesHandler->handlePut()
  */
 public function testHandlePut()
 {
     return;
     $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1');
     //Create activity
     $request = array();
     $request['url'] = '/activities/@viewer/@self/@app?networkDistance=';
     $request['method'] = 'POST';
     $request['postData'] = array();
     $request['postData']['id'] = '3';
     $request['postData']['appId'] = '1';
     $request['postData']['userId'] = 'john.doe';
     $request['postData']['title'] = 'TestPost 3';
     $request['postData']['body'] = 'TestBody 3';
     $requestItem = new RestRequestItem();
     $requestItem->createRequestItemWithRequest($request, $token);
     $this->ActivitiesHandler->handlePut($requestItem);
     //Validate generated activity
     $request = array();
     $request['url'] = '/activities/@viewer/@self/@app';
     $request['method'] = 'GET';
     $requestItem = new RestRequestItem();
     $requestItem->createRequestItemWithRequest($request, $token);
     $response = $this->ActivitiesHandler->handleGet($requestItem);
     $response = $response->getResponse();
     $entry = $response->getEntry();
     $this->assertEquals('2', $response->getTotalResults());
     //First Entry
     $this->assertEquals('1', $entry[0]['id']);
     $this->assertEquals('john.doe', $entry[0]['userId']);
     $this->assertEquals('yellow', $entry[0]['title']);
     $this->assertEquals('what a color!', $entry[0]['body']);
     //Second Entry
     $this->assertEquals('3', $entry[1]['id']);
     $this->assertEquals('john.doe', $entry[1]['userId']);
     $this->assertEquals('TestPost 3', $entry[1]['title']);
     $this->assertEquals('TestBody 3', $entry[1]['body']);
 }
 /**
  * Tests SigningFetcher->fetchRequest
  */
 public function testFetchRequestWithEmptyPath()
 {
     $request = new RemoteContentRequest('http://example.org');
     $request->setAuthType(RemoteContentRequest::$AUTH_SIGNED);
     $request->setToken(BasicSecurityToken::createFromValues('owner', 'viewer', 'app', 'domain', 'appUrl', '1', 'default'));
     $request->setPostBody('key=value&anotherkey=value');
     $this->signingFetcher->fetchRequest($request);
     $this->verifySignedRequest($request);
 }
Exemple #22
0
                unset($user_prefs[$key]);
            }
            $prefs .= '&up_' . urlencode($key) . '=' . urlencode($value);
        }
    }
    // Prepare the user preferences for inclusion in the iframe url
    foreach ($user_prefs as $name => $value) {
        // if some keys _are_ set in the db, but not in the gadget metadata, we still parse them on the url
        // (the above loop unsets the entries that matched
        if (!empty($value) && !isset($appParams[$name])) {
            $prefs .= '&up_' . urlencode($name) . '=' . urlencode($value);
        }
    }
    $_iVisitorID = isMember() && $_COOKIE['memberID'] > 0 ? (int) $_COOKIE['memberID'] : 0;
    // Create an encrypted security token, this is used by shindig to get the various gadget instance info like the viewer and owner
    $securityToken = BasicSecurityToken::createFromValues($_iVisitorID, $_iVisitorID, $gadget['id'], PartuzaConfig::get('container'), urlencode($gadget['url']), $gadget['mod_id']);
    $gadget_url_params = array();
    parse_str(parse_url($gadget['url'], PHP_URL_QUERY), $gadget_url_params);
    // Create the actual iframe URL, this containers a slew of query params that shindig requires to render the gadget, and for the gadget to be able to make social requests
    $iframe_url = PartuzaConfig::get('gadget_server') . '/gadgets/ifr?' . "synd=" . PartuzaConfig::get('container') . "&container=" . PartuzaConfig::get('container') . "&viewer=" . $_iVisitorID . "&owner=" . $_iVisitorID . "&aid=" . $gadget['id'] . "&mid=" . $gadget['mod_id'] . (isset($_GET['nocache']) && $_GET['nocache'] == '1' || isset($gadget_url_params['nocache']) && intval($gadget_url_params['nocache']) == 1 || isset($_GET['bpc']) && $_GET['bpc'] == '1' ? "&nocache=1" : '') . "&country=US" . "&lang=en" . "&view=" . $view . "&parent=" . urlencode("http://" . $_SERVER['HTTP_HOST']) . $prefs . (isset($_GET['appParams']) ? '&view-params=' . urlencode($_GET['appParams']) : '') . "&st=" . urlencode(base64_encode($securityToken->toSerialForm())) . "&v=" . $gadget['version'] . "&url=" . urlencode($gadget['url']) . "#rpctoken=" . rand(0, getrandmax());
    // Create some chrome, this includes a header with a title, various button for varios actions, and the actual iframe
    ?>
	<div class="gadgets-gadget-content">
		<iframe
			width="100%"
        	scrolling="<?php 
    echo $gadget['scrolling'] || $gadget['scrolling'] == 'true' ? 'yes' : 'auto';
    ?>
"
        	height="<?php 
    echo !empty($gadget['height']) ? $gadget['height'] : 'auto';
 public function testGetMessageCollections()
 {
     $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 1, 1, 1, 1, 'default');
     $userId = new UserId('owner', null);
     $ret = $this->service->getMessageCollections($userId, MessageCollection::$DEFAULT_FIELDS, null, $token);
     $this->assertEquals('Notifications', $ret->entry[0]['title']);
     $this->assertEquals('notification', $ret->entry[0]['id']);
     $this->assertEquals(2, $ret->entry[0]['total']);
     $this->assertEquals('Inbox', $ret->entry[1]['title']);
     $this->assertEquals('privateMessage', $ret->entry[1]['id']);
     $this->assertEquals(0, $ret->entry[1]['total']);
     $this->assertEquals('Inbox', $ret->entry[2]['title']);
     $this->assertEquals('publicMessage', $ret->entry[2]['id']);
     $this->assertEquals(0, $ret->entry[2]['total']);
 }
 /**
  * Tests ActivitiesHandler->handlePut()
  */
 public function testHandlePut()
 {
     $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1');
     //Create data
     $request = array();
     $request['url'] = '/appdata/@viewer/@self/@app?fields=count';
     $request['method'] = 'POST';
     $request['postData'] = array();
     $request['postData']['count'] = 'TestHandlePut';
     $requestItem = new RestRequestItem();
     $requestItem->createRequestItemWithRequest($request, $token);
     $this->AppDataHandler->handlePut($requestItem);
     //Validate generated data
     $request = array();
     $request['url'] = '/appdata/@viewer/@self/@app?networkDistance=&fields=count';
     $request['method'] = 'GET';
     $requestItem = new RestRequestItem();
     $requestItem->createRequestItemWithRequest($request, $token);
     $response = $this->AppDataHandler->handleGet($requestItem);
     $response = $response->getResponse();
     $entry = $response->getEntry();
     $this->assertEquals('TestHandlePut', $entry['john.doe']['count']);
 }
Exemple #25
0
<link rel='stylesheet' type='text/css' href='../html/css/general.css'>
<script type="text/javascript" src="../html/js/validations.js"></script>
<?php 
require_once 'Config/config.php';
$ret = array();
$res = "select * from applications where id = {$app_id}";
$rs_Apps = mysql_query($res);
$row_rs_Apps = mysql_fetch_assoc($rs_Apps);
$gadget = $row_rs_Apps;
$container = 'default';
$prefs = '';
if ($gadget['user_prefs']) {
    foreach ($gadget['user_prefs'] as $name => $value) {
        if (!empty($value) && !isset($appParams[$name])) {
            $prefs .= '&up_' . urlencode($name) . '=' . urlencode($value);
        }
    }
}
$securityToken = BasicSecurityToken::createFromValues(isset($person_id) ? $person_id : '0', isset($viewer_id) ? $viewer_id : '0', $gadget['id'], $_SERVER['HTTP_HOST'], urlencode($gadget['url']), $gadget['mod_id']);
$gadget_url_params = array();
parse_str(parse_url($gadget['url'], PHP_URL_QUERY), $gadget_url_params);
$iframe_url = $gadget_server . '/gadgets/ifr?' . "synd=" . $container . "&container=" . $container . "&viewer=" . (isset($viewer_id) ? $viewer_id : '0') . "&owner=" . (isset($person_id) ? $person_id : $viewer_id) . "&aid=" . $gadget['id'] . "&mid=" . $gadget['mod_id'] . "&nocache=1" . "&country=US" . "&lang=EN" . "&view=" . $view . "&parent=" . urlencode("http://" . $_SERVER['HTTP_HOST']) . $prefs . (isset($_REQUEST['appParams']) ? '&view-params=' . urlencode($_REQUEST['appParams']) : '') . "&st=" . base64_encode($securityToken->toSerialForm()) . "&v=" . $gadget['version'] . "&url=" . urlencode($gadget['url']) . "#rpctoken=" . rand(0, getrandmax());
$height = !empty($gadget['height']) ? $gadget['height'] : '200';
$iframe_name = "remote_iframe_" . $mod_id;
$iframe_id = "remote_iframe_" . $mod_id;
$scrolling = $gadget['scrolling'] ? 'yes' : 'no';
$iframe_str = "<iframe width=" . $width . " height=" . $height . " name=" . $iframe_name . " id=" . $iframe_id . " scrolling =" . $scrolling . " frameborder='no' src= '" . $iframe_url . "' class='gadgets-gadget' style=\"display:none;\" onLoad=\"showIframe('" . $iframe_id . "','" . $mod_id . "');\"></iframe>";
echo "<div class='iframe_div'>" . $iframe_str . "</div>";
?>