summaryrefslogtreecommitdiffstats
path: root/tests/test_tracker_icons.py
blob: 61a5565b9f72ce43486a197eedb846d84a3ee1d7 (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
from twisted.trial import unittest

from deluge.ui.tracker_icons import TrackerIcons, TrackerIcon
from deluge.log import setupLogger

# Must come before import common
setupLogger("debug", "debug.log")

import common

common.set_tmp_config_dir()
icons = TrackerIcons()

class TrackerIconsTestCase(unittest.TestCase):
    def test_get_deluge_png(self):
        # Deluge has a png favicon link
        icon = TrackerIcon("../deluge.png")
        d = icons.get("deluge-torrent.org")
        d.addCallback(self.assertNotIdentical, None)
        d.addCallback(self.assertEquals, icon)
        return d

    def test_get_google_ico(self):
        # Google doesn't have any icon links
        # So instead we'll grab its favicon.ico
        icon = TrackerIcon("../google.ico")
        d = icons.get("www.google.com")
        d.addCallback(self.assertNotIdentical, None)
        d.addCallback(self.assertEquals, icon)
        return d

    def test_get_google_ico_with_redirect(self):
        # google.com redirects to www.google.com
        icon = TrackerIcon("../google.ico")
        d = icons.get("google.com")
        d.addCallback(self.assertNotIdentical, None)
        d.addCallback(self.assertEquals, icon)
        return d

    def test_get_ubuntu_ico(self):
        # ubuntu.com has inline css which causes HTMLParser issues
        icon = TrackerIcon("../ubuntu.png")
        d = icons.get("www.ubuntu.com")
        d.addCallback(self.assertNotIdentical, None)
        d.addCallback(self.assertEquals, icon)
        return d

    def test_get_openbt_png(self):
        # openbittorrent.com has an incorrect type (image/gif)
        icon = TrackerIcon("../openbt.png")
        d = icons.get("openbittorrent.com")
        d.addCallback(self.assertNotIdentical, None)
        d.addCallback(self.assertEquals, icon)
        return d

    def test_get_publicbt_ico(self):
        icon = TrackerIcon("../publicbt.ico")
        d = icons.get("publicbt.org")
        d.addCallback(self.assertNotIdentical, None)
        d.addCallback(self.assertEquals, icon)
        return d

    def test_get_empty_string_tracker(self):
        d = icons.get("")
        d.addCallback(self.assertIdentical, None)
        return d