+++ /dev/null
-#!/usr/bin/python2.5
-import gtk, hildon
-
-from launcher import Launcher
-from settings import Settings
-
-def _(str):
- return str
-
-class ConfigGui():
-
- def __init__(self, launcher, settings):
- self._launcher = launcher
- self._settings = settings
- self._program = hildon.Program.get_instance()
- self._win = hildon.StackableWindow()
- self._model= self._settings.getLaunchSettings()
-
-
- def main(self):
- self._win.set_title(_("Wifi Jail Breakout Assistant"))
- ssid_list = self._create_ssid_view(self._model)
- pannable_area= hildon.PannableArea()
- pannable_area.add(ssid_list)
- self._win.add(pannable_area)
- self._win.set_app_menu(self._create_menu())
- self._win.connect("destroy", gtk.main_quit, None)
- self._win.show_all()
- gtk.main()
-
-
- # FIXME: refactor out
- def _launch_browser(self, url):
- self._launcher.openUrl(url)
-
-
- def _show_about(self, x):
- dialog = gtk.Dialog(_('About'), self._win)
- text = "I got tired of not being able to connect easily to networks guarded by a login page, " + \
- "so I created this app to scratch that itch. It's free to use, inspect, adapt and share, " + \
- "licensed under a BSD type license.\nI hope you enjoy it!"
- about_label = gtk.Label(_(text))
- about_label.set_line_wrap(True)
- dialog.vbox.add(about_label)
-
- dialog.add_button(_('File a bug'), 1)
- dialog.add_button(_('Donate'), 2)
- dialog.add_button(_('Close'), 3)
-
- dialog.show_all()
- result = dialog.run()
- dialog.hide()
-
- if result == 1:
- self._launcher.openUrl(_('http://wifi-assistant.garage.maemo.org/bugs/'))
- if result == 2:
- self._launcher.openUrl(_('http://wifi-assistant.garage.maemo.org/donate/'))
-
-
- def _show_settings(self, x):
- checkbox = hildon.CheckButton(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT)
- checkbox.set_label(_('Show popup when connected to a new SSID'))
- checkbox.set_active(self._settings.getUsePopup())
-
- url_label = gtk.Label(_('URL to open when launching browser:')) # IMPROVEMENT: caption?
- url_label.set_alignment(0, 0.5)
- url_label.set_padding(5, 5)
- url_field = hildon.Entry(gtk.HILDON_SIZE_AUTO)
- url_field.set_text(self._settings.getUrlToOpen())
-
- dialog = gtk.Dialog(_('Settings'), self._win)
- dialog.vbox.set_homogeneous(False)
-
- dialog.vbox.add(checkbox)
- dialog.vbox.add(url_label)
- dialog.vbox.add(url_field)
-
- dialog.add_button(_('Cancel'), gtk.RESPONSE_CANCEL)
- dialog.add_button(_('Save'), gtk.RESPONSE_YES)
-
- dialog.show_all()
- result = dialog.run()
- dialog.hide()
-
- if result == gtk.RESPONSE_YES:
- self._settings.setUrlToOpen(url_field.get_text())
- self._settings.setUsePopup(checkbox.get_active())
-
-
- def _create_menu(self):
- menu = hildon.AppMenu()
-
- about = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
- about.set_label(_("About"))
- about.connect("clicked", self._show_about)
- menu.append(about)
-
- settings = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
- settings.set_label(_("Settings"))
- settings.connect("clicked",self._show_settings)
- menu.append(settings)
-
- add = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
- add.set_label(_("Add network"))
- add.connect("clicked", self._add_ssid)
- menu.append(add)
-
- delete = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
- delete.set_label(_("Delete networks"))
- delete.connect("clicked", self._delete_ssid)
- menu.append(delete)
-
- menu.show_all()
- return menu
-
-
- def _edit_ssid(self, ssid, model, iter):
- dialog = gtk.Dialog(ssid, self._win)
- dialog.vbox.set_homogeneous(False)
-
- dialog.add_button(_('No'), gtk.RESPONSE_NO)
- dialog.add_button(_('Yes'), gtk.RESPONSE_YES)
-
- label = gtk.Label(_('After being connected to ' + ssid + ' do you wish to launch a browser?')) #FIXME: l10n
- label.set_line_wrap(True)
- label.set_justify(gtk.JUSTIFY_LEFT)
- label.set_alignment(0, 0.5)
- dialog.vbox.add(label)
-
- dialog.show_all()
- result = dialog.run()
- dialog.hide()
-
- launchBrowser = None
- if result == gtk.RESPONSE_YES:
- launchBrowser = True
- elif result == gtk.RESPONSE_NO:
- launchBrowser = False
-
- if launchBrowser is not None:
- self._settings.setLaunchSetting(ssid, launchBrowser)
- model.set(iter, 1, launchBrowser)
-
-
- def _add_ssid(self, x):
- checkbox = hildon.CheckButton(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT)
- checkbox.set_label(_('Launch browser when connected'))
- checkbox.set_active(True)
-
- url_label = gtk.Label(_('Name of the network:')) # IMPROVEMENT: caption?
- url_label.set_alignment(0, 0.5)
- url_label.set_padding(5, 5)
- url_field = hildon.Entry(gtk.HILDON_SIZE_AUTO)
- url_field.set_text(_('MyNetwork'))
-
- dialog = gtk.Dialog(_('Add network'), self._win)
- dialog.vbox.set_homogeneous(False)
-
- dialog.vbox.add(url_label)
- dialog.vbox.add(url_field)
- dialog.vbox.add(checkbox)
-
- dialog.add_button(_('Cancel'), gtk.RESPONSE_CANCEL)
- dialog.add_button(_('Save'), gtk.RESPONSE_YES)
-
- dialog.show_all()
- result = dialog.run()
- dialog.hide()
-
-
- if result == gtk.RESPONSE_YES:
- launchBrowser = checkbox.get_active()
- ssid = url_field.get_text()
- self._settings.setLaunchSetting(ssid, launchBrowser)
- self._model.append([ssid, launchBrowser])
-
-
- def _delete_ssid(self, x):
- window = hildon.StackableWindow()
- window.set_border_width(6)
- toolbar = hildon.EditToolbar(_("Choose network settings to delete"), _("Delete"))
- window.set_edit_toolbar(toolbar)
-
- area = hildon.PannableArea()
- tree_view = self._create_delete_view()
- area.add(tree_view)
- window.add(area)
-
- toolbar.connect("button-clicked", self._delete_button_clicked, tree_view)
- toolbar.connect_object("arrow-clicked", gtk.Window.destroy, window)
-
- window.show_all()
- window.fullscreen()
-
-
- def _delete_button_clicked(self, button, treeview):
- selection = treeview.get_selection()
-
- (model, selected_rows) = selection.get_selected_rows()
-
- # TODO: are you sure?
-
- row_references = []
- for path in selected_rows:
- ref = gtk.TreeRowReference(model, path)
- row_references.append(ref)
-
- for ref in row_references:
- path = ref.get_path()
- iter = model.get_iter(path)
- ssid, x = model.get(iter, 0, 1)
- self._settings.deleteLaunchSetting(ssid)
- model.remove(iter)
-
- # TODO: close delete window?
-
-
- def _create_delete_view(self):
- tv = hildon.GtkTreeView(gtk.HILDON_UI_MODE_EDIT)
- renderer = gtk.CellRendererText()
- col = gtk.TreeViewColumn("Title", renderer, text=0)
-
- tv.append_column(col)
-
- # Set multiple selection mode
- selection = tv.get_selection()
- selection.set_mode(gtk.SELECTION_MULTIPLE)
-
- tv.set_model(self._model)
-
- return tv
-
-
- def _create_ssid_view(self, model):
-# view = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL, model)
-# view = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL, model)
-
- if len(model) == 0:
- return gtk.Label(_('There are no launch settings saved for any network'))
-
- view = gtk.TreeView(model)
- view.set_border_width(5)
-
- def boolean_func(column, cell, model, iter):
- if model.get_value(iter, 1):
- stock_id = 'gtk-yes'
- else:
- stock_id = 'gtk-no'
- cell.set_property('stock-id', stock_id)
-
- launch_cell = gtk.CellRendererPixbuf()
- launch_cell.set_fixed_size(100, 50)
- view.insert_column_with_data_func(1, _('Launch'), launch_cell, boolean_func)
-# toggle_cell = gtk.CellRendererToggle()
-# toggle_cell.set_fixed_size(100, 50)
-# view.append_column( gtk.TreeViewColumn( '', toggle_cell, active=1))
-
- tvcolumn = gtk.TreeViewColumn(_('SSID'), gtk.CellRendererText(), text = 0)
- tvcolumn.set_expand(True)
- view.append_column(tvcolumn)
-
- view.connect('row-activated', self._row_activated)
- view.set_search_column(0)
- tvcolumn.set_sort_column_id(0)
-
- return view
-
-
- def _row_activated(self, treeview, path, view_column):
- model = treeview.get_model()
- iter = model.get_iter(path)
- ssid = model.get_value(iter, 0)
- self._edit_ssid(ssid, model, iter)
-
-
-if __name__ == "__main__":
- gui = ConfigGui(Launcher(), Settings())
- gui.main()
--- /dev/null
+#!/usr/bin/python2.5
+import gtk, hildon
+
+def _(str):
+ return str
+
+class ConfigGui():
+
+ def __init__(self, launcher, application_settings, network_settings, hildon_program, hildon_window, list_store):
+ self._launcher = launcher
+ self._application_settings = application_settings
+ self._network_settings = network_settings
+ self._program = hildon_program
+ self._win = hildon_window
+ self._model= list_store
+
+
+ def main(self):
+ self._win.set_title(_("Wifi Jail Breakout Assistant"))
+ ssid_list = self._create_ssid_view(self._model)
+ pannable_area= hildon.PannableArea()
+ pannable_area.add(ssid_list)
+ self._win.add(pannable_area)
+ self._win.set_app_menu(self._create_menu())
+ self._win.connect("destroy", gtk.main_quit, None)
+ self._win.show_all()
+
+
+ # FIXME: refactor out
+ def _launch_browser(self, url):
+ self._launcher.openUrl(url)
+
+
+ def _show_about(self, x):
+ from wifi_assistant.gui.about_dialog import AboutDialog
+ AboutDialog(self._launcher, self._win).show()
+
+
+ def _show_settings(self, x):
+ from wifi_assistant.gui.application_settings_dialog import ApplicationSettingsDialog
+ use_popup = self._application_settings.getUsePopup()
+ url_to_open = self._network_settings.getDefaultSettings().getBrowserOptions()['url']
+ ApplicationSettingsDialog(self._win, self._save_callback).show(use_popup, url_to_open)
+
+
+ def _save_callback(self, popup, url):
+ self._application_settings.setUsePopup(popup)
+ settings = self._network_settings.getDefaultSettings()
+ settings.getBrowserOptions()['url'] = url
+ self._network_settings.save(settings)
+
+
+ def _create_menu(self):
+ menu = hildon.AppMenu()
+
+ about = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+ about.set_label(_("About"))
+ about.connect("clicked", self._show_about)
+ menu.append(about)
+
+ settings = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+ settings.set_label(_("Settings"))
+ settings.connect("clicked",self._show_settings)
+ menu.append(settings)
+
+ add = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+ add.set_label(_("Add network"))
+ add.connect("clicked", self._add_ssid)
+ menu.append(add)
+
+ delete = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+ delete.set_label(_("Delete networks"))
+ delete.connect("clicked", self._delete_ssid)
+ menu.append(delete)
+
+ menu.show_all()
+ return menu
+
+
+ def _edit_ssid(self, ssid, model, iter):
+ dialog = gtk.Dialog(ssid, self._win)
+ dialog.vbox.set_homogeneous(False)
+
+ dialog.add_button(_('No'), gtk.RESPONSE_NO)
+ dialog.add_button(_('Yes'), gtk.RESPONSE_YES)
+
+ label = gtk.Label(_('After being connected to ' + ssid + ' do you wish to launch a browser?')) #FIXME: l10n
+ label.set_line_wrap(True)
+ label.set_justify(gtk.JUSTIFY_LEFT)
+ label.set_alignment(0, 0.5)
+ dialog.vbox.add(label)
+
+ dialog.show_all()
+ result = dialog.run()
+ dialog.hide()
+
+ launchBrowser = None
+ if result == gtk.RESPONSE_YES:
+ launchBrowser = True
+ elif result == gtk.RESPONSE_NO:
+ launchBrowser = False
+
+ if launchBrowser is not None:
+ self._settings.setLaunchSetting(ssid, launchBrowser)
+ model.set(iter, 1, launchBrowser)
+
+
+ def _add_ssid(self, x):
+ from wifi_assistant.gui.add_network_dialog import AddNetworkDialog
+ AddNetworkDialog(self._win, self._add_ssid_callback).show()
+
+
+ def _add_ssid_callback(self, ssid, launch_browser):
+ settings = self._network_settings.getDefaultSettings()
+ settings.setNetworkName(ssid)
+ settings.setLaunchingOfBrowserEnabled(launch_browser)
+ self._network_settings.save(settings)
+ self._model.append([ssid, launchBrowser])
+
+
+ def _delete_ssid(self, x):
+ window = hildon.StackableWindow()
+ window.set_border_width(6)
+ toolbar = hildon.EditToolbar(_("Choose network settings to delete"), _("Delete"))
+ window.set_edit_toolbar(toolbar)
+
+ area = hildon.PannableArea()
+ tree_view = self._create_delete_view()
+ area.add(tree_view)
+ window.add(area)
+
+ toolbar.connect("button-clicked", self._delete_button_clicked, tree_view)
+ toolbar.connect_object("arrow-clicked", gtk.Window.destroy, window)
+
+ window.show_all()
+ window.fullscreen()
+
+
+ def _delete_button_clicked(self, button, treeview):
+ selection = treeview.get_selection()
+
+ (model, selected_rows) = selection.get_selected_rows()
+
+ # TODO: are you sure?
+
+ row_references = []
+ for path in selected_rows:
+ ref = gtk.TreeRowReference(model, path)
+ row_references.append(ref)
+
+ for ref in row_references:
+ path = ref.get_path()
+ iter = model.get_iter(path)
+ ssid, x = model.get(iter, 0, 1)
+ self._settings.deleteLaunchSetting(ssid)
+ model.remove(iter)
+
+ # TODO: close delete window?
+
+
+ def _create_delete_view(self):
+ tv = hildon.GtkTreeView(gtk.HILDON_UI_MODE_EDIT)
+ renderer = gtk.CellRendererText()
+ col = gtk.TreeViewColumn("Title", renderer, text=0)
+
+ tv.append_column(col)
+
+ # Set multiple selection mode
+ selection = tv.get_selection()
+ selection.set_mode(gtk.SELECTION_MULTIPLE)
+
+ tv.set_model(self._model)
+
+ return tv
+
+
+ def _create_ssid_view(self, model):
+# view = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL, model)
+# view = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL, model)
+
+ if len(model) == 0:
+ return gtk.Label(_('There are no launch settings saved for any network'))
+
+ view = gtk.TreeView(model)
+ view.set_border_width(5)
+
+ def boolean_func(column, cell, model, iter):
+ if model.get_value(iter, 1):
+ stock_id = 'gtk-yes'
+ else:
+ stock_id = 'gtk-no'
+ cell.set_property('stock-id', stock_id)
+
+ launch_cell = gtk.CellRendererPixbuf()
+ launch_cell.set_fixed_size(100, 50)
+ view.insert_column_with_data_func(1, _('Launch'), launch_cell, boolean_func)
+# toggle_cell = gtk.CellRendererToggle()
+# toggle_cell.set_fixed_size(100, 50)
+# view.append_column( gtk.TreeViewColumn( '', toggle_cell, active=1))
+
+ tvcolumn = gtk.TreeViewColumn(_('SSID'), gtk.CellRendererText(), text = 0)
+ tvcolumn.set_expand(True)
+ view.append_column(tvcolumn)
+
+ view.connect('row-activated', self._row_activated)
+ view.set_search_column(0)
+ tvcolumn.set_sort_column_id(0)
+
+ return view
+
+
+ def _row_activated(self, treeview, path, view_column):
+ model = treeview.get_model()
+ iter = model.get_iter(path)
+ ssid = model.get_value(iter, 0)
+ self._edit_ssid(ssid, model, iter)
--- /dev/null
+#!/usr/bin/python2.5
+import gtk, hildon
+
+def _(str):
+ return str
+
+class AboutDialog():
+
+ BUG_BUTTON = 1
+ DONATE_BUTTON = 2
+ CLOSE_BUTTON = 3
+
+ BUG_URL = 'http://wifi-assistant.garage.maemo.org/bugs/'
+ DONATE_URL = 'http://wifi-assistant.garage.maemo.org/donate/'
+
+ def __init__(self, launcher, parent_window):
+ self._launcher = launcher
+ self._parent_window = parent_window
+
+
+ def show(self):
+ dialog = gtk.Dialog(_('About Wifi Jail Brekaout Assistant'), self._parent_window)
+ text = "I got tired of not being able to connect easily to networks guarded by a login page, " + \
+ "so I created this app to scratch that itch. It's free to use, inspect, adapt and share, " + \
+ "licensed under a BSD type license.\nI hope you enjoy it!"
+
+ about_label = gtk.Label(_(text))
+ about_label.set_line_wrap(True)
+ dialog.vbox.add(about_label)
+
+ dialog.add_button(_('File a bug'), AboutDialog.BUG_BUTTON)
+ dialog.add_button(_('Donate'), AboutDialog.DONATE_BUTTON)
+ dialog.add_button(_('Close'), AboutDialog.CLOSE_BUTTON)
+
+ dialog.show_all()
+ result = self._runDialog(dialog)
+ dialog.hide()
+
+ if result == AboutDialog.BUG_BUTTON:
+ self._launcher.openUrl(_(AboutDialog.BUG_URL))
+ if result == AboutDialog.DONATE_BUTTON:
+ self._launcher.openUrl(_(AboutDialog.DONATE_URL))
+
+
+ def _runDialog(self, dialog):
+ result = dialog.run()
+ return result
--- /dev/null
+#!/usr/bin/python2.5
+import gtk, hildon
+
+def _(str):
+ return str
+
+class AddNetworkDialog():
+
+ CANCEL_BUTTON = 1
+ SAVE_BUTTON = 2
+
+ def __init__(self, parent_window, saveCallback):
+ """saveCallback(ssid, launch_browser)"""
+
+ self._parent_window = parent_window
+ self._saveCallback = saveCallback
+
+
+ def show(self, ssid=_('MyNetwork'), launch_browser=True):
+ checkbox = hildon.CheckButton(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT)
+ checkbox.set_label(_('Launch browser when connected'))
+ checkbox.set_active(launch_browser)
+
+ url_label = gtk.Label(_('Name of the network:')) # IMPROVEMENT: caption?
+ url_label.set_alignment(0, 0.5)
+ url_label.set_padding(5, 5)
+ url_field = hildon.Entry(gtk.HILDON_SIZE_AUTO)
+ url_field.set_text(ssid)
+
+ dialog = gtk.Dialog(_('Add network'), self._parent_window)
+ dialog.vbox.set_homogeneous(False)
+
+ dialog.vbox.add(url_label)
+ dialog.vbox.add(url_field)
+ dialog.vbox.add(checkbox)
+
+ dialog.add_button(_('Cancel'), AddNetworkDialog.CANCEL_BUTTON)
+ dialog.add_button(_('Save'), AddNetworkDialog.SAVE_BUTTON)
+
+ dialog.show_all()
+ result = self._runDialog(dialog)
+ dialog.hide()
+
+
+ if result == AddNetworkDialog.SAVE_BUTTON:
+ launch_browser = checkbox.get_active()
+ ssid = url_field.get_text()
+ self._saveCallback(ssid, launch_browser)
+
+
+ def _runDialog(self, dialog):
+ result = dialog.run()
+ return result
--- /dev/null
+#!/usr/bin/python2.5
+import gtk, hildon
+
+def _(str):
+ return str
+
+class ApplicationSettingsDialog():
+
+ CANCEL_BUTTON = 1
+ SAVE_BUTTON = 2
+
+ def __init__(self, parent_window, saveCallback):
+ """saveCallback(popup, url)"""
+
+ self._parent_window = parent_window
+ self._saveCallback = saveCallback
+
+
+ def show(self, use_popup, url_to_open):
+ checkbox = hildon.CheckButton(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT)
+ checkbox.set_label(_('Show popup when connected to a new SSID'))
+ checkbox.set_active(use_popup)
+
+ url_label = gtk.Label(_('URL to open when launching browser:')) # IMPROVEMENT: caption?
+ url_label.set_alignment(0, 0.5)
+ url_label.set_padding(5, 5)
+ url_field = hildon.Entry(gtk.HILDON_SIZE_AUTO)
+ url_field.set_text(url_to_open)
+
+ dialog = gtk.Dialog(_('Settings'), self._parent_window)
+ dialog.vbox.set_homogeneous(False)
+
+ dialog.vbox.add(checkbox)
+ dialog.vbox.add(url_label)
+ dialog.vbox.add(url_field)
+
+ dialog.add_button(_('Cancel'), ApplicationSettingsDialog.CANCEL_BUTTON)
+ dialog.add_button(_('Save'), ApplicationSettingsDialog.SAVE_BUTTON)
+
+ dialog.show_all()
+ result = self._runDialog(dialog)
+ dialog.hide()
+
+ if result == ApplicationSettingsDialog.SAVE_BUTTON:
+ self._saveCallback(checkbox.get_active(), url_field.get_text())
+
+
+ def _runDialog(self, dialog):
+ result = dialog.run()
+ return result
--- /dev/null
+#!/usr/bin/python2.5
+
+import gtk, gobject
+from gnome import gconf
+import hildon
+
+from wifi_assistant.launcher import Launcher
+from wifi_assistant.settings.ApplicationSettings import ApplicationSettings
+from wifi_assistant.settings.NetworkSettings import NetworkSettings
+from wifi_assistant.config_gui import ConfigGui
+
+def _(str):
+ return str
+
+if __name__ == "__main__":
+ gconf_client = gconf.client_get_default()
+ gconf_root_dir = '/apps/maemo/wifi_assistant'
+ network_settings = NetworkSettings(gconf_client, gconf_root_dir)
+ application_settings = ApplicationSettings(gconf_client, gconf_root_dir)
+ launcher = Launcher()
+ list_store = network_settings.getListStore()
+ hildon_program = hildon.Program.get_instance()
+ hildon_window = hildon.StackableWindow()
+
+ # put it all together
+ gui = ConfigGui(launcher, application_settings, network_settings, hildon_program, hildon_window, list_store)
+ gui.main()
+ gtk.main()
--- /dev/null
+from gnome import gconf
+from wifi_assistant.daemon import Daemon
+from wifi_assistant.gui.about_dialog import AboutDialog
+
+import unittest
+from unit.pie import *
+
+
+
+class AboutDialogTest(unittest.TestCase):
+
+ def setUp(self):
+ self.launcher = Mock()
+ self.launcher.replay()
+ self.testee = AboutDialog(self.launcher, None)
+
+
+ def test_bugButtonCallsLauncher(self):
+ self._makeRunDialogReturn(AboutDialog.BUG_BUTTON)
+ self.testee.show()
+ verify(self.launcher).openUrl(AboutDialog.BUG_URL)
+
+
+ def test_closeButtonDoesntCallLauncher(self):
+ self._makeRunDialogReturn(AboutDialog.CLOSE_BUTTON)
+ self.testee.show()
+ verify(self.launcher, never()).openUrl()
+
+
+ def test_donateButtonCallsLauncher(self):
+ self._makeRunDialogReturn(AboutDialog.DONATE_BUTTON)
+ self.testee.show()
+ verify(self.launcher).openUrl(AboutDialog.DONATE_URL)
+
+
+ def _makeRunDialogReturn(self, value):
+ class method():
+ def __init__(self, value_to_return):
+ self._value_to_return = value_to_return
+ def __call__(self, x):
+ return self._value_to_return
+ self.testee._runDialog = method(value)
+
+if __name__ == '__main__':
+ unittest.main()
+
--- /dev/null
+import unittest
+from unit.pie import *
+
+from wifi_assistant.gui.application_settings_dialog import ApplicationSettingsDialog
+
+class ApplicationSettingsDialogTest(unittest.TestCase):
+
+ def setUp(self):
+ self.parent_window = None
+ self.save_callback = Mock()
+
+ #given(self.save_callback).save().willReturn(None)
+ self.save_callback.replay()
+
+ self.testee = ApplicationSettingsDialog(self.parent_window, self.save_callback.save)
+
+
+ def test_cancelButtonDoesntCallSaveCallback(self):
+ self._makeRunDialogReturn(ApplicationSettingsDialog.CANCEL_BUTTON)
+ self.testee.show(False, '')
+ verify(self.save_callback, never()).save()
+
+
+ def test_saveButtonCallsSaveCallback(self):
+ self._makeRunDialogReturn(ApplicationSettingsDialog.SAVE_BUTTON)
+ self.testee.show(True, 'http://url')
+ verify(self.save_callback).save(True, 'http://url')
+
+
+ def _makeRunDialogReturn(self, value):
+ class method():
+ def __init__(self, value_to_return):
+ self._value_to_return = value_to_return
+ def __call__(self, x):
+ return self._value_to_return
+ self.testee._runDialog = method(value)
+
+if __name__ == '__main__':
+ unittest.main()
+
--- /dev/null
+import unittest
+from unit.pie import *
+
+from wifi_assistant.gui.add_network_dialog import AddNetworkDialog
+
+class AddNetworkDialogTest(unittest.TestCase):
+
+ def setUp(self):
+ self.parent_window = None
+ self.save_callback = Mock()
+
+ #given(self.save_callback).save().willReturn(None)
+ self.save_callback.replay()
+
+ self.testee = AddNetworkDialog(self.parent_window, self.save_callback.save)
+
+
+ def test_cancelButtonDoesntCallSaveCallback(self):
+ self._makeRunDialogReturn(AddNetworkDialog.CANCEL_BUTTON)
+ self.testee.show()
+ verify(self.save_callback, never()).save()
+
+
+ def test_saveButtonCallsSaveCallback(self):
+ self._makeRunDialogReturn(AddNetworkDialog.SAVE_BUTTON)
+ self.testee.show('A Network Name', True)
+ verify(self.save_callback).save('A Network Name', True)
+
+
+ def _makeRunDialogReturn(self, value):
+ class method():
+ def __init__(self, value_to_return):
+ self._value_to_return = value_to_return
+ def __call__(self, x):
+ return self._value_to_return
+ self.testee._runDialog = method(value)
+
+if __name__ == '__main__':
+ unittest.main()
+