Search in sources :

Example 81 with Feed

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

the class DBReaderTest method testGetFeedItemlistCheckChaptersFalse.

public void testGetFeedItemlistCheckChaptersFalse() throws Exception {
    Context context = getInstrumentation().getTargetContext();
    List<Feed> feeds = DBTestUtils.saveFeedlist(10, 10, false, false, 0);
    for (Feed feed : feeds) {
        for (FeedItem item : feed.getItems()) {
            assertFalse(item.hasChapters());
        }
    }
}
Also used : Context(android.content.Context) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) Feed(de.danoeh.antennapod.core.feed.Feed)

Example 82 with Feed

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

the class DBTasksTest method testUpdateFeedMediaUrlResetState.

public void testUpdateFeedMediaUrlResetState() {
    final Feed feed = new Feed("url", null, "title");
    FeedItem item = new FeedItem(0, "item", "id", "link", new Date(), FeedItem.PLAYED, feed);
    feed.setItems(Arrays.asList(item));
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    // ensure that objects have been saved in db, then reset
    assertTrue(feed.getId() != 0);
    assertTrue(item.getId() != 0);
    FeedMedia media = new FeedMedia(item, "url", 1024, "mime/type");
    item.setMedia(media);
    feed.setItems(Arrays.asList(item));
    final Feed newFeed = DBTasks.updateFeed(context, feed)[0];
    assertTrue(feed != newFeed);
    final Feed feedFromDB = DBReader.getFeed(newFeed.getId());
    final FeedItem feedItemFromDB = feedFromDB.getItems().get(0);
    assertTrue("state: " + feedItemFromDB.getState(), feedItemFromDB.isNew());
}
Also used : PodDBAdapter(de.danoeh.antennapod.core.storage.PodDBAdapter) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) FeedMedia(de.danoeh.antennapod.core.feed.FeedMedia) Date(java.util.Date) Feed(de.danoeh.antennapod.core.feed.Feed)

Example 83 with Feed

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

the class DBWriterTest method testRemoveQueueItem.

public void testRemoveQueueItem() throws InterruptedException, ExecutionException, TimeoutException {
    final int NUM_ITEMS = 10;
    final Context context = getInstrumentation().getTargetContext();
    Feed feed = new Feed("url", null, "title");
    feed.setItems(new ArrayList<>());
    for (int i = 0; i < NUM_ITEMS; i++) {
        FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), FeedItem.PLAYED, feed);
        feed.getItems().add(item);
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    for (FeedItem item : feed.getItems()) {
        assertTrue(item.getId() != 0);
    }
    for (int removeIndex = 0; removeIndex < NUM_ITEMS; removeIndex++) {
        final FeedItem item = feed.getItems().get(removeIndex);
        adapter = PodDBAdapter.getInstance();
        adapter.open();
        adapter.setQueue(feed.getItems());
        adapter.close();
        DBWriter.removeQueueItem(context, item, false).get(TIMEOUT, TimeUnit.SECONDS);
        adapter = PodDBAdapter.getInstance();
        adapter.open();
        Cursor queue = adapter.getQueueIDCursor();
        assertTrue(queue.getCount() == NUM_ITEMS - 1);
        for (int i = 0; i < queue.getCount(); i++) {
            assertTrue(queue.moveToPosition(i));
            final long queueID = queue.getLong(0);
            // removed item is no longer in queue
            assertTrue(queueID != item.getId());
            boolean idFound = false;
            for (FeedItem other : feed.getItems()) {
                // items that were not removed are still in the queue
                idFound = idFound | (other.getId() == queueID);
            }
            assertTrue(idFound);
        }
        queue.close();
        adapter.close();
    }
}
Also used : Context(android.content.Context) PodDBAdapter(de.danoeh.antennapod.core.storage.PodDBAdapter) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) Cursor(android.database.Cursor) Date(java.util.Date) Feed(de.danoeh.antennapod.core.feed.Feed)

Example 84 with Feed

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

the class DBWriterTest method testDeleteFeedWithItemImages.

public void testDeleteFeedWithItemImages() throws InterruptedException, ExecutionException, TimeoutException, IOException {
    File destFolder = getInstrumentation().getTargetContext().getExternalFilesDir(TEST_FOLDER);
    assertNotNull(destFolder);
    Feed feed = new Feed("url", null, "title");
    feed.setItems(new ArrayList<>());
    // create Feed image
    File imgFile = new File(destFolder, "image");
    assertTrue(imgFile.createNewFile());
    FeedImage image = new FeedImage(0, "image", imgFile.getAbsolutePath(), "url", true);
    image.setOwner(feed);
    feed.setImage(image);
    // create items with images
    for (int i = 0; i < 10; i++) {
        FeedItem item = new FeedItem(0, "Item " + i, "Item" + i, "url", new Date(), FeedItem.PLAYED, feed);
        feed.getItems().add(item);
        File itemImageFile = new File(destFolder, "item-image-" + i);
        FeedImage itemImage = new FeedImage(0, "item-image" + i, itemImageFile.getAbsolutePath(), "url", true);
        item.setImage(itemImage);
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    assertTrue(feed.getId() != 0);
    assertTrue(feed.getImage().getId() != 0);
    for (FeedItem item : feed.getItems()) {
        assertTrue(item.getId() != 0);
        assertTrue(item.getImage().getId() != 0);
    }
    DBWriter.deleteFeed(getInstrumentation().getTargetContext(), feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
    // check if files still exist
    assertFalse(imgFile.exists());
    adapter = PodDBAdapter.getInstance();
    adapter.open();
    Cursor c = adapter.getFeedCursor(feed.getId());
    assertTrue(c.getCount() == 0);
    c.close();
    c = adapter.getImageCursor(String.valueOf(image.getId()));
    assertTrue(c.getCount() == 0);
    c.close();
    for (FeedItem item : feed.getItems()) {
        c = adapter.getFeedItemCursor(String.valueOf(item.getId()));
        assertTrue(c.getCount() == 0);
        c.close();
        c = adapter.getImageCursor(String.valueOf(item.getImage().getId()));
        assertEquals(0, c.getCount());
        c.close();
    }
    adapter.close();
}
Also used : PodDBAdapter(de.danoeh.antennapod.core.storage.PodDBAdapter) FeedImage(de.danoeh.antennapod.core.feed.FeedImage) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) Cursor(android.database.Cursor) File(java.io.File) Date(java.util.Date) Feed(de.danoeh.antennapod.core.feed.Feed)

Example 85 with Feed

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

the class DBWriterTest method testMarkFeedRead.

public void testMarkFeedRead() throws InterruptedException, ExecutionException, TimeoutException {
    final int NUM_ITEMS = 10;
    Feed feed = new Feed("url", null, "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(), FeedItem.UNPLAYED, feed);
        feed.getItems().add(item);
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    assertTrue(feed.getId() != 0);
    for (FeedItem item : feed.getItems()) {
        assertTrue(item.getId() != 0);
    }
    DBWriter.markFeedRead(feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
    List<FeedItem> loadedItems = DBReader.getFeedItemList(feed);
    for (FeedItem item : loadedItems) {
        assertTrue(item.isPlayed());
    }
}
Also used : PodDBAdapter(de.danoeh.antennapod.core.storage.PodDBAdapter) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) Date(java.util.Date) 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