From 44d56ac2fa712567e06bda378f0a25c7a4e93db8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sat, 3 Nov 2018 23:09:12 +0100 Subject: [PATCH] Tests: Add a DataFormWidget test window --- test/gtk/dataform.py | 83 ++++++++++++++++++++++++++++++++++++++++++++ test/gtk/util.py | 23 ++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 test/gtk/dataform.py create mode 100644 test/gtk/util.py diff --git a/test/gtk/dataform.py b/test/gtk/dataform.py new file mode 100644 index 000000000..54b09bd0b --- /dev/null +++ b/test/gtk/dataform.py @@ -0,0 +1,83 @@ +from gi.repository import Gtk +import nbxmpp + +from gajim.gtk.dataform import DataFormWidget +from gajim.common.modules.dataforms import extend_form +from gajim.common.const import CSSPriority + +from test.gtk import util +util.load_style('gajim.css', CSSPriority.APPLICATION) + +FORM = ''' + + Bot Configuration + Fill out this form to configure your new bot! + + jabber:bot + + Section 1: Bot Info + + + + + + + + + + + Section 2: Features + + + + + + + news + search + + Section 3: Subscriber List + + 20 + + + + + + + + Section 4: Invitations + + Tell all your friends about your new bot! + + + +''' + +class DataFormWindow(Gtk.Window): + def __init__(self): + Gtk.Window.__init__(self, title="Data Form Test") + self.set_default_size(600, 600) + self._widget = DataFormWidget(extend_form(node=nbxmpp.Node(node=FORM))) + self.add(self._widget) + self.show() + +win = DataFormWindow() +win.connect("destroy", Gtk.main_quit) +win.show_all() +Gtk.main() diff --git a/test/gtk/util.py b/test/gtk/util.py new file mode 100644 index 000000000..d09a573cb --- /dev/null +++ b/test/gtk/util.py @@ -0,0 +1,23 @@ +from pathlib import Path + +from gi.repository import Gdk +from gi.repository import Gtk + + +def get_gajim_dir(): + gajim_path = Path(__file__) / '..' / '..' / '..' / 'gajim' + return gajim_path.resolve() + +def load_style(filename, priority): + path = get_gajim_dir() / 'data' / 'style' / filename + try: + with open(str(path), "r") as file: + css = file.read() + except Exception as exc: + print(exc) + return + provider = Gtk.CssProvider() + provider.load_from_data(bytes(css.encode('utf-8'))) + Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), + provider, + priority)