65 lines
2.5 KiB
Python
65 lines
2.5 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from . import controls
|
|
from . import filter
|
|
from . import popover
|
|
from gi.repository import Gtk
|
|
import tagdb
|
|
import unittest
|
|
|
|
class TestPlaylistControls(unittest.TestCase):
|
|
def test_playlist_controls_init(self):
|
|
ctrl = controls.Controls()
|
|
|
|
self.assertIsInstance(ctrl, Gtk.Box)
|
|
self.assertIsInstance(ctrl.search, Gtk.SearchEntry)
|
|
self.assertIsInstance(ctrl.random, Gtk.ToggleButton)
|
|
self.assertIsInstance(ctrl.loop, Gtk.ToggleButton)
|
|
self.assertIsInstance(ctrl.add_popover, popover.AddPopover)
|
|
self.assertIsInstance(ctrl.add, Gtk.MenuButton)
|
|
self.assertIsInstance(ctrl.filter, filter.Filter)
|
|
|
|
self.assertEqual(ctrl.random.get_icon_name(), "media-playlist-shuffle")
|
|
self.assertEqual(ctrl.loop.get_icon_name(), "media-playlist-repeat")
|
|
self.assertEqual(ctrl.add.get_icon_name(), "list-add")
|
|
self.assertEqual(ctrl.add.get_popover(), ctrl.add_popover)
|
|
self.assertEqual(ctrl.search.get_property("placeholder-text"),
|
|
"Type to filter tracks")
|
|
|
|
self.assertTrue(ctrl.has_css_class("linked"))
|
|
self.assertTrue(ctrl.search.get_hexpand())
|
|
|
|
self.assertIn(ctrl.search, ctrl)
|
|
self.assertIn(ctrl.random, ctrl)
|
|
self.assertIn(ctrl.loop, ctrl)
|
|
self.assertIn(ctrl.add, ctrl)
|
|
|
|
def test_playlist_controls_set_tag(self):
|
|
ctrl = controls.Controls()
|
|
fav = tagdb.tags.User["Favorites"]
|
|
prev = tagdb.tags.User["Previous"]
|
|
|
|
self.assertIsNone(ctrl.tag)
|
|
self.assertFalse(ctrl.random.get_sensitive())
|
|
self.assertFalse(ctrl.random.get_active())
|
|
self.assertFalse(ctrl.loop.get_sensitive())
|
|
self.assertFalse(ctrl.loop.get_active())
|
|
self.assertFalse(ctrl.add.get_sensitive())
|
|
|
|
fav.random = True
|
|
fav.loop = True
|
|
ctrl.set_tag(fav)
|
|
self.assertEqual(ctrl.tag, fav)
|
|
self.assertTrue(ctrl.random.get_sensitive())
|
|
self.assertTrue(ctrl.random.get_active())
|
|
self.assertTrue(ctrl.loop.get_sensitive())
|
|
self.assertTrue(ctrl.loop.get_active())
|
|
self.assertTrue(ctrl.add.get_sensitive())
|
|
|
|
ctrl.set_tag(prev)
|
|
self.assertEqual(ctrl.tag, prev)
|
|
self.assertFalse(ctrl.random.get_sensitive())
|
|
self.assertFalse(ctrl.random.get_active())
|
|
self.assertFalse(ctrl.loop.get_sensitive())
|
|
self.assertFalse(ctrl.loop.get_active())
|
|
self.assertTrue(ctrl.add.get_sensitive())
|