summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/de/test/antennapod/feed/FeedFilterTest.java
blob: 23a05ac8c6e8f5e3b8f060b4f18bfcb21a872d66 (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package de.test.antennapod.feed;

import android.test.AndroidTestCase;

import de.danoeh.antennapod.core.feed.FeedFilter;
import de.danoeh.antennapod.core.feed.FeedItem;

public class FeedFilterTest extends AndroidTestCase {

    public void testNullFilter() throws Exception {
        FeedFilter filter = new FeedFilter();
        FeedItem item = new FeedItem();
        item.setTitle("Hello world");

        assertTrue(!filter.excludeOnly());
        assertTrue(!filter.includeOnly());
        assertEquals("", filter.getExcludeFilter());
        assertEquals("", filter.getIncludeFilter());
        assertTrue(filter.shouldAutoDownload(item));
    }

    public void testBasicIncludeFilter() throws Exception {
        String includeFilter = "Hello";
        FeedFilter filter = new FeedFilter(includeFilter, "");
        FeedItem item = new FeedItem();
        item.setTitle("Hello world");

        FeedItem item2 = new FeedItem();
        item2.setTitle("Don't include me");

        assertTrue(!filter.excludeOnly());
        assertTrue(filter.includeOnly());
        assertEquals("", filter.getExcludeFilter());
        assertEquals(includeFilter, filter.getIncludeFilter());
        assertTrue(filter.shouldAutoDownload(item));
        assertTrue(!filter.shouldAutoDownload(item2));
    }

    public void testBasicExcludeFilter() throws Exception {
        String excludeFilter = "Hello";
        FeedFilter filter = new FeedFilter("", excludeFilter);
        FeedItem item = new FeedItem();
        item.setTitle("Hello world");

        FeedItem item2 = new FeedItem();
        item2.setTitle("Item2");

        assertTrue(filter.excludeOnly());
        assertTrue(!filter.includeOnly());
        assertEquals(excludeFilter, filter.getExcludeFilter());
        assertEquals("", filter.getIncludeFilter());
        assertTrue(!filter.shouldAutoDownload(item));
        assertTrue(filter.shouldAutoDownload(item2));
    }

    public void testComplexIncludeFilter() throws Exception {
        String includeFilter = "Hello \n\"Two words\"";
        FeedFilter filter = new FeedFilter(includeFilter, "");
        FeedItem item = new FeedItem();
        item.setTitle("hello world");

        FeedItem item2 = new FeedItem();
        item2.setTitle("Two three words");

        FeedItem item3 = new FeedItem();
        item3.setTitle("One two words");

        assertTrue(!filter.excludeOnly());
        assertTrue(filter.includeOnly());
        assertEquals("", filter.getExcludeFilter());
        assertEquals(includeFilter, filter.getIncludeFilter());
        assertTrue(filter.shouldAutoDownload(item));
        assertTrue(!filter.shouldAutoDownload(item2));
        assertTrue(filter.shouldAutoDownload(item3));
    }

    public void testComplexExcludeFilter() throws Exception {
        String excludeFilter = "Hello \"Two words\"";
        FeedFilter filter = new FeedFilter("", excludeFilter);
        FeedItem item = new FeedItem();
        item.setTitle("hello world");

        FeedItem item2 = new FeedItem();
        item2.setTitle("One three words");

        FeedItem item3 = new FeedItem();
        item3.setTitle("One two words");

        assertTrue(filter.excludeOnly());
        assertTrue(!filter.includeOnly());
        assertEquals(excludeFilter, filter.getExcludeFilter());
        assertEquals("", filter.getIncludeFilter());
        assertTrue(!filter.shouldAutoDownload(item));
        assertTrue(filter.shouldAutoDownload(item2));
        assertTrue(!filter.shouldAutoDownload(item3));
    }

    public void testComboFilter() throws Exception {
        String includeFilter = "Hello world";
        String excludeFilter = "dislike";
        FeedFilter filter = new FeedFilter(includeFilter, excludeFilter);

        FeedItem download = new FeedItem();
        download.setTitle("Hello everyone!");
        // because, while it has words from the include filter it also has exclude words
        FeedItem doNotDownload = new FeedItem();
        doNotDownload.setTitle("I dislike the world");
        // because it has no words from the include filter
        FeedItem doNotDownload2 = new FeedItem();
        doNotDownload2.setTitle("no words to include");

        assertTrue(filter.hasExcludeFilter());
        assertTrue(filter.hasIncludeFilter());
        assertTrue(filter.shouldAutoDownload(download));
        assertTrue(!filter.shouldAutoDownload(doNotDownload));
        assertTrue(!filter.shouldAutoDownload(doNotDownload2));
    }

}