rewrote settings and daemon - Bug #11109
[wifi-assistant] / package / test / unit / test_Daemon.py
1 from gnome import gconf
2 from wifi_assistant.daemon import Daemon
3 from wifi_assistant.settings.NetworkSetting import NetworkSetting
4
5 import unittest
6 from pie import *
7
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)
18
19 class DaemonTest(unittest.TestCase):
20
21     def replayMocks(self):
22         self.application_settings.replay()
23         self.launcher.replay()
24         self.network_settings.replay()
25
26     def setUp(self):
27         self.launcher = Mock()
28         self.application_settings = Mock()
29         self.network_settings = Mock()
30         self.parent_window = None
31         
32     def createTesteeWithPopupClickingYes(self):
33         given(self.application_settings).getUsePopup().willReturn(True)
34         self.testee = Daemon(self.launcher, self.application_settings, self.network_settings, self.parent_window)
35         
36         def yes(*args, **kwargs):
37             return True
38         self.testee.showDecisionDialog = yes
39
40     def createTesteeWithPopupClickingNo(self):
41         given(self.application_settings).getUsePopup().willReturn(True)
42         self.testee = Daemon(self.launcher, self.application_settings, self.network_settings, self.parent_window)
43         
44         def no(*args, **kwargs):
45             return False
46         self.testee.showDecisionDialog = no
47
48     def test_withANewNetwork_whenUserClicksYes_browserIsLaunched(self):
49         # GIVEN
50         self.createTesteeWithPopupClickingYes()
51         given(self.network_settings).get(ssid).willReturn(None)
52         given(self.network_settings).getDefaultSettings().willReturn(default_settings)
53         
54         # WHEN
55         self.replayMocks()
56         self.testee.connectionEstablished(ssid)
57         
58         # THEN
59         verify(self.network_settings).getDefaultSettings()
60         verify(self.launcher).launchBrowser(default_browser_name, default_browser_options)
61         
62     def test_withANewNetwork_whenUserClicksNo_browserIsNotLaunched(self):
63         self.createTesteeWithPopupClickingNo()
64         given(self.network_settings).get(ssid).willReturn(None)
65
66         # WHEN
67         self.replayMocks()
68         self.testee.connectionEstablished(ssid)
69         
70         # THEN
71         verify(self.launcher, never()).launchBrowser(default_browser_name, default_browser_options)
72     
73     def test_popupIsNotOpenedIfPopupIsDisabledInApplicationSettings(self):
74         given(self.application_settings).getUsePopup().willReturn(False)
75         self.testee = Daemon(self.launcher, self.application_settings, self.network_settings, self.parent_window)
76         
77         self.replayMocks()
78         self.testee.connectionEstablished(ssid)
79         
80         verify(self.launcher, never()).launchBrowser()
81         verify(self.network_settings, never()).get(ssid)
82     
83     def test_knownSsidWithLaunchSetToTrueUsesDefaultBrowserAndUrl(self):
84         given(self.network_settings).get(ssid).willReturn(settings_without_options)
85         given(self.network_settings).getDefaultSettings().willReturn(default_settings)
86         given(self.application_settings).getUsePopup().willReturn(True)
87         self.testee = Daemon(self.launcher, self.application_settings, self.network_settings, self.parent_window)
88         
89         self.replayMocks()
90         self.testee.connectionEstablished(ssid)
91         
92         verify(self.launcher, never()).launchBrowser(default_browser_name, default_browser_options)
93
94     
95 if __name__ == '__main__':
96     unittest.main()
97