109 lines
4.4 KiB
Python
109 lines
4.4 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from . import menu
|
|
from lib import settings
|
|
from gi.repository import Gtk
|
|
import tagdb
|
|
import unittest
|
|
|
|
class TestAudioMenu(unittest.TestCase):
|
|
def setUp(self):
|
|
settings.reset()
|
|
|
|
def test_audio_menu_init(self):
|
|
button = menu.Button()
|
|
|
|
self.assertIsInstance(button, Gtk.MenuButton)
|
|
self.assertIsInstance(button.popover, Gtk.Popover)
|
|
self.assertIsInstance(button.overlay, Gtk.Overlay)
|
|
self.assertIsInstance(button.toggle, Gtk.ToggleButton)
|
|
self.assertIsInstance(button.grid, Gtk.Grid)
|
|
self.assertIsNotNone(button.icon)
|
|
|
|
self.assertTrue(button.has_css_class("normal-icons"))
|
|
self.assertTrue(button.grid.has_css_class("large-icons"))
|
|
|
|
self.assertEqual(button.grid.get_column_spacing(), 5)
|
|
self.assertEqual(button.get_popover(), button.popover)
|
|
self.assertEqual(button.popover.get_child(), button.grid)
|
|
self.assertEqual(button.toggle, button.get_first_child())
|
|
self.assertEqual(button.toggle.get_child(), button.overlay)
|
|
self.assertEqual(button.icon.get_margin_top(), 5)
|
|
|
|
self.assertIn(button.icon, button.overlay)
|
|
|
|
def test_audio_menu_counter_init(self):
|
|
button = menu.Button()
|
|
|
|
self.assertIsInstance(button.pause, Gtk.Image)
|
|
self.assertIsInstance(button.count, Gtk.Label)
|
|
self.assertIsInstance(button.counter, Gtk.Range)
|
|
|
|
self.assertEqual(button.pause.get_icon_name(), "media-playback-start")
|
|
self.assertEqual(button.count.get_text(), " ")
|
|
self.assertEqual(button.count.get_yalign(), 0)
|
|
self.assertEqual(button.counter.get_adjustment(), tagdb.Stack.Counter)
|
|
self.assertEqual(button.counter.get_digits(), 0)
|
|
self.assertTrue(button.counter.get_draw_value())
|
|
|
|
self.assertIn(button.pause, button.grid)
|
|
self.assertIn(button.counter, button.grid)
|
|
self.assertIn(button.count, button.overlay)
|
|
|
|
def test_audio_menu_counter(self):
|
|
button = menu.Button()
|
|
|
|
self.assertEqual(button.format_counter(button.counter, -1), "Keep Playing")
|
|
self.assertEqual(button.format_counter(button.counter, 0), "This Track")
|
|
self.assertEqual(button.format_counter(button.counter, 1), "Next Track")
|
|
self.assertEqual(button.format_counter(button.counter, 2), "2 Tracks")
|
|
|
|
tagdb.Stack.Counter.increment()
|
|
self.assertEqual(button.pause.get_icon_name(), "media-playback-pause")
|
|
self.assertEqual(button.count.get_text(), "0")
|
|
|
|
tagdb.Stack.Counter.decrement()
|
|
self.assertEqual(button.pause.get_icon_name(), "media-playback-start")
|
|
self.assertEqual(button.count.get_text(), " ")
|
|
|
|
def test_audio_menu_volume_init(self):
|
|
button = menu.Button()
|
|
adjustment = button.volume.get_adjustment()
|
|
|
|
self.assertIsInstance(button.vol_img, Gtk.Image)
|
|
self.assertIsInstance(button.volume, Gtk.Scale)
|
|
|
|
self.assertTrue(button.volume.get_draw_value())
|
|
|
|
self.assertEqual(settings.get_float("audio.volume"), 1.0)
|
|
self.assertEqual(adjustment.get_lower(), 0.0)
|
|
self.assertEqual(adjustment.get_upper(), 1.0)
|
|
self.assertEqual(adjustment.get_step_increment(), 0.05)
|
|
self.assertEqual(adjustment.get_value(), 1.0)
|
|
self.assertEqual(button.vol_img.get_icon_name(), "audio-volume-high-symbolic")
|
|
|
|
self.assertIn(button.vol_img, button.grid)
|
|
self.assertIn(button.volume, button.grid)
|
|
|
|
def test_audio_menu_volume(self):
|
|
button = menu.Button()
|
|
|
|
button.volume.set_value(0)
|
|
self.assertEqual(button.vol_img.get_icon_name(), "audio-volume-muted-symbolic")
|
|
self.assertEqual(settings.get("audio.volume"), "0.0")
|
|
self.assertEqual(button.get_volume(), 0.0)
|
|
|
|
button.volume.set_value(0.3)
|
|
self.assertEqual(button.vol_img.get_icon_name(), "audio-volume-low-symbolic")
|
|
self.assertEqual(settings.get("audio.volume"), "0.3")
|
|
self.assertEqual(button.get_volume(), 0.3)
|
|
|
|
button.volume.set_value(0.6)
|
|
self.assertEqual(button.vol_img.get_icon_name(), "audio-volume-medium-symbolic")
|
|
self.assertEqual(settings.get("audio.volume"), "0.6")
|
|
self.assertEqual(button.get_volume(), 0.6)
|
|
|
|
button.volume.set_value(0.9)
|
|
self.assertEqual(button.vol_img.get_icon_name(), "audio-volume-high-symbolic")
|
|
self.assertEqual(settings.get("audio.volume"), "0.9")
|
|
self.assertEqual(button.get_volume(), 0.9)
|