emmental/sidebar/test_sidebar.py

79 lines
3.7 KiB
Python

# Copyright 2021 (c) Anna Schumaker.
from lib import settings
import audio
import sidebar
import unittest
from gi.repository import Gtk
class TestSidebar(unittest.TestCase):
def setUpClass():
sidebar.initialize()
def test_sidebar_init(self):
self.assertIsInstance(sidebar.Switcher, Gtk.Box)
self.assertIsInstance(sidebar.Stack, Gtk.Stack)
self.assertIsInstance(sidebar.Box, Gtk.Box)
self.assertIn(audio.Player.Artwork, sidebar.Box)
self.assertIn(sidebar.Stack, sidebar.Box)
self.assertIn(sidebar.pulser.Box, sidebar.Box)
def test_sidebar_pages(self):
self.assertTrue(sidebar.Switcher.has_css_class("osd"))
self.assertTrue(sidebar.Switcher.has_css_class("linked"))
self.assertTrue(sidebar.Switcher.has_css_class("large-icons"))
self.assertEqual(sidebar.Stack.get_transition_type(), Gtk.StackTransitionType.OVER_UP_DOWN)
self.assertEqual(settings.get("sidebar.page"), "Libraries")
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Libraries")
for toggle in sidebar.Toggles:
self.assertIsInstance(toggle, Gtk.ToggleButton)
self.assertIn(toggle, sidebar.Switcher)
self.assertTrue(toggle.get_vexpand())
self.assertIsInstance(sidebar.Stack.get_child_by_name("Playlists"),
sidebar.user.UserTagBox)
self.assertEqual(sidebar.Toggles[0].get_icon_name(), "audio-x-generic")
self.assertEqual(sidebar.Toggles[0].get_name(), "Playlists")
sidebar.Toggles[0].set_active(True)
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Playlists")
self.assertEqual(settings.get("sidebar.page"), "Playlists")
self.assertIsInstance(sidebar.Stack.get_child_by_name("Artists"),
sidebar.tagbox.ParentTagBox)
self.assertEqual(sidebar.Toggles[1].get_icon_name(), "avatar-default-symbolic")
self.assertEqual(sidebar.Toggles[1].get_name(), "Artists")
sidebar.Toggles[1].set_active(True)
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Artists")
self.assertEqual(settings.get("sidebar.page"), "Artists")
self.assertIsInstance(sidebar.Stack.get_child_by_name("Genres"),
sidebar.tagbox.TagBox)
self.assertEqual(sidebar.Toggles[2].get_icon_name(), "emblem-generic")
self.assertEqual(sidebar.Toggles[2].get_name(), "Genres")
sidebar.Toggles[2].set_active(True)
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Genres")
self.assertEqual(settings.get("sidebar.page"), "Genres")
self.assertIsInstance(sidebar.Stack.get_child_by_name("Decades"),
sidebar.tagbox.ParentTagBox)
self.assertEqual(sidebar.Toggles[3].get_icon_name(), "x-office-calendar")
self.assertEqual(sidebar.Toggles[3].get_name(), "Decades")
sidebar.Toggles[3].set_active(True)
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Decades")
self.assertEqual(settings.get("sidebar.page"), "Decades")
self.assertEqual(sidebar.Stack.get_child_by_name("Libraries"),
sidebar.library.Box)
self.assertEqual(sidebar.Toggles[4].get_icon_name(), "folder-music")
self.assertEqual(sidebar.Toggles[4].get_name(), "Libraries")
sidebar.Toggles[4].set_active(True)
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Libraries")
self.assertEqual(settings.get("sidebar.page"), "Libraries")
for toggle in sidebar.Toggles:
if toggle != sidebar.Toggles[-1]:
self.assertFalse(toggle.get_active())
else:
self.assertTrue(toggle.get_active())