92 lines
3.0 KiB
Python
92 lines
3.0 KiB
Python
# Copyright 2019 (c) Anna Schumaker.
|
|
from . import gtk
|
|
import curds
|
|
import time
|
|
import unittest
|
|
from gi.repository import Gtk, GObject, GLib
|
|
|
|
class TestGtk(unittest.TestCase):
|
|
def setUp(self):
|
|
curds.reset()
|
|
|
|
def test_builder(self):
|
|
self.assertIsInstance(gtk.Builder, Gtk.Builder)
|
|
self.assertIsInstance(gtk.Builder.get_object("window"), Gtk.ApplicationWindow)
|
|
|
|
def fake_idle(self):
|
|
return GLib.SOURCE_CONTINUE
|
|
|
|
def test_window(self):
|
|
app = gtk.EmmentalApplication()
|
|
window = gtk.Builder.get_object("window")
|
|
thread = curds.ThreadQueue()
|
|
|
|
self.assertIsInstance(window, Gtk.ApplicationWindow)
|
|
self.assertIsNone(app.window)
|
|
|
|
thread.push(app.run)
|
|
gtk.main_loop(delay=0.1)
|
|
self.assertTrue(window.is_visible())
|
|
|
|
app.idle_id = GLib.idle_add(self.fake_idle)
|
|
app.quit()
|
|
gtk.main_loop(delay=0.1)
|
|
thread.stop()
|
|
self.assertEqual(app.idle_id, None)
|
|
|
|
def test_application(self):
|
|
self.assertIsInstance(gtk.Application, Gtk.Application)
|
|
|
|
def on_show_more(self, visible):
|
|
self.show_more = visible
|
|
|
|
def test_show_more(self):
|
|
self.show_more = None
|
|
curds.notify.register("show-more", self.on_show_more)
|
|
|
|
self.assertIsInstance(gtk.ShowMore, Gtk.ToggleButton)
|
|
self.assertIsInstance(gtk.UpArrow, Gtk.Image)
|
|
self.assertIsInstance(gtk.DownArrow, Gtk.Image)
|
|
|
|
self.assertFalse(gtk.ShowMore.get_active())
|
|
self.assertFalse(gtk.UpArrow.is_visible())
|
|
self.assertTrue( gtk.DownArrow.is_visible())
|
|
|
|
gtk.ShowMore.set_active(True)
|
|
self.assertTrue(self.show_more)
|
|
self.assertTrue( gtk.ShowMore.get_active())
|
|
self.assertTrue( gtk.UpArrow.is_visible())
|
|
self.assertFalse(gtk.DownArrow.is_visible())
|
|
|
|
gtk.ShowMore.set_active(False)
|
|
self.assertFalse(self.show_more)
|
|
self.assertFalse(gtk.ShowMore.get_active())
|
|
self.assertFalse(gtk.UpArrow.is_visible())
|
|
self.assertTrue( gtk.DownArrow.is_visible())
|
|
|
|
def test_accel(self):
|
|
play_button = gtk.Builder.get_object("play_button")
|
|
track_entry = gtk.Builder.get_object("track_search")
|
|
|
|
self.assertFalse(gtk.type_focused(Gtk.Entry))
|
|
track_entry.grab_focus()
|
|
self.assertTrue(gtk.type_focused(Gtk.Entry))
|
|
gtk.Window.grab_focus()
|
|
self.assertFalse(gtk.type_focused(Gtk.Entry))
|
|
|
|
signal = GObject.signal_lookup("activate", Gtk.Button)
|
|
self.assertTrue(play_button.can_activate_accel(signal))
|
|
track_entry.grab_focus()
|
|
self.assertFalse(play_button.can_activate_accel(signal))
|
|
|
|
gtk.Window.grab_focus()
|
|
self.assertFalse(gtk.ShowMore.get_active())
|
|
signal = GObject.signal_lookup("grab-focus", Gtk.SearchEntry)
|
|
|
|
self.assertTrue(track_entry.can_activate_accel(signal))
|
|
self.assertTrue(gtk.ShowMore.get_active())
|
|
|
|
track_entry.grab_focus()
|
|
self.assertFalse(track_entry.can_activate_accel(signal))
|
|
self.assertFalse(gtk.ShowMore.get_active())
|