"markFeedRead" and "markAllItemsRead" did not work correctly

This commit is contained in:
daniel oeh 2013-09-11 13:56:23 +02:00
parent 613fbce283
commit 697afbd5a6
2 changed files with 56 additions and 0 deletions

View File

@ -567,6 +567,7 @@ public class DBWriter {
itemCursor.moveToFirst();
for (int i = 0; i < itemIds.length; i++) {
itemIds[i] = itemCursor.getLong(PodDBAdapter.KEY_ID_INDEX);
itemCursor.moveToNext();
}
itemCursor.close();
adapter.setFeedItemRead(true, itemIds);
@ -595,6 +596,7 @@ public class DBWriter {
itemCursor.moveToFirst();
for (int i = 0; i < itemIds.length; i++) {
itemIds[i] = itemCursor.getLong(PodDBAdapter.KEY_ID_INDEX);
itemCursor.moveToNext();
}
itemCursor.close();
adapter.setFeedItemRead(true, itemIds);

View File

@ -681,4 +681,58 @@ public class DBWriterTest extends InstrumentationTestCase {
}
}
public void testMarkFeedRead() throws InterruptedException, ExecutionException, TimeoutException {
final Context context = getInstrumentation().getTargetContext();
final int NUM_ITEMS = 10;
Feed feed = new Feed("url", new Date(), "title");
feed.setItems(new ArrayList<FeedItem>());
for (int i = 0; i < NUM_ITEMS; i++) {
FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), false, feed);
feed.getItems().add(item);
}
PodDBAdapter adapter = new PodDBAdapter(context);
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
assertTrue(feed.getId() != 0);
for (FeedItem item : feed.getItems()) {
assertTrue(item.getId() != 0);
}
DBWriter.markFeedRead(context, feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
List<FeedItem> loadedItems = DBReader.getFeedItemList(context, feed);
for (FeedItem item : loadedItems) {
assertTrue(item.isRead());
}
}
public void testMarkAllItemsReadSameFeed() {
final Context context = getInstrumentation().getTargetContext();
final int NUM_ITEMS = 10;
Feed feed = new Feed("url", new Date(), "title");
feed.setItems(new ArrayList<FeedItem>());
for (int i = 0; i < NUM_ITEMS; i++) {
FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), false, feed);
feed.getItems().add(item);
}
PodDBAdapter adapter = new PodDBAdapter(context);
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
assertTrue(feed.getId() != 0);
for (FeedItem item : feed.getItems()) {
assertTrue(item.getId() != 0);
}
DBWriter.markAllItemsRead(context);
List<FeedItem> loadedItems = DBReader.getFeedItemList(context, feed);
for (FeedItem item : loadedItems) {
assertTrue(item.isRead());
}
}
}