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 {