Author: johnh
Date: Wed Jan 12 01:13:49 2011
New Revision: 1057968

URL: http://svn.apache.org/viewvc?rev=1057968&view=rev
Log:
Given that multiple <link> tags may exist, it's not 100% clear this is the
optimal choice; however it's arguably better than not passing anything at all.


Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FeedProcessorImpl.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FeedProcessorImpl.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FeedProcessorImpl.java?rev=1057968&r1=1057967&r2=1057968&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FeedProcessorImpl.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FeedProcessorImpl.java
 Wed Jan 12 01:13:49 2011
@@ -30,6 +30,7 @@ import com.sun.syndication.feed.module.m
 import com.sun.syndication.feed.synd.SyndContent;
 import com.sun.syndication.feed.synd.SyndEntry;
 import com.sun.syndication.feed.synd.SyndFeed;
+import com.sun.syndication.feed.synd.SyndLink;
 import com.sun.syndication.feed.synd.SyndPerson;
 import com.sun.syndication.io.FeedException;
 import com.sun.syndication.io.SyndFeedInput;
@@ -90,7 +91,14 @@ public class FeedProcessorImpl implement
 
         JSONObject entry = new JSONObject();
         entry.put("Title", e.getTitle());
-        entry.put("Link", e.getLink());
+        String link = e.getLink();
+        if (link == null) {
+          List<SyndLink> links = e.getLinks();
+          if (links != null && links.size() > 0) {
+            link = links.get(0).getHref();
+          }
+        }
+        entry.put("Link", link);
         if (getSummaries) {
           if (e.getContents() != null && !e.getContents().isEmpty()) {
             entry.put("Summary", ((SyndContent) 
e.getContents().get(0)).getValue());

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java?rev=1057968&r1=1057967&r2=1057968&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
 Wed Jan 12 01:13:49 2011
@@ -205,6 +205,45 @@ public class MakeRequestHandlerTest exte
     assertEquals(RESPONSE_BODY, results.get("body"));
     assertTrue(rewriter.responseWasRewritten());
   }
+  
+  @Test
+  public void testFetchAtom1Feed() throws Exception {
+    String txt = "<?xml version='1.0' encoding='utf-8'?>" +
+      "<feed xmlns=\"http://www.w3.org/2005/Atom\";>" +
+        "<id>fooId</id>" +
+        "<title type=\"text\">feed</title>" +
+        "<updated>2011-01-07T14:26:19.879Z</updated>" +
+        "<author>" +
+          "<name>[email protected]</name>" +
+        "</author>" +
+        "<entry>" +
+          "<updated>2011-01-07T14:26:19.879Z</updated>" +
+          "<author />" +
+          "<title type=\"text\">howdy</title>" +
+          "<content type=\"application/xml\">" +
+            "<entity xmlns=\"\"><Data>hello world</Data></entity>" +
+            "</content>" +
+          "<id>entity1ID</id>" +
+          "<link href=\"http://example.org/edit/entity1ID\"/>" +
+        "</entry>" +
+      "</feed>";
+    expectGetAndReturnBody(txt);
+    
expect(request.getParameter(MakeRequestHandler.CONTENT_TYPE_PARAM)).andReturn("FEED");
+    
expect(request.getParameter(MakeRequestHandler.GET_SUMMARIES_PARAM)).andReturn("true");
+    replay();
+    handler.fetch(request, recorder);
+    JSONObject results = extractJsonFromResponse();
+    JSONObject feed = new JSONObject(results.getString("body"));
+    assertEquals("feed", feed.getString("Title"));
+    assertEquals("[email protected]", feed.getString("Author"));
+    assertEquals("http://example.org/file";, feed.getString("URL"));
+    
+    JSONObject entry = feed.getJSONArray("Entry").getJSONObject(0);
+    assertEquals("howdy", entry.getString("Title"));
+    assertEquals("http://example.org/edit/entity1ID";, entry.getString("Link"));
+    assertEquals("<entity><Data>hello world</Data></entity>",
+        entry.getString("Summary"));
+  }
 
   @Test
   public void testFetchContentTypeFeed() throws Exception {


Reply via email to