# HG changeset patch # User stechong # Date 1242844568 18000 # Node ID f70af3d98d078a3aabf0c1bb6e92be7f707db76a # Parent 619ca8fc1260c1d2b1f16c78ab6e374b986a52e5# Parent ab726debd0c1717c24987053d5c824b9da0fdd92 Merge commit diff -r ab726debd0c1 -r f70af3d98d07 core/com.nokia.carbide.cpp.news.reader.tests/src/com/nokia/carbide/cpp/news/reader/tests/FeedCacheManagerTest.java --- a/core/com.nokia.carbide.cpp.news.reader.tests/src/com/nokia/carbide/cpp/news/reader/tests/FeedCacheManagerTest.java Wed May 20 11:01:48 2009 -0500 +++ b/core/com.nokia.carbide.cpp.news.reader.tests/src/com/nokia/carbide/cpp/news/reader/tests/FeedCacheManagerTest.java Wed May 20 13:36:08 2009 -0500 @@ -19,9 +19,11 @@ import java.io.File; import java.net.URL; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import com.nokia.carbide.cpp.internal.news.reader.feed.CarbideSyndEntry; import com.nokia.carbide.cpp.internal.news.reader.feed.CarbideSyndFeed; import com.nokia.carbide.cpp.internal.news.reader.feed.FeedManager; import com.nokia.carbide.cpp.internal.news.reader.gen.FeedCache.FeedCacheFactory; @@ -29,6 +31,10 @@ import com.nokia.carbide.cpp.internal.news.reader.gen.FeedCache.FeedCacheType; import com.nokia.carbide.cpp.internal.news.reader.gen.FeedCache.FeedType; import com.nokia.carbide.cpp.internal.news.reader.gen.FeedCache.IFeedCacheChangedlistener; +import com.sun.syndication.feed.synd.SyndEntry; +import com.sun.syndication.feed.synd.SyndEntryImpl; +import com.sun.syndication.feed.synd.SyndFeed; +import com.sun.syndication.feed.synd.SyndFeedImpl; import junit.framework.TestCase; @@ -190,6 +196,32 @@ } } + public void testSaveFeedToCache() { + try { + feedCacheManager.setFeedCache(null); + feedCacheManager.saveFeedToCache(null); + assertNull(feedCacheManager.getFeedCache()); + File file = getDefaultFeedCacheFile(); + URL url = file.toURL(); + if (feedCacheManager.loadCacheFromFile(url)) { + SyndFeed syndFeed = new SyndFeedImpl(); + CarbideSyndFeed feed = new CarbideSyndFeed(syndFeed); + List entries = new ArrayList(); + SyndEntry syndEntry = new SyndEntryImpl(); + CarbideSyndEntry entry = new CarbideSyndEntry(syndEntry); + entries.add(entry); + feed.setEntries(entries); + feed.setDescription("A feed for testing feed cache manager."); + feed.setTitle("Test feed"); + feed.setLink("http://www.nokia.com"); + feedCacheManager.saveFeedToCache(feed); + assertTrue(feedCacheManager.isFeedInCache(feed)); + } + } catch (Exception e) { + fail(); + } + } + public void testSetCacheUpdated() { feedCacheManager.setCacheUpdated(true); assertTrue(feedCacheManager.isCacheUpdated()); diff -r ab726debd0c1 -r f70af3d98d07 core/com.nokia.carbide.cpp.news.reader/src/com/nokia/carbide/cpp/internal/news/reader/gen/FeedCache/FeedCacheManager.java --- a/core/com.nokia.carbide.cpp.news.reader/src/com/nokia/carbide/cpp/internal/news/reader/gen/FeedCache/FeedCacheManager.java Wed May 20 11:01:48 2009 -0500 +++ b/core/com.nokia.carbide.cpp.news.reader/src/com/nokia/carbide/cpp/internal/news/reader/gen/FeedCache/FeedCacheManager.java Wed May 20 13:36:08 2009 -0500 @@ -142,6 +142,9 @@ List cachedFeeds = feedCache.getFeeds().getFeed(); for (Iterator iterator = cachedFeeds.iterator(); iterator.hasNext();) { FeedType cachedFeed = iterator.next(); + if (cachedFeed == null) { + continue; + } if (cachedFeed.getTitle().equals(feed.getTitle()) && cachedFeed.getLink().equals(feed.getLink())) { return true; @@ -284,6 +287,9 @@ EList entryList = entries.getEntry(); for (Iterator iterator = feed.getEntries().iterator(); iterator.hasNext();) { CarbideSyndEntry feedEntry = iterator.next(); + if (feedEntry == null) { + continue; + } EntryType cachedEntry = FeedCacheFactory.eINSTANCE.createEntryType(); if (feedEntry.getDescription() != null) { cachedEntry.setDescription(feedEntry.getDescription()); @@ -409,6 +415,9 @@ int index = -1; for (Iterator iterator = cachedFeeds.iterator(); iterator.hasNext();) { FeedType oldFeed = iterator.next(); + if (oldFeed == null) { + continue; + } if (oldFeed.getTitle().equals(newFeed.getTitle()) && oldFeed.getLink().equals(newFeed.getLink())) { cachedUpdated = isCachedFeedOutOfSync(oldFeed, newFeed);