summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/de/test/antennapod/entities/ExternalMediaTest.java
blob: 80dded59f8041eddbcb7d3bd5b038d26b13881a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package de.test.antennapod.entities;

import android.annotation.SuppressLint;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.test.InstrumentationTestCase;

import de.danoeh.antennapod.core.feed.MediaType;
import de.danoeh.antennapod.core.util.playback.ExternalMedia;

/**
 * Tests for {@link ExternalMedia} entity.
 */
public class ExternalMediaTest extends InstrumentationTestCase {

    private static final int NOT_SET = -1;

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
        clearSharedPrefs();
    }

    @SuppressLint("CommitPrefEdits")
    private void clearSharedPrefs() {
        SharedPreferences prefs = getDefaultSharedPrefs();
        SharedPreferences.Editor editor = prefs.edit();
        editor.clear();
        editor.commit();
    }

    private SharedPreferences getDefaultSharedPrefs() {
        return PreferenceManager.getDefaultSharedPreferences(getInstrumentation().getTargetContext());
    }

    public void testSaveCurrentPositionUpdatesPreferences() {
        final int POSITION = 50;
        final int LAST_PLAYED_TIME = 1650;

        assertEquals(NOT_SET, getDefaultSharedPrefs().getInt(ExternalMedia.PREF_POSITION, NOT_SET));
        assertEquals(NOT_SET, getDefaultSharedPrefs().getLong(ExternalMedia.PREF_LAST_PLAYED_TIME, NOT_SET));

        ExternalMedia media = new ExternalMedia("source", MediaType.AUDIO);
        media.saveCurrentPosition(getDefaultSharedPrefs(), POSITION, LAST_PLAYED_TIME);

        assertEquals(POSITION, getDefaultSharedPrefs().getInt(ExternalMedia.PREF_POSITION, NOT_SET));
        assertEquals(LAST_PLAYED_TIME, getDefaultSharedPrefs().getLong(ExternalMedia.PREF_LAST_PLAYED_TIME, NOT_SET));
    }
}