49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
# Copyright 2022 (c) Anna Schumaker.
|
|
"""Tests our application header."""
|
|
import emmental
|
|
import tests.util
|
|
import unittest.mock
|
|
from gi.repository import Gtk
|
|
from gi.repository import Adw
|
|
|
|
|
|
class TestHeader(tests.util.TestCase):
|
|
"""Test case for our custom Gtk.HeaderBar."""
|
|
|
|
def setUp(self):
|
|
"""Set up common variables."""
|
|
super().setUp()
|
|
self.header = emmental.header.Header(sql=self.sql, title="Test Title")
|
|
|
|
def test_constants(self):
|
|
"""Check that constants are set correctly."""
|
|
self.assertEqual(emmental.header.SUBTITLE, "The Cheesy Music Player")
|
|
|
|
def test_title(self):
|
|
"""Check that the title is set correctly."""
|
|
self.assertIsInstance(self.header, Gtk.HeaderBar)
|
|
self.assertIsInstance(self.header._title, Adw.WindowTitle)
|
|
|
|
self.assertEqual(self.header.get_title_widget(), self.header._title)
|
|
self.assertEqual(self.header.title, "Test Title")
|
|
self.assertEqual(self.header._title.get_title(), "Test Title")
|
|
|
|
self.assertEqual(self.header.subtitle, emmental.header.SUBTITLE)
|
|
self.assertEqual(self.header._title.get_subtitle(),
|
|
emmental.header.SUBTITLE)
|
|
|
|
def test_settings(self):
|
|
"""Check that the Settings window is set up correctly."""
|
|
self.assertIsInstance(self.header._settings, Gtk.Button)
|
|
self.assertIsInstance(self.header._window,
|
|
emmental.header.settings.Window)
|
|
|
|
self.assertEqual(self.header.sql, self.sql)
|
|
self.assertEqual(self.header._settings.get_icon_name(),
|
|
"settings-symbolic")
|
|
|
|
with unittest.mock.patch.object(self.header._window,
|
|
"present") as mock_present:
|
|
self.header._settings.emit("clicked")
|
|
mock_present.assert_called()
|