Search in sources :

Example 71 with Feed

use of de.danoeh.antennapod.core.feed.Feed in project AntennaPod by AntennaPod.

the class DBCleanupTests method testPerformAutoCleanupShouldNotDeleteBecauseInQueue.

@FlakyTest(tolerance = 3)
public void testPerformAutoCleanupShouldNotDeleteBecauseInQueue() throws IOException {
    final int NUM_ITEMS = EPISODE_CACHE_SIZE * 2;
    Feed feed = new Feed("url", null, "title");
    List<FeedItem> items = new ArrayList<>();
    feed.setItems(items);
    List<File> files = new ArrayList<>();
    populateItems(NUM_ITEMS, feed, items, files, FeedItem.PLAYED, true, false);
    DBTasks.performAutoCleanup(context);
    for (File file : files) {
        assertTrue(file.exists());
    }
}
Also used : FeedItem(de.danoeh.antennapod.core.feed.FeedItem) ArrayList(java.util.ArrayList) File(java.io.File) Feed(de.danoeh.antennapod.core.feed.Feed) FlakyTest(android.test.FlakyTest)

Example 72 with Feed

use of de.danoeh.antennapod.core.feed.Feed in project AntennaPod by AntennaPod.

the class DBNullCleanupAlgorithmTest method testPerformAutoCleanupShouldNotDelete.

/**
     * A test with no items in the queue, but multiple items downloaded.
     * The null algorithm should never delete any items, even if they're played and not in the queue.
     * @throws IOException
     */
@FlakyTest(tolerance = 3)
public void testPerformAutoCleanupShouldNotDelete() throws IOException {
    final int NUM_ITEMS = EPISODE_CACHE_SIZE * 2;
    Feed feed = new Feed("url", null, "title");
    List<FeedItem> items = new ArrayList<>();
    feed.setItems(items);
    List<File> files = new ArrayList<>();
    for (int i = 0; i < NUM_ITEMS; i++) {
        FeedItem item = new FeedItem(0, "title", "id", "link", new Date(), FeedItem.PLAYED, feed);
        File f = new File(destFolder, "file " + i);
        assertTrue(f.createNewFile());
        files.add(f);
        item.setMedia(new FeedMedia(0, item, 1, 0, 1L, "m", f.getAbsolutePath(), "url", true, new Date(NUM_ITEMS - i), 0, 0));
        items.add(item);
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    assertTrue(feed.getId() != 0);
    for (FeedItem item : items) {
        assertTrue(item.getId() != 0);
        assertTrue(item.getMedia().getId() != 0);
    }
    DBTasks.performAutoCleanup(context);
    for (int i = 0; i < files.size(); i++) {
        assertTrue(files.get(i).exists());
    }
}
Also used : PodDBAdapter(de.danoeh.antennapod.core.storage.PodDBAdapter) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) FeedMedia(de.danoeh.antennapod.core.feed.FeedMedia) ArrayList(java.util.ArrayList) File(java.io.File) Date(java.util.Date) Feed(de.danoeh.antennapod.core.feed.Feed) FlakyTest(android.test.FlakyTest)

Example 73 with Feed

use of de.danoeh.antennapod.core.feed.Feed in project AntennaPod by AntennaPod.

the class DBQueueCleanupAlgorithmTest method testPerformAutoCleanupHandleUnplayed.

/**
     * For APQueueCleanupAlgorithm we expect even unplayed episodes to be deleted if needed
     * if they aren't in the queue
     */
@FlakyTest(tolerance = 3)
public void testPerformAutoCleanupHandleUnplayed() throws IOException {
    final int NUM_ITEMS = EPISODE_CACHE_SIZE * 2;
    Feed feed = new Feed("url", null, "title");
    List<FeedItem> items = new ArrayList<>();
    feed.setItems(items);
    List<File> files = new ArrayList<>();
    populateItems(NUM_ITEMS, feed, items, files, FeedItem.UNPLAYED, false, false);
    DBTasks.performAutoCleanup(context);
    for (int i = 0; i < files.size(); i++) {
        if (i < EPISODE_CACHE_SIZE) {
            assertTrue(files.get(i).exists());
        } else {
            assertFalse(files.get(i).exists());
        }
    }
}
Also used : FeedItem(de.danoeh.antennapod.core.feed.FeedItem) ArrayList(java.util.ArrayList) File(java.io.File) Feed(de.danoeh.antennapod.core.feed.Feed) FlakyTest(android.test.FlakyTest)

