Author: chabotc
Date: Thu Jun 25 09:53:00 2009
New Revision: 788307
URL: http://svn.apache.org/viewvc?rev=788307&view=rev
Log:
Tests for album and media items
Added:
incubator/shindig/trunk/php/test/social/AlbumRestTest.php
incubator/shindig/trunk/php/test/social/MediaItemRestTest.php
Added: incubator/shindig/trunk/php/test/social/AlbumRestTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social/AlbumRestTest.php?rev=788307&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social/AlbumRestTest.php (added)
+++ incubator/shindig/trunk/php/test/social/AlbumRestTest.php Thu Jun 25
09:53:00 2009
@@ -0,0 +1,111 @@
+<?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.
+ */
+
+require_once 'RestBase.php';
+
+class AlbumRestTest extends RestBase {
+
+ private function verifyLifeCycle($postData, $postDataFormat) {
+ $url = '/albums/1/@self';
+ $ret = $this->curlRest($url, $postData, $postDataFormat);
+ $album = json_decode($ret, true);
+ $album = $album['entry'];
+
+ $ret = $this->curlRest($url . '/' . urlencode($album['id']), '',
'application/json', 'GET');
+ $this->assertFalse(empty($ret));
+ $fetched = json_decode($ret, true);
+ $fetched = $fetched['entry'][0];
+ $this->assertEquals('Example Album', $fetched['title'], "Title should be
same.");
+ $this->assertEquals('This is an example album, and this text is an example
description', $fetched['description'], "Description should be same.");
+ $this->assertEquals('VIDEO', $fetched['mediaType'], "mediaType should be
same.");
+
+ $fetched['thumbnailUrl'] = 'http://changed.com/tn.png';
+ $ret = $this->curlRest($url . '/' . urlencode($album['id']),
json_encode($fetched), 'application/json', 'PUT');
+ $ret = $this->curlRest($url . '/' . urlencode($album['id']), '',
'application/json', 'GET');
+ $this->assertFalse(empty($ret));
+ $fetched = json_decode($ret, true);
+ $fetched = $fetched['entry'][0];
+ $this->assertEquals('http://changed.com/tn.png', $fetched['thumbnailUrl'],
"thumbnailUrl should be same.");
+ $this->assertEquals('Example Album', $fetched['title'], "Title should be
same.");
+ $this->assertEquals('This is an example album, and this text is an example
description', $fetched['description'], "Description should be same.");
+ $this->assertEquals('VIDEO', $fetched['mediaType'], "mediaType should be
same.");
+
+ $ret = $this->curlRest($url . '/' . urlencode($album['id']), '',
'application/json', 'DELETE');
+ $this->assertTrue(empty($ret), "Delete the created album failed. Response:
$ret");
+
+ $ret = $this->curlRest($url . '/' . urlencode($album['id']), '',
'application/json', 'GET');
+ $fetched = json_decode($ret, true);
+ $fetched = $fetched['entry'];
+ $this->assertTrue(empty($fetched));
+ }
+
+ public function testLifeCycleInJson() {
+ $postData = '{ "id" : "44332211",
+ "thumbnailUrl" : "http://pages.example.org/albums/4433221-tn.png",
+ "title" : "Example Album",
+ "description" : "This is an example album, and this text is an example
description",
+ "location" : { "latitude": 0, "longitude": 0 },
+ "ownerId" : "example.org:55443322",
+ "mediaType" : "VIDEO"
+ }';
+
+ $this->verifyLifeCycle($postData, 'application/json');
+ }
+
+ public function testLifeCycleInXml() {
+ $postData = '<album xmlns="http://ns.opensocial.org/2008/opensocial">
+ <id>44332211</id>
+
<thumbnailUrl>http://pages.example.org/albums/4433221-tn.png</thumbnailUrl>
+ <caption>Example Album</caption>
+ <description>This is an example album, and this text is an
example description</description>
+ <location>
+ <latitude>0</latitude>
+ <longitude>0</longitude>
+ </location>
+ <ownerId>example.org:55443322</ownerId>
+ <mediaType>VIDEO</mediaType>
+ </album>';
+ $this->verifyLifeCycle($postData, 'application/xml');
+ }
+
+ public function testLifeCycleInAtom() {
+ $postData = '<entry xmlns="http://www.w3.org/2005/Atom">
+ <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>
+ <caption>Example Album</caption>
+ <description>This is an example album, and this text is
an example description</description>
+ <location>
+ <latitude>0</latitude>
+ <longitude>0</longitude>
+ </location>
+ <ownerId>example.org:55443322</ownerId>
+ <mediaType>VIDEO</mediaType>
+ </album>
+ </content>
+ <title/>
+ <updated>2003-12-13T18:30:02Z</updated>
+ <author><url>example.org:55443322</url></author>
+ <id>urn:guid:example.org:44332211</id>
+ </entry>';
+ $this->verifyLifeCycle($postData, 'application/atom+xml');
+ }
+}
Added: incubator/shindig/trunk/php/test/social/MediaItemRestTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social/MediaItemRestTest.php?rev=788307&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social/MediaItemRestTest.php (added)
+++ incubator/shindig/trunk/php/test/social/MediaItemRestTest.php Thu Jun 25
09:53:00 2009
@@ -0,0 +1,103 @@
+<?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.
+ */
+
+require_once 'RestBase.php';
+
+class MediaItemRestTest extends RestBase {
+
+ private function verifyLifeCycle($postData, $postDataFormat) {
+ $url = '/mediaitems/1/@self/44332211';
+ $ret = $this->curlRest($url, $postData, $postDataFormat);
+ $mediaItem = json_decode($ret, true);
+ $mediaItem = $mediaItem['entry'];
+
+ $ret = $this->curlRest($url . '/' . urlencode($mediaItem['id']), '',
'application/json', 'GET');
+ $this->assertFalse(empty($ret));
+ $fetched = json_decode($ret, true);
+ $fetched = $fetched['entry'][0];
+ $this->assertEquals('http://pages.example.org/images/11223344.png',
$fetched['url'], "url should be same.");
+ $this->assertEquals('http://pages.example.org/images/11223344-tn.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');
+ $ret = $this->curlRest($url . '/' . urlencode($mediaItem['id']), '',
'application/json', 'GET');
+ $this->assertFalse(empty($ret));
+ $fetched = json_decode($ret, true);
+ $fetched = $fetched['entry'][0];
+ $this->assertEquals('http://pages.example.org/images/11223344.png',
$fetched['url'], "url should be same.");
+ $this->assertEquals('http://changed.com/tn.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.");
+
+ $ret = $this->curlRest($url . '/' . urlencode($mediaItem['id']), '',
'application/json', 'DELETE');
+ $this->assertTrue(empty($ret), "Delete the created mediaItem failed.
Response: $ret");
+
+ $ret = $this->curlRest($url . '/' . urlencode($mediaItem['id']), '',
'application/json', 'GET');
+ $fetched = json_decode($ret, true);
+ $fetched = $fetched['entry'];
+ $this->assertTrue(empty($fetched));
+ }
+
+ public function testLifeCycleInJson() {
+ $postData = '{ "id" : "11223344",
+ "thumbnailUrl" :
"http://pages.example.org/images/11223344-tn.png",
+ "mimeType" : "image/png",
+ "type" : "image",
+ "url" : "http://pages.example.org/images/11223344.png",
+ "albumId" : "44332211"
+ }';
+ $this->verifyLifeCycle($postData, 'application/json');
+ }
+
+ public function testLifeCycleInXml() {
+ $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>
+ <mimeType>image/png</mimeType>
+ <type>image</type>
+ <url>http://pages.example.org/images/11223344.png</url>
+ <albumId>44332211</albumId>
+ </mediaItem>';
+ $this->verifyLifeCycle($postData, 'application/xml');
+ }
+
+ public function testLifeCycleInAtom() {
+ $postData = '<entry xmlns="http://www.w3.org/2005/Atom">
+ <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>
+ <mimeType>image/png</mimeType>
+ <type>image</type>
+ <url>http://pages.example.org/images/11223344.png</url>
+ <albumId>44332211</albumId>
+ </mediaItem>
+ </content>
+ <title/>
+ <updated>2003-12-13T18:30:02Z</updated>
+ <author><url>example.org:55443322</url></author>
+ <id>urn:guid:example.org:11223344</id>
+ </entry>';
+ $this->verifyLifeCycle($postData, 'application/atom+xml');
+ }
+}
\ No newline at end of file