fixed changes to namespaces
[wifi-assistant] / package / test / unit / settings / network_settings_test.py
1 from gnome import gconf
2 from wifi_assistant.settings.network_settings import NetworkSettings
3 from wifi_assistant.settings.network_setting import NetworkSetting
4
5 import unittest
6
7 class NetworkSettingsTest(unittest.TestCase):
8
9     def setUp(self):
10         self.gc = gconf.client_get_default()
11         self.root = '/apps/maemo/wifi/unit_tests'
12         self._clearGConf(self.root)
13         self._setupDefaultValues(self.root)
14         self.testee = NetworkSettings(self.gc, self.root)
15     
16         
17     def _setupDefaultValues(self, dir):
18         #settings = NetworkSetting()
19         #settings.setBrowserOption("url", "http://wifi-assistant.wendt.se/")
20         #settings.setNameOfBrowserToLaunch("default")
21         #settings.setNetworkName("default_settings")
22         #self.testee.save(settings)
23         #self.gc.set_string(dir + '/default_settings/options/url', 'http://wifi-assistant.wendt.se/')
24         #self.gc.set_string(dir + '/default_settings/browser', 'default')
25         # moved this into code for now
26         return
27     
28         
29     def _clearGConf(self, dir):
30         # there's no recursive_unset available
31         all_entries = self.gc.all_entries(dir)
32         for entry in all_entries:
33             self.gc.unset(entry.get_key())
34         for sub_dir in self.gc.all_dirs(dir):
35             self._clearGConf(sub_dir)
36         self.gc.suggest_sync()
37         
38         
39
40     def _createSettings(self, ssid):
41         return NetworkSetting({'name':ssid})
42
43
44     def test_an_unkown_ssid_returns_None(self):
45         settings = self.testee.get('unknown')
46         assert settings is None
47         
48     
49     def test_saving_works(self):
50         ssid = 'test'
51         settings = self._createSettings(ssid)
52         
53          # make sure it's empty first
54         assert self.testee.get(ssid) is None
55         
56         self.testee.save(settings)
57         assert self.testee.get(ssid) is not None
58         
59         
60     def test_removing_network_setting_works(self):
61         ssid = 'test'
62         settings = self._createSettings(ssid)
63         
64          # make sure it's empty first
65         assert self.testee.get(ssid) is None
66         
67         self.testee.save(settings)
68         assert self.testee.get(ssid) is not None
69
70         self.testee.delete(settings)
71         value =  self.testee.get(ssid)
72         assert value is None
73         
74     
75     def test_network_name_can_contain_space_dash_and_underscore(self):
76         ssid = 'This Is-My_Network'
77         settings = self._createSettings(ssid)
78         
79          # make sure it's empty first
80         assert self.testee.get(ssid) is None
81         
82         self.testee.save(settings)
83         value = self.testee.get(ssid)
84         assert value is not None
85         assert value.getNetworkName() == ssid
86         
87         
88     def test_default_settings(self):
89         defaults = self.testee.getDefaultSettings()
90         assert defaults.getNameOfBrowserToLaunch() == 'default'
91         browser_options = defaults.getBrowserOptions()
92         assert defaults.getLaunchingOfBrowserEnabled() is True
93         assert browser_options is not None
94         assert browser_options.has_key('url')
95         assert "http://" in browser_options['url']
96         
97         
98     def test_list(self):
99         ssid = 'This Is-My_Network'
100         settings = self._createSettings(ssid)
101         self.testee.save(settings)
102         
103         store = self.testee.getListStore()
104         assert store is not None
105         store_len = len(store)
106         assert store_len == 1
107
108
109     def test_adding_same_network_twice_joins_and_overwrites_settings(self):
110         pass
111         # FIXME: the list store needs update instead of append etc
112
113
114 if __name__ == '__main__':
115     unittest.main()
116