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


Reply via email to