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/07/08 12:26:34 UTC

svn commit: r792090 - in /incubator/shindig/trunk/php/test/misc: activity/ activity/activity.xml invalidation/invalidation.xml invalidation/sign.php sign.php

Author: chabotc
Date: Wed Jul  8 10:26:33 2009
New Revision: 792090

URL: http://svn.apache.org/viewvc?rev=792090&view=rev
Log:
Adds a end-to-end test for activities

Added:
    incubator/shindig/trunk/php/test/misc/activity/
    incubator/shindig/trunk/php/test/misc/activity/activity.xml
    incubator/shindig/trunk/php/test/misc/sign.php
Modified:
    incubator/shindig/trunk/php/test/misc/invalidation/invalidation.xml
    incubator/shindig/trunk/php/test/misc/invalidation/sign.php

Added: incubator/shindig/trunk/php/test/misc/activity/activity.xml
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/misc/activity/activity.xml?rev=792090&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/misc/activity/activity.xml (added)
+++ incubator/shindig/trunk/php/test/misc/activity/activity.xml Wed Jul  8 10:26:33 2009
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Module>
+  <ModulePrefs title="ACTIVITY" author_email="lipengage@gmail.com">
+    <Require feature="opensocial-0.8"></Require>
+    <Require feature="dynamic-height"></Require>
+  </ModulePrefs>
+  <Content type="html">
+    <![CDATA[
+    <style>
+      div {border: solid 1px green; margin:2px;}
+    </style>
+    <script type="text/javascript">
+var viewer;
+var owner;
+
+function addFinished(activity) {
+  var div = document.getElementById("add_activities");
+  var html = ['title:', activity.title, '<br/>', 'body:', activity.body, '<br/>', div.innerHTML].join('');
+  div.innerHTML = html;
+  gadgets.window.adjustHeight();
+}
+
+function addMoreActivity() {
+  var today = new Date();
+  var activityStamp = today.getTime();
+  var title = Math.floor(Math.random()*100);
+  var body = 'body_' + activityStamp;
+  var templateParams = {};
+  templateParams['Song'] = 'With or without you';
+  templateParams['Artist'] = 'U2';
+  templateParams['Viewer'] = viewer;
+  templateParams['Owner'] = owner;
+  var params = {
+    'titleId': 'allFields titleId: ' + today + ' ' + activityStamp,
+    'title': title,
+    'templateParams': templateParams,
+    'url': 'url_' + activityStamp,
+    'bodyId': 'bodyId_' + activityStamp,
+    'body': body,
+    'externalId': 'externalId_' + activityStamp,
+    'streamTitle': 'streamTitle_' + activityStamp,
+    'streamUrl': 'streamUrl_' + activityStamp,
+    'streamSourceUrl': 'streamSourceUrl_' + activityStamp,
+    'streamFaviconUrl': 'streamFaviconUrl_' + activityStamp,
+    'priority': '1',
+    'id': 'id_' + activityStamp,
+    'userId': 'userId_' + activityStamp,
+    'appId': 'appId_' + activityStamp,
+    'postedTime': activityStamp
+  };
+  var activity = opensocial.newActivity(params);
+  opensocial.requestCreateActivity(
+    activity,
+    opensocial.CreateActivityPriority.HIGH,
+    function() {addFinished({'title':title,'body':body})}
+  );
+}
+function displayGetActivities(activities, div_id) {
+  var div = document.getElementById(div_id);
+  var harr = ['size:'];
+  harr.push(activities.size());
+  harr.push(' total:');
+  harr.push(activities.getTotalSize());
+  harr.push('<br/>');
+  activities.each(
+    function(activity) {
+      harr.push('title:');
+      harr.push(activity.getField('title'));
+      harr.push('<br/>');
+      harr.push('body:');
+      harr.push(activity.getField('body'));
+      harr.push('<br/>');
+    }
+  );
+  div.innerHTML = harr.join('');
+  gadgets.window.adjustHeight();
+}
+
+function getMoreActivities(params, div_id) {
+  var req = opensocial.newDataRequest();
+  var opt_params = params;
+  var idSpec = opensocial.newIdSpec({"userId" : 'OWNER', "groupId" : '@self'});
+  req.add(req.newFetchActivitiesRequest(idSpec, opt_params), 'activities');
+  req.send(function(data) {
+    var activities = data.get('activities').getData();
+    displayGetActivities(activities, div_id);
+  });
+}
+
+function default_activities(div_id) {
+  var params = {}
+  getMoreActivities(params, div_id);
+}
+
+function first_max_activities(div_id) {
+  var params = {};
+  params[opensocial.DataRequest.ActivityRequestFields.FIRST] = document.getElementById('first').value;
+  params[opensocial.DataRequest.ActivityRequestFields.MAX] = document.getElementById('max').value;
+  getMoreActivities(params, div_id);
+}
+
+function _rest(url, div_id) {
+  gadgets.io.makeRequest(
+    url, 
+    function(data) {
+      var tmp = gadgets.json.parse(data.text);
+      var jsonActivities = [];
+      for(var i = 0; i < tmp.entry.length; i++) {
+        jsonActivities.push(new JsonActivity(tmp.entry[i]));
+      }
+      var activities = new opensocial.Collection(jsonActivities, tmp.startIndex, tmp.itemsPerPage);
+      displayGetActivities(activities, div_id);
+    }, 
+    null
+  );
+}
+
+function rest(div_id) {
+  //url format /activities/{userId}/{groupId}/appId/{activityId};
+
+  var content = {};
+  content.type = 'activity';
+  content.first = document.getElementById("_first").value;
+  content.max = document.getElementById("_max").value;
+  content.url = document.getElementById("restUrl").value+'/activities/'+owner.getId()+'/@self';
+  content.key = document.getElementById("consumerKey").value;
+  content.secret = document.getElementById("consumerSecret").value;
+  var params = {};
+  params[gadgets.io.RequestParameters.POST_DATA] = "data=" + gadgets.json.stringify(content);
+  params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
+  signUrl = document.getElementById("signUrl").value;
+  gadgets.io.makeRequest(
+    signUrl, 
+    function(data){
+      var tmp = gadgets.json.parse(data.text);
+      _rest(tmp.url, div_id);
+    }, 
+    params
+  );
+}
+
+function initData() {
+  var req = opensocial.newDataRequest();
+  req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.OWNER), 'o');
+  req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER), 'v');
+  req.send(function(data) {
+    viewer = data.get('v').getData();
+    owner = data.get('o').getData();
+  });
+  gadgets.window.adjustHeight();
+}
+gadgets.util.registerOnLoadHandler(initData);
+    </script>
+    <div>
+      <input type="button" value="add one activity" onclick="addMoreActivity();"/><br/>
+      <div id="add_activities">
+      </div>
+    </div>
+    <div>
+      <input type="button" value="default activities" onclick="default_activities('default_activities')" /><br/>
+      <div id="default_activities">
+      </div>
+    </div>
+    <div>
+      <input type="button" value="first max activities" onclick="first_max_activities('first_max_activities')" /><br/>
+      first: <input type="text" id="first" style="width:40px;" />
+      max: <input type="text" id="max" style="width:40px;" /><br/>
+      <div id="first_max_activities">
+      </div>
+    </div>
+    <div>
+      <input type="button" value="rest" onclick="rest('rest_first_max_activities')"/><br/>
+      first: <input type="text" id="_first" style="width:50px;" />
+      max: <input type="text" id="_max" style="width:50px;" /><br/>
+      rest url: <br/>
+      <input style="width:400px;" id="restUrl" type="text" value="http://shindig/social/rest"/><br/>
+      sign url: <br/>
+      <input style="width:400px;" id="signUrl" type="text" value="http://shindig/test/misc/sign.php"/><br/>
+      oauth consumer key: <br/>
+      <input style="width:400px;" id="consumerKey" type="text" value=""/><br/>
+      oauth consumer secret: <br/>
+      <input style="width:400px;" id="consumerSecret" type="text" value=""/><br/>
+      <div id="rest_first_max_activities">
+      </div>
+    </div>
+    ]]>
+  </Content>
+</Module>
\ No newline at end of file

