Ejemplo n.º 1
0
  /** Test of parse method, of class com.totsp.xml.syndication.itunes.ITunesParser. */
  public void testParse() throws Exception {
    File feed = new File(this.getTestFile("/test/xml/leshow.xml"));
    SyndFeedInput input = new SyndFeedInput();
    SyndFeed syndfeed = input.build(new XmlReader(feed.toURL()));

    Module module = syndfeed.getModule(AbstractITunesObject.URI);
    FeedInformationImpl feedInfo = (FeedInformationImpl) module;

    assertEquals("owner", "Harry Shearer", feedInfo.getOwnerName());
    assertEquals("email", "", feedInfo.getOwnerEmailAddress());
    assertEquals(
        "image",
        "http://a1.phobos.apple.com/Music/y2005/m06/d26/h21/mcdrrifv.jpg",
        feedInfo.getImage().toExternalForm());
    assertEquals("category", "Comedy", ((Category) feedInfo.getCategories().get(0)).getName());
    assertEquals(
        "summary",
        "A weekly, hour-long romp through the worlds of media, politics, sports and show business, leavened with an eclectic mix of mysterious music, hosted by Harry Shearer.",
        feedInfo.getSummary());

    List entries = syndfeed.getEntries();
    Iterator it = entries.iterator();

    while (it.hasNext()) {
      SyndEntry entry = (SyndEntry) it.next();
      EntryInformationImpl entryInfo =
          (EntryInformationImpl) entry.getModule(AbstractITunesObject.URI);
      System.out.println(entryInfo);
    }

    feed = new File(this.getTestFile("/test/xml/rsr.xml"));
    syndfeed = input.build(new XmlReader(feed.toURL()));
    entries = syndfeed.getEntries();
    it = entries.iterator();

    while (it.hasNext()) {
      SyndEntry entry = (SyndEntry) it.next();
      EntryInformationImpl entryInfo =
          (EntryInformationImpl) entry.getModule(AbstractITunesObject.URI);
      System.out.println(entryInfo.getDuration());
    }
  }
  public void copyInto(WireFeed feed, SyndFeed syndFeed) {
    Channel channel = (Channel) feed;
    super.copyInto(channel, syndFeed);
    syndFeed.setLanguage(channel.getLanguage()); // c
    syndFeed.setCopyright(channel.getCopyright()); // c
    Date pubDate = channel.getPubDate();
    if (pubDate != null) {
      syndFeed.setPublishedDate(pubDate); // c
    } else if (channel.getLastBuildDate() != null) {
      syndFeed.setPublishedDate(channel.getLastBuildDate()); // c
    }

    String author = channel.getManagingEditor();
    if (author != null) {
      List creators = ((DCModule) syndFeed.getModule(DCModule.URI)).getCreators();
      if (!creators.contains(author)) {
        Set s = new HashSet(); // using a set to remove duplicates
        s.addAll(creators); // DC creators
        s.add(author); // feed native author
        creators.clear();
        creators.addAll(s);
      }
    }
  }