1 from gnome import gconf
2 from wifi_assistant.daemon.daemon import Daemon
3 from wifi_assistant.settings.network_setting import NetworkSetting
8 url_to_open = 'http://wifi-assistant.garage.maemo.org'
9 default_browser_name = "default"
10 default_browser_options = {'url':url_to_open}
11 default_settings = NetworkSetting()
12 default_settings.setNameOfBrowserToLaunch(default_browser_name)
13 default_settings.setBrowserOptions(default_browser_options)
14 ssid = 'A Network Name'
15 settings_without_options = NetworkSetting()
16 settings_without_options.setNetworkName(ssid)
17 settings_without_options.setLaunchingOfBrowserEnabled(True)
19 class DaemonTest(unittest.TestCase):
22 self.launcher = Mock()
23 self.application_settings = Mock()
24 self.network_settings = Mock()
25 self.parent_window = None
28 def test_withANewNetwork_whenUserClicksYes_browserIsLaunched(self):
30 self._createTesteeWithPopupClickingYes()
31 given(self.network_settings).get(ssid).willReturn(None)
32 given(self.network_settings).getDefaultSettings().willReturn(default_settings)
36 self.testee.connectionEstablished(ssid)
39 verify(self.network_settings).getDefaultSettings()
40 verify(self.launcher).launchBrowser(default_browser_name, default_browser_options)
43 def test_withANewNetwork_whenUserClicksNo_browserIsNotLaunched(self):
44 self._createTesteeWithPopupClickingNo()
45 given(self.network_settings).get(ssid).willReturn(None)
49 self.testee.connectionEstablished(ssid)
52 verify(self.launcher, never()).launchBrowser(default_browser_name, default_browser_options)
55 def test_popupIsNotOpenedIfPopupIsDisabledInApplicationSettings(self):
56 given(self.application_settings).getUsePopup().willReturn(False)
57 self.testee = Daemon(self.launcher, self.application_settings, self.network_settings, self.parent_window)
60 self.testee.connectionEstablished(ssid)
62 verify(self.launcher, never()).launchBrowser()
63 # TODO: refactor out gui part (popup) and test/mock that
66 def test_knownSsidWithLaunchSetToTrueUsesDefaultBrowserAndUrl(self):
67 given(self.network_settings).get(ssid).willReturn(settings_without_options)
68 given(self.network_settings).getDefaultSettings().willReturn(default_settings)
69 given(self.application_settings).getUsePopup().willReturn(True)
70 #self.testee = Daemon(self.launcher, self.application_settings, self.network_settings, self.parent_window)
71 self.testee = self._createTestee()
74 self.testee.connectionEstablished(ssid)
76 verify(self.launcher, once()).launchBrowser(default_browser_name, default_browser_options)
79 def test_daemon_start_registersListenerWithApplicationSettings(self):
80 given(self.application_settings).getUsePopup().willReturn(True)
81 self.testee = self._createTestee()
82 given(self.application_settings).registerUsePopupListener(self.testee._usePopupEventCallback).willReturn(1234)
86 verify(self.application_settings, never()).registerUsePopupListener()
88 verify(self.application_settings, once()).registerUsePopupListener(self.testee._usePopupEventCallback)
90 verify(self.application_settings, never()).unregisterUsePopupListener()
92 verify(self.application_settings, once()).unregisterUsePopupListener(self.testee._usePopupEventCallback)
95 def _createTestee(self):
96 def _empty(*args, **kwargs):
98 daemon = Daemon(self.launcher, self.application_settings, self.network_settings, self.parent_window)
99 daemon._startLoop = _empty
103 def _createTesteeWithPopupClickingYes(self):
104 given(self.application_settings).getUsePopup().willReturn(True)
105 self.testee = self._createTestee()
107 def yes(*args, **kwargs):
109 self.testee.showDecisionDialog = yes
112 def _createTesteeWithPopupClickingNo(self):
113 given(self.application_settings).getUsePopup().willReturn(True)
114 self.testee = self._createTestee()
116 def no(*args, **kwargs):
118 self.testee.showDecisionDialog = no
121 def _replayMocks(self):
122 self.application_settings.replay()
123 self.launcher.replay()
124 self.network_settings.replay()
127 if __name__ == '__main__':