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;
+}