1   /*
2    * Created on Jun 24, 2004
3    *
4    */
5   package com.sun.syndication.unittest;
6   
7   import com.sun.syndication.feed.synd.SyndEntry;
8   import com.sun.syndication.feed.synd.SyndContent;
9   import com.sun.syndication.feed.synd.SyndEnclosure;
10  import com.sun.syndication.feed.synd.SyndLink;
11  import com.sun.syndication.io.impl.DateParser;
12  
13  import java.util.List;
14  import java.util.Date;
15  
16  /***
17   * @author pat
18   * @author Dave Johnson (modified for Atom 1.0)
19   *
20   */
21  public class TestSyndFeedAtom10 extends SyndFeedTest {
22  
23  	public TestSyndFeedAtom10() {
24  		super("atom_1.0");
25  	}
26  
27      protected TestSyndFeedAtom10(String type) {
28          super(type);
29      }
30  
31      protected TestSyndFeedAtom10(String feedType,String feedFileName) {
32          super(feedType,feedFileName);
33      }
34  
35      public void testTitle() throws Exception {
36          assertProperty(getCachedSyndFeed().getTitle(),"feed.title");
37          assertProperty(getCachedSyndFeed().getTitleEx().getValue(),"feed.title");
38          assertEquals("html", getCachedSyndFeed().getTitleEx().getType());
39          
40          List altLinks = getCachedSyndFeed().getLinks();
41          assertEquals(3, altLinks.size());
42          
43          assertEquals("http://example.com/blog", ((SyndLink)altLinks.get(0)).getHref());
44          assertEquals("text/html", ((SyndLink)altLinks.get(0)).getType());
45          
46          assertEquals("http://example.com/blog_plain", ((SyndLink)altLinks.get(1)).getHref());
47          assertEquals("text/plain", ((SyndLink)altLinks.get(1)).getType());
48      }
49  
50      public void testLink() throws Exception {
51          assertEquals( getCachedSyndFeed().getLink(),"http://example.com/blog");
52      }
53  
54      public void getAuthor() throws Exception {
55          assertProperty(getCachedSyndFeed().getAuthor(),"feed.author.name");
56      }
57  
58      public void testCopyright() throws Exception {
59          assertProperty(getCachedSyndFeed().getCopyright(),"feed.copyright");
60      }
61  
62      public void testForeignMarkup() throws Exception {
63          assertEquals(1, ((List)getCachedSyndFeed().getForeignMarkup()).size());
64      }
65  
66      public void testPublishedDate() throws Exception {
67          Date d = DateParser.parseW3CDateTime("2000-01-01T00:00:00Z");
68          assertEquals(getCachedSyndFeed().getPublishedDate(),d);
69      }
70  
71  
72      protected void _testEntry(int i) throws Exception {
73          List items = getCachedSyndFeed().getEntries();
74          SyndEntry entry = (SyndEntry) items.get(i);
75  
76          assertProperty(entry.getTitle(),"feed.entry["+i+"].title");
77          assertProperty(entry.getTitleEx().getValue(),"feed.entry["+i+"].title");
78          assertEquals("text",entry.getTitleEx().getType());
79          
80          assertEquals("http://example.com/blog/entry" + (i + 1), entry.getLink());
81          assertEquals(((SyndEnclosure)entry.getEnclosures().get(0)).getUrl(),"http://example.com/blog/enclosure"+(i+1)+".gif");
82          assertProperty(entry.getAuthor(),"feed.entry["+i+"].author.name");
83          Date d = DateParser.parseW3CDateTime("2000-0"+(i+1)+"-01T01:00:00Z");
84          assertEquals(entry.getPublishedDate(),d);
85          assertProperty(entry.getDescription().getValue(),"feed.entry["+i+"].summary");
86          assertProperty(((SyndContent)entry.getContents().get(0)).getValue(),"feed.entry["+i+"].content[0]");
87          assertEquals(1, ((List)entry.getForeignMarkup()).size());
88    
89          if (i == 0) {
90              List links = entry.getLinks();
91              assertEquals(4, links.size());
92  
93              assertEquals("http://example.com/blog/entry1", ((SyndLink)links.get(0)).getHref());
94              assertEquals("text/html", ((SyndLink)links.get(0)).getType());
95  
96              assertEquals("http://example.com/blog/entry1_plain", ((SyndLink)links.get(1)).getHref());
97              assertEquals("text/plain", ((SyndLink)links.get(1)).getType());
98              
99              SyndLink slink = (SyndLink)entry.getLinks().get(3);
100             assertTrue(slink.getHref().startsWith("tag:"));        
101         } else {
102             SyndLink slink = (SyndLink)entry.getLinks().get(2);
103             assertTrue(slink.getHref().startsWith("tag:"));        
104             
105         }
106     }
107 
108     public void testEntry0() throws Exception {
109         _testEntry(0);
110     }
111 
112     public void testEntry1() throws Exception {
113         _testEntry(1);
114     }
115     
116 }