Example 74 with Feed

use of de.danoeh.antennapod.core.feed.Feed in project AntennaPod by AntennaPod.

the class DBReaderTest method testGetItemWithChapters.

public void testGetItemWithChapters() throws Exception {
    final int NUM_CHAPTERS = 3;
    List<Feed> feeds = saveFeedlist(1, 1, false, true, NUM_CHAPTERS);
    FeedItem item1 = feeds.get(0).getItems().get(0);
    FeedItem item2 = DBReader.getFeedItem(item1.getId());
    assertTrue(item2.hasChapters());
    assertEquals(item1.getChapters(), item2.getChapters());
}
Also used : FeedItem(de.danoeh.antennapod.core.feed.FeedItem) Feed(de.danoeh.antennapod.core.feed.Feed)

Example 75 with Feed

use of de.danoeh.antennapod.core.feed.Feed in project AntennaPod by AntennaPod.

the class DBReaderTest method testGetNavDrawerDataQueueNotEmptyWithUnreadItems.

public void testGetNavDrawerDataQueueNotEmptyWithUnreadItems() {
    final int NUM_FEEDS = 10;
    final int NUM_ITEMS = 10;
    final int NUM_QUEUE = 1;
    final int NUM_NEW = 2;
    List<Feed> feeds = DBTestUtils.saveFeedlist(NUM_FEEDS, NUM_ITEMS, true);
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    for (int i = 0; i < NUM_NEW; i++) {
        FeedItem item = feeds.get(0).getItems().get(i);
        item.setNew();
        adapter.setSingleFeedItem(item);
    }
    List<FeedItem> queue = new ArrayList<>();
    for (int i = 0; i < NUM_QUEUE; i++) {
        FeedItem item = feeds.get(1).getItems().get(i);
        queue.add(item);
    }
    adapter.setQueue(queue);
    adapter.close();
    DBReader.NavDrawerData navDrawerData = DBReader.getNavDrawerData();
    assertEquals(NUM_FEEDS, navDrawerData.feeds.size());
    assertEquals(NUM_NEW, navDrawerData.numNewItems);
    assertEquals(NUM_QUEUE, navDrawerData.queueSize);
}
Also used : PodDBAdapter(de.danoeh.antennapod.core.storage.PodDBAdapter) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) DBReader(de.danoeh.antennapod.core.storage.DBReader) ArrayList(java.util.ArrayList) Feed(de.danoeh.antennapod.core.feed.Feed)

Aggregations

Feed (de.danoeh.antennapod.core.feed.Feed)95 FeedItem (de.danoeh.antennapod.core.feed.FeedItem)55 PodDBAdapter (de.danoeh.antennapod.core.storage.PodDBAdapter)32 ArrayList (java.util.ArrayList)30 Date (java.util.Date)30 FeedMedia (de.danoeh.antennapod.core.feed.FeedMedia)21 File (java.io.File)20 Cursor (android.database.Cursor)16 FeedImage (de.danoeh.antennapod.core.feed.FeedImage)14 Context (android.content.Context)13 FlakyTest (android.test.FlakyTest)9 DialogInterface (android.content.DialogInterface)8 Intent (android.content.Intent)8 LayoutInflater (android.view.LayoutInflater)7 AdapterView (android.widget.AdapterView)7 ConfirmationDialog (de.danoeh.antennapod.core.dialog.ConfirmationDialog)6 FeedPreferences (de.danoeh.antennapod.core.feed.FeedPreferences)6 DownloadRequestException (de.danoeh.antennapod.core.storage.DownloadRequestException)6 Log (android.util.Log)4 View (android.view.View)4