77 lines
2.8 KiB
Python
77 lines
2.8 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from . import popover
|
|
from gi.repository import Gtk
|
|
import tagdb
|
|
import unittest
|
|
|
|
class TestAddPopover(unittest.TestCase):
|
|
def setUp(self):
|
|
tagdb.reset()
|
|
|
|
def test_add_popover_init(self):
|
|
pop = popover.AddPopover()
|
|
|
|
self.assertIsInstance(pop, Gtk.Popover)
|
|
self.assertIsInstance(pop.box, Gtk.Box)
|
|
self.assertIsInstance(pop.listbox, Gtk.ListBox)
|
|
self.assertIsInstance(pop.entry, Gtk.Entry)
|
|
|
|
self.assertEqual(pop.entry.get_placeholder_text(), "New Playlist")
|
|
self.assertEqual(pop.entry.get_icon_name(Gtk.EntryIconPosition.PRIMARY),
|
|
"list-add")
|
|
|
|
self.assertEqual(pop.get_child(), pop.box)
|
|
self.assertIn(pop.listbox, pop.box)
|
|
self.assertIn(pop.entry, pop.box)
|
|
|
|
def test_add_popover_row(self):
|
|
tag = tagdb.tags.User["Favorites"]
|
|
row = popover.AddPopoverRow(tag)
|
|
|
|
self.assertEqual(popover.Exclude,
|
|
[ "Collection", "New Tracks", "Previous" ])
|
|
self.assertEqual(popover.Icons, { "Favorites" : "emblem-favorites",
|
|
"Up Next" : "edit-redo" })
|
|
|
|
self.assertIsInstance(row.box, Gtk.Box)
|
|
self.assertIsInstance(row.icon, Gtk.Image)
|
|
self.assertIsInstance(row.label, Gtk.Label)
|
|
|
|
self.assertEqual(row.tag, tag)
|
|
self.assertEqual(row.icon.get_icon_name(), "emblem-favorites")
|
|
self.assertEqual(row.label.get_text(), "Favorites")
|
|
self.assertEqual(row.box.get_spacing(), 5)
|
|
self.assertEqual(row.get_child(), row.box)
|
|
|
|
self.assertIn(row.icon, row.box)
|
|
self.assertIn(row.label, row.box)
|
|
|
|
def test_add_popover_list(self):
|
|
pop = popover.AddPopover()
|
|
user = tagdb.tags.User
|
|
|
|
self.assertEqual(pop.listbox.get_row_at_index(0).tag, user["Favorites"])
|
|
self.assertEqual(pop.listbox.get_row_at_index(1).tag, user["Up Next"])
|
|
self.assertIsNone(pop.listbox.get_row_at_index(2))
|
|
|
|
tag = user.add("Test")
|
|
self.assertEqual(pop.listbox.get_row_at_index(0).tag, user["Favorites"])
|
|
self.assertEqual(pop.listbox.get_row_at_index(1).tag, user["Test"])
|
|
self.assertEqual(pop.listbox.get_row_at_index(2).tag, user["Up Next"])
|
|
self.assertIsNone(pop.listbox.get_row_at_index(3))
|
|
|
|
user.remove(tag)
|
|
self.assertEqual(pop.listbox.get_row_at_index(0).tag, user["Favorites"])
|
|
self.assertEqual(pop.listbox.get_row_at_index(1).tag, user["Up Next"])
|
|
self.assertIsNone(pop.listbox.get_row_at_index(2))
|
|
|
|
def test_add_popover_entry(self):
|
|
pop = popover.AddPopover()
|
|
pop.entry.set_text("Test")
|
|
|
|
pop.entry_activate(pop.entry)
|
|
tag = tagdb.tags.User["Test"]
|
|
|
|
self.assertIsNotNone(tag)
|
|
self.assertEqual(pop.entry.get_text(), "")
|