2021-11-02 16:08:56 -04:00
|
|
|
# Copyright 2021 (c) Anna Schumaker.
|
2021-11-03 10:57:21 -04:00
|
|
|
import db
|
2021-11-02 16:08:56 -04:00
|
|
|
import lib
|
|
|
|
import unittest
|
2021-11-03 10:57:21 -04:00
|
|
|
from gi.repository import Gtk
|
2021-11-02 16:08:56 -04:00
|
|
|
from . import header
|
|
|
|
from . import model
|
|
|
|
|
|
|
|
class TestFilterEntry(unittest.TestCase):
|
|
|
|
def test_init(self):
|
|
|
|
entry = header.FilterEntry()
|
|
|
|
self.assertIsInstance(entry, lib.filter.Entry)
|
|
|
|
self.assertEqual(entry.filter, model.PlaylistFilter)
|
|
|
|
self.assertEqual(entry.get_margin_start(), 200)
|
|
|
|
self.assertEqual(entry.get_margin_end(), 200)
|
|
|
|
self.assertTrue(entry.get_hexpand())
|
2021-11-03 10:57:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
class TestPropertyToggle(unittest.TestCase):
|
|
|
|
def test_init(self):
|
|
|
|
prop = header.PropertyToggle("random", "media-playlist-shuffle")
|
|
|
|
self.assertIsInstance(prop, Gtk.ToggleButton)
|
|
|
|
self.assertEqual(prop.get_icon_name(), "media-playlist-shuffle")
|
|
|
|
self.assertFalse(prop.get_sensitive())
|
|
|
|
|
|
|
|
self.assertEqual(prop.property, "random")
|
|
|
|
self.assertIsNone(prop.playlist)
|
|
|
|
prop.set_active(True)
|
|
|
|
|
|
|
|
def test_set_playlist(self):
|
|
|
|
collection = db.user.Table.find("Collection")
|
|
|
|
prop = header.PropertyToggle("random", "media-playlist-shuffle")
|
|
|
|
|
|
|
|
collection.set_property("random", True)
|
|
|
|
prop.set_playlist(collection)
|
|
|
|
self.assertEqual(prop.playlist, collection)
|
|
|
|
self.assertTrue(prop.get_active())
|
|
|
|
self.assertFalse(prop.get_sensitive())
|
|
|
|
|
|
|
|
collection.set_property("random", False)
|
|
|
|
prop.set_playlist(collection)
|
|
|
|
self.assertFalse(prop.get_active())
|
|
|
|
|
|
|
|
def test_toggle(self):
|
|
|
|
collection = db.user.Table.find("Collection")
|
|
|
|
prop = header.PropertyToggle("random", "media-playlist-shuffle")
|
|
|
|
|
|
|
|
collection.set_property("random", False)
|
|
|
|
prop.set_playlist(collection)
|
|
|
|
prop.set_active(True)
|
|
|
|
self.assertTrue(collection.get_property("random"))
|
|
|
|
prop.set_active(False)
|
|
|
|
self.assertFalse(collection.get_property("random"))
|
|
|
|
|
|
|
|
|
|
|
|
class TestRandomToggle(unittest.TestCase):
|
|
|
|
def test_init(self):
|
|
|
|
random = header.RandomToggle()
|
|
|
|
self.assertIsInstance(random, header.PropertyToggle)
|
|
|
|
self.assertEqual(random.get_icon_name(), "media-playlist-shuffle")
|
|
|
|
self.assertEqual(random.property, "random")
|
|
|
|
|
|
|
|
def test_set_playlist(self):
|
|
|
|
random = header.RandomToggle()
|
|
|
|
random.set_playlist(db.user.Table.find("Collection"))
|
|
|
|
self.assertTrue(random.get_sensitive())
|
|
|
|
random.set_playlist(db.user.Table.find("Previous"))
|
|
|
|
self.assertFalse(random.get_sensitive())
|
|
|
|
|
|
|
|
|
|
|
|
class TestLoopToggle(unittest.TestCase):
|
|
|
|
def test_init(self):
|
|
|
|
loop = header.LoopToggle()
|
|
|
|
self.assertIsInstance(loop, header.PropertyToggle)
|
|
|
|
self.assertEqual(loop.get_icon_name(), "media-playlist-repeat")
|
|
|
|
self.assertEqual(loop.property, "loop")
|
|
|
|
|
|
|
|
def test_set_playlist(self):
|
|
|
|
loop = header.LoopToggle()
|
|
|
|
loop.set_playlist(db.user.Table.find("Collection"))
|
|
|
|
self.assertFalse(loop.get_sensitive())
|
|
|
|
loop.set_playlist(db.user.Table.find("Favorites"))
|
|
|
|
self.assertTrue(loop.get_sensitive())
|
|
|
|
loop.set_playlist(db.user.Table.find("New Tracks"))
|
|
|
|
self.assertTrue(loop.get_sensitive())
|
|
|
|
loop.set_playlist(db.user.Table.find("Previous"))
|
|
|
|
self.assertFalse(loop.get_sensitive())
|
|
|
|
loop.set_playlist(db.user.Table.find("Queued Tracks"))
|
|
|
|
self.assertFalse(loop.get_sensitive())
|