From d1772d410235592b482e3b08b1863f6624d9fe6b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 19 Feb 2023 15:52:21 +0100 Subject: Adding upstream version 2.0.3. Signed-off-by: Daniel Baumann --- deluge/tests/test_tracker_icons.py | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 deluge/tests/test_tracker_icons.py (limited to 'deluge/tests/test_tracker_icons.py') diff --git a/deluge/tests/test_tracker_icons.py b/deluge/tests/test_tracker_icons.py new file mode 100644 index 0000000..e18d339 --- /dev/null +++ b/deluge/tests/test_tracker_icons.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +# +# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with +# the additional special exception to link portions of this program with the OpenSSL library. +# See LICENSE for more details. +# + +from __future__ import unicode_literals + +import pytest +from twisted.trial.unittest import SkipTest + +import deluge.component as component +import deluge.ui.tracker_icons +from deluge.common import windows_check +from deluge.ui.tracker_icons import TrackerIcon, TrackerIcons + +from . import common +from .basetest import BaseTestCase + +common.set_tmp_config_dir() +deluge.ui.tracker_icons.PIL_INSTALLED = False +common.disable_new_release_check() + + +@pytest.mark.internet +class TrackerIconsTestCase(BaseTestCase): + + if windows_check(): + skip = 'cannot use os.path.samefile to compair on windows(unix only)' + + def set_up(self): + # Disable resizing with Pillow for consistency. + self.patch(deluge.ui.tracker_icons, 'Image', None) + self.icons = TrackerIcons() + + def tear_down(self): + return component.shutdown() + + def test_get_deluge_png(self): + # Deluge has a png favicon link + icon = TrackerIcon(common.get_test_data_file('deluge.png')) + d = self.icons.fetch('deluge-torrent.org') + d.addCallback(self.assertNotIdentical, None) + d.addCallback(self.assertEqual, 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(common.get_test_data_file('google.ico')) + d = self.icons.fetch('www.google.com') + d.addCallback(self.assertNotIdentical, None) + d.addCallback(self.assertEqual, icon) + return d + + def test_get_google_ico_with_redirect(self): + # google.com redirects to www.google.com + icon = TrackerIcon(common.get_test_data_file('google.ico')) + d = self.icons.fetch('google.com') + d.addCallback(self.assertNotIdentical, None) + d.addCallback(self.assertEqual, icon) + return d + + def test_get_seo_ico_with_sni(self): + # seo using certificates with SNI support only + raise SkipTest('Site certificate expired') + icon = TrackerIcon(common.get_test_data_file('seo.ico')) + d = self.icons.fetch('www.seo.com') + d.addCallback(self.assertNotIdentical, None) + d.addCallback(self.assertEqual, icon) + return d + + def test_get_empty_string_tracker(self): + d = self.icons.fetch('') + d.addCallback(self.assertIdentical, None) + return d -- cgit v1.2.3