Modified: incubator/shindig/trunk/php/test/misc/invalidation/invalidation.xml
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/misc/invalidation/invalidation.xml?rev=792090&r1=792089&r2=792090&view=diff
==============================================================================
--- incubator/shindig/trunk/php/test/misc/invalidation/invalidation.xml (original)
+++ incubator/shindig/trunk/php/test/misc/invalidation/invalidation.xml Wed Jul  8 10:26:33 2009
@@ -7,9 +7,9 @@
     <![CDATA[
       <script type="text/javascript">
 
-
 function pre_rest() {
   var content = {}
+  content.type = 'invalidation';
   content.url = document.getElementById("restUrl").value;
   content.postdata = stringify();
   content.key = document.getElementById("consumerKey").value;
@@ -19,7 +19,7 @@
   params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
   signUrl = document.getElementById("signUrl").value;
   gadgets.io.makeRequest(signUrl, rest, params);
-}  
+}
 
 function rest(obj) {
   var postdata = stringify();
@@ -87,7 +87,7 @@
     invalidationKeys: <br>
     <textarea style="width:600px;" id="invalidationKeys"></textarea><br>
     sign url: <br>
-    <textarea style="width:600px;" id="signUrl">http://shindig/test/misc/invalidation/sign.php</textarea><br>
+    <textarea style="width:600px;" id="signUrl">http://shindig/test/misc/sign.php</textarea><br>
     oauth consumer key: <br>
     <textarea style="width:600px;" id="consumerKey"></textarea><br>
     oauth consumer secret: <br>

Modified: incubator/shindig/trunk/php/test/misc/invalidation/sign.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/misc/invalidation/sign.php?rev=792090&r1=792089&r2=792090&view=diff
==============================================================================
--- incubator/shindig/trunk/php/test/misc/invalidation/sign.php (original)
+++ incubator/shindig/trunk/php/test/misc/invalidation/sign.php Wed Jul  8 10:26:33 2009
@@ -1,18 +0,0 @@
-<?php
-
-require_once '../../../src/gadgets/oauth/OAuth.php';
-
-$data = json_decode($_POST['data']);
-
-$consumer = new OAuthConsumer($data->key, $data->secret);
-$signature_method = new OAuthSignatureMethod_HMAC_SHA1();
-$params = array();
-$params['oauth_body_hash'] = base64_encode(sha1(stripslashes($data->postdata), true));
-$params['oauth_consumer_key'] = $data->key;
-$oauth_request = OAuthRequest::from_consumer_and_token($consumer, null, 'POST', $data->url, $params);
-$oauth_request->sign_request($signature_method, $consumer, null);
-
-$result = $oauth_request->to_url();
-header('ContentType: application/json');
-echo '{"url" : "' . $result . '"}';
-

Added: incubator/shindig/trunk/php/test/misc/sign.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/misc/sign.php?rev=792090&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/misc/sign.php (added)
+++ incubator/shindig/trunk/php/test/misc/sign.php Wed Jul  8 10:26:33 2009
@@ -0,0 +1,35 @@
+<?php
+require_once '../../src/gadgets/oauth/OAuth.php';
+
+$data = json_decode(stripslashes(stripslashes($_POST['data'])));
+
+switch ($data->type) {
+  case 'activity':
+    $consumer = new OAuthConsumer($data->key, $data->secret);
+    $signature_method = new OAuthSignatureMethod_HMAC_SHA1();
+    $params = array();
+    $params['oauth_consumer_key'] = $data->key;
+    $params['startIndex'] = $data->first;
+    $params['count'] = $data->max;
+    $http_query = http_build_query($params);
+    $oauth_request = OAuthRequest::from_consumer_and_token($consumer, null, 'GET', $data->url, $params);
+    $oauth_request->sign_request($signature_method, $consumer, null);
+
+    $result = $oauth_request->to_url();
+    header('ContentType: application/json');
+    echo '{"url" : "' . $result . '"}';
+  break;
+  case 'invalidation':
+    $consumer = new OAuthConsumer($data->key, $data->secret);
+    $signature_method = new OAuthSignatureMethod_HMAC_SHA1();
+    $params = array();
+    $params['oauth_body_hash'] = base64_encode(sha1(stripslashes($data->postdata), true));
+    $params['oauth_consumer_key'] = $data->key;
+    $oauth_request = OAuthRequest::from_consumer_and_token($consumer, null, 'POST', $data->url, $params);
+    $oauth_request->sign_request($signature_method, $consumer, null);
+
+    $result = $oauth_request->to_url();
+    header('ContentType: application/json');
+    echo '{"url" : "' . $result . '"}';
+  break;
+}