source: josm/trunk/test/unit/org/openstreetmap/josm/gui/JosmUserIdentityManagerTest.groovy @ 7938

Last change on this file since 7938 was 7938, checked in by bastiK, 8 years ago

add more subversion property svn:eol=native

  • Property svn:eol-style set to native
File size: 7.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui;
3
4import static org.junit.Assert.*
5
6import org.junit.BeforeClass
7import org.junit.Test
8import org.openstreetmap.josm.JOSMFixture
9import org.openstreetmap.josm.Main
10import org.openstreetmap.josm.data.osm.UserInfo
11
12class JosmUserIdentityManagerTest {
13
14        final shouldFail = new GroovyTestCase().&shouldFail
15
16        @BeforeClass
17        public static void initTestCase() {
18            JOSMFixture.createUnitTestFixture().init()
19        }
20
21        @Test
22        public void test_SingletonAccess() {
23
24                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
25
26                // created ?
27                assert im != null
28
29                // registered as listener ?
30                assert Main.pref.@listeners.contains(im)
31
32                JosmUserIdentityManager im2 = JosmUserIdentityManager.getInstance()
33
34                // only one instance
35                assert im == im2
36        }
37
38        @Test
39        public void test_setAnonymouse() {
40                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
41
42                im.setPartiallyIdentified "test"
43                im.setAnonymous()
44
45                assert im.isAnonymous()
46                assert ! im.isPartiallyIdentified()
47                assert ! im.isFullyIdentified()
48
49                assert im.getUserId() == 0
50                assert im.getUserName() == null
51                assert im.getUserInfo() == null
52        }
53
54        @Test
55        public void test_setPartiallyIdentified() {
56                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
57
58                im.setPartiallyIdentified "test"
59
60                shouldFail(IllegalArgumentException) {
61                    im.setPartiallyIdentified null
62                }
63
64                shouldFail(IllegalArgumentException) {
65                        im.setPartiallyIdentified ""
66                }
67
68                shouldFail(IllegalArgumentException) {
69                        im.setPartiallyIdentified "  \t  "
70                }
71
72                im.setPartiallyIdentified "test"
73
74                assert ! im.isAnonymous()
75                assert im.isPartiallyIdentified()
76                assert ! im.isFullyIdentified()
77
78                assert im.getUserId() == 0
79                assert im.getUserName() == "test"
80                assert im.getUserInfo() == null
81        }
82
83
84        @Test
85        public void test_setFullyIdentified() {
86                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
87
88                UserInfo userInfo = new UserInfo(id: 1, description: "a description")
89
90                im.setFullyIdentified "test", userInfo
91
92                shouldFail(IllegalArgumentException) {
93                        im.setFullyIdentified null, userInfo
94                }
95                shouldFail(IllegalArgumentException) {
96                        im.setFullyIdentified "", userInfo
97                }
98                shouldFail(IllegalArgumentException) {
99                        im.setFullyIdentified " \t ", userInfo
100                }
101                shouldFail(IllegalArgumentException) {
102                        im.setFullyIdentified "test", null
103                }
104
105                im.setFullyIdentified "test", userInfo
106
107                assert ! im.isAnonymous()
108                assert ! im.isPartiallyIdentified()
109                assert im.isFullyIdentified()
110
111                assert im.getUserId() == 1
112                assert im.getUserName() == "test"
113                assert im.getUserInfo() == userInfo
114        }
115
116        /**
117         * Preferences include neither an url nor a user name => we have
118         * an anonymous user
119         */
120        @Test
121        public void initFromPreferences_1() {
122                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
123
124                // reset it
125                im.@userName = null
126                im.@userInfo = null
127
128                Main.pref.put "osm-server.url", null
129                Main.pref.put "osm-server.username", null
130
131                im.initFromPreferences()
132
133                assert im.isAnonymous()
134        }
135
136        /**
137         * Preferences include neither an url nor a user name => we have
138         * an annoymous user
139         */
140        @Test
141        public void initFromPreferences_2() {
142                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
143
144                // reset it
145                im.@userName = null
146                im.@userInfo = null
147
148                // for this test we disable the listener
149                Main.pref.removePreferenceChangeListener im
150
151                Main.pref.put "osm-server.url", "http://api.openstreetmap.org"
152                Main.pref.put "osm-server.username", null
153
154                im.initFromPreferences()
155
156                assert im.isAnonymous()
157        }
158
159        /**
160         * Preferences include an user name => we have a partially identified user
161         */
162        @Test
163        public void initFromPreferences_3() {
164                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
165
166        // for this test we disable the listener
167                Main.pref.removePreferenceChangeListener im
168
169                // reset it
170                im.@userName = null
171                im.@userInfo = null
172
173                Main.pref.put "osm-server.url", "http://api.openstreetmap.org"
174                Main.pref.put "osm-server.username", "test"
175
176                im.initFromPreferences()
177
178                assert im.isPartiallyIdentified()
179        }
180
181        /**
182         * Preferences include an user name which is different from the current
183         * user name and we are currently fully identifed => josm user becomes
184         * partially identified
185         */
186        @Test
187        public void initFromPreferences_4() {
188                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
189
190        // for this test we disable the listener
191                Main.pref.removePreferenceChangeListener im
192
193                im.setFullyIdentified "test1", new UserInfo(id: 1)
194
195                Main.pref.put "osm-server.url", "http://api.openstreetmap.org"
196                Main.pref.put "osm-server.username", "test2"
197
198                im.initFromPreferences()
199
200                assert im.isPartiallyIdentified()
201        }
202
203        /**
204         * Preferences include an user name which is the same as the current
205         * user name and we are currently fully identifed => josm user remains
206         * fully identified
207         */
208        @Test
209        public void initFromPreferences_5() {
210                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
211
212        // for this test we disable the listener
213                Main.pref.removePreferenceChangeListener im
214
215                im.setFullyIdentified "test1", new UserInfo(id: 1)
216
217                Main.pref.put "osm-server.url", "http://api.openstreetmap.org"
218                Main.pref.put "osm-server.username", "test1"
219
220                im.initFromPreferences()
221
222                assert im.isFullyIdentified()
223        }
224
225        @Test
226        public void apiUrlChanged() {
227                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
228
229                // make sure im is a preference change listener
230                Main.pref.addPreferenceChangeListener im
231
232                // reset it
233                im.@userName = null
234                im.@userInfo = null
235
236                Main.pref.put "osm-server.url", "http://api.openstreetmap.org"
237                assert im.isAnonymous()
238
239         Main.pref.put "osm-server.url", null
240         assert im.isAnonymous()
241
242                // reset it
243                im.@userName = "test"
244                im.@userInfo = null
245
246                Main.pref.put "osm-server.url", "http://api.openstreetmap.org"
247                assert im.isPartiallyIdentified()
248                assert im.getUserName() == "test"
249
250                Main.pref.put "osm-server.url", null
251                assert im.isAnonymous()
252
253                // reset it
254                im.@userName = "test"
255                im.@userInfo = new UserInfo(id:1)
256
257                Main.pref.put "osm-server.url", "http://api.openstreetmap.org"
258                assert im.isPartiallyIdentified()
259                assert im.getUserName() == "test"
260
261                // reset it
262                im.@userName = "test"
263                im.@userInfo = new UserInfo(id:1)
264
265
266                Main.pref.put "osm-server.url", null
267                assert im.isAnonymous()
268        }
269
270        @Test
271        public void userNameChanged() {
272                JosmUserIdentityManager im = JosmUserIdentityManager.getInstance()
273
274                // make sure im is a preference change listener
275                Main.pref.addPreferenceChangeListener im
276
277                // reset it
278                im.@userName = null
279                im.@userInfo = null
280
281                Main.pref.put "osm-server.username", "test"
282                assert im.isPartiallyIdentified()
283                assert im.getUserName() == "test"
284
285                Main.pref.put "osm-server.username", null
286                assert im.isAnonymous()
287
288                // reset it
289                im.@userName = "test1"
290                im.@userInfo = null
291
292                Main.pref.put "osm-server.username", "test2"
293                assert im.isPartiallyIdentified()
294                assert im.getUserName() == "test2"
295
296                Main.pref.put "osm-server.username", null
297                assert im.isAnonymous()
298
299                // reset it
300                im.@userName = "test1"
301                im.@userInfo = new UserInfo(id:1)
302
303                Main.pref.put "osm-server.username", "test2"
304                assert im.isPartiallyIdentified()
305                assert im.getUserName() == "test2"
306
307                // reset it
308                im.@userName = "test1"
309                im.@userInfo = new UserInfo(id:1)
310
311
312                Main.pref.put "osm-server.username", null
313                assert im.isAnonymous()
314        }
315}
Note: See TracBrowser for help on using the repository browser.