BookMarkLoadListener listener = null;
try {
final IFeed feed = DynamicDAO.save(new Feed(new URI("http://www.rssowl.org/rssowl2dg/tests/manager/rss_2_0.xml"))); //$NON-NLS-1$
IBookMark bookmark = createBookMark(feed);
final AtomicBoolean bool1 = new AtomicBoolean(false);
final AtomicBoolean bool2 = new AtomicBoolean(false);
assertTrue(bookmark.getNewsRefs().isEmpty());
assertTrue(bookmark.getNewsRefs(INews.State.getVisible()).isEmpty());
assertTrue(bookmark.getNews().isEmpty());
assertTrue(bookmark.getNews(INews.State.getVisible()).isEmpty());
assertEquals(0, bookmark.getNewsCount(INews.State.getVisible()));
listener = new BookMarkLoadListener() {
public void bookMarkDoneLoading(IBookMark bookmark) {
if (bookmark.getFeedLinkReference().references(feed))
bool1.set(true);
}
public void bookMarkAboutToLoad(IBookMark bookmark) {
if (bookmark.getFeedLinkReference().references(feed))
bool2.set(true);
}
};
Controller.getDefault().addBookMarkLoadListener(listener);
Controller.getDefault().reload(bookmark, null, new NullProgressMonitor());
assertEquals(new FeedReference(feed.getId()).resolve().getFormat(), "RSS 2.0"); //$NON-NLS-1$
assertEquals(15, bookmark.getNewsRefs().size());
assertEquals(15, bookmark.getNewsRefs(INews.State.getVisible()).size());
assertEquals(15, bookmark.getNews().size());
assertEquals(15, bookmark.getNews(INews.State.getVisible()).size());
assertEquals(15, bookmark.getNewsCount(INews.State.getVisible()));
assertTrue(bool1.get());
assertTrue(bool2.get());
} finally {
if (listener != null)
Controller.getDefault().removeBookMarkLoadListener(listener);
}
}