Merge lp:~aacid/unity-greeter/remote_test_fake_rls_signals into lp:unity-greeter

Proposed by Albert Astals Cid
Status: Merged
Merged at revision: 525
Proposed branch: lp:~aacid/unity-greeter/remote_test_fake_rls_signals
Merge into: lp:unity-greeter
Diff against target: 101 lines (+82/-2)
1 file modified
src/user-list.vala (+82/-2)
To merge this branch: bzr merge lp:~aacid/unity-greeter/remote_test_fake_rls_signals
Reviewer Review Type Date Requested Status
Michael Terry (community) Needs Fixing
Review via email: mp+121000@code.launchpad.net

Commit message

Add some more tests for cases that reproduce what a r-l-s signal would call

Description of the change

Add some more tests for cases that reproduce what a r-l-s signal would call

To post a comment you must log in.
Revision history for this message
Michael Terry (mterry) wrote :

This acts weird. I entered "password" first, acted normally. Then I went back and entered delay1, and it replaced my normal "Remote Login" with "Corporate Remote Login", which I didn't expect?

Also, the "delay" options seem to add the normal options, then wait 5 seconds, then replace them with their own? I think we don't want to add the normal options at all?

review: Needs Fixing
Revision history for this message
Albert Astals Cid (aacid) wrote :

Well, this is actually the expected outcome.

The remote-login-service daemon can send signals at any time saying the "Remote Login" servers changed ("delay1"), saying the available servers in a given "Remote Login" server changed ("delay2") or saying you need to re-autenticate against the current "Remote Login" server (delay3). So to exercise correctly those situations we add the normal servers and then execute the code.

For delay1 it means the "Remote Login" server we were using disappeared, so we need to clear it from the list along with the available servers in it

For delay2 it means the available servers to login changed and we need to update the list

For delay3 it means we need to reautenticate against the "Remote Login" server and thus drop the list of the servers to login since you're not allowed to see them anymore

Maybe i should have included this in the commit log :)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/user-list.vala'
2--- src/user-list.vala 2012-08-22 14:24:18 +0000
3+++ src/user-list.vala 2012-08-23 13:55:29 +0000
4@@ -367,8 +367,29 @@
5 string url = url_from_remote_loding_server_list_name (selected_entry.id);
6 if (UnityGreeter.test_mode)
7 {
8- test_fill_remote_login_servers (out server_list);
9- login_success = true;
10+ if (password_field.text == "password")
11+ {
12+ test_fill_remote_login_servers (out server_list);
13+ login_success = true;
14+ }
15+ else if (password_field.text == "delay1")
16+ {
17+ test_fill_remote_login_servers (out server_list);
18+ login_success = true;
19+ Timeout.add (5000, () => {test_call_set_remote_directory_servers (); return false;});
20+ }
21+ else if (password_field.text == "delay2")
22+ {
23+ test_fill_remote_login_servers (out server_list);
24+ login_success = true;
25+ Timeout.add (5000, () => {test_call_remote_login_servers_updated (); return false;});
26+ }
27+ else if (password_field.text == "delay3")
28+ {
29+ test_fill_remote_login_servers (out server_list);
30+ login_success = true;
31+ Timeout.add (5000, () => {remote_login_changed (currently_browsing_server_url, currently_browsing_server_email); return false;});
32+ }
33 }
34 else
35 yield remote_login_service.get_servers_for_login(url, email, password_field.text, true, out login_success, out dataType, out server_list);
36@@ -984,6 +1005,65 @@
37
38 }
39
40+ private void test_call_set_remote_directory_servers ()
41+ {
42+ RemoteServer[] test_server_list = {};
43+ RemoteServer remote_server = RemoteServer();
44+ remote_server.type = "uccs";
45+ remote_server.name = "Corporate Remote Login";
46+ remote_server.url = "http://internalcompayserver.com";
47+ remote_server.last_used_server = false;
48+ remote_server.fields = {};
49+ RemoteServerField field1 = RemoteServerField();
50+ field1.type = "email";
51+ RemoteServerField field2 = RemoteServerField();
52+ field2.type = "password";
53+ remote_server.fields += field1;
54+ remote_server.fields += field2;
55+
56+ test_server_list += remote_server;
57+ set_remote_directory_servers (test_server_list);
58+ }
59+
60+ private void test_call_remote_login_servers_updated ()
61+ {
62+ RemoteServer[] server_list = {};
63+ RemoteServer remote_server1 = RemoteServer();
64+ remote_server1.type = "rdp";
65+ remote_server1.name = "Cool RDP server";
66+ remote_server1.url = "http://coolrdpserver.com";
67+ remote_server1.last_used_server = false;
68+ remote_server1.fields = {};
69+ RemoteServerField field1 = RemoteServerField();
70+ field1.type = "username";
71+ RemoteServerField field2 = RemoteServerField();
72+ field2.type = "password";
73+ RemoteServerField field3 = RemoteServerField();
74+ field3.type = "domain";
75+ remote_server1.fields += field1;
76+ remote_server1.fields += field2;
77+ remote_server1.fields += field3;
78+
79+ RemoteServer remote_server2 = RemoteServer();
80+ remote_server2.type = "rdp";
81+ remote_server2.name = "MegaCool RDP server";
82+ remote_server2.url = "http://megacoolrdpserver.com";
83+ remote_server2.last_used_server = false;
84+ remote_server2.fields = {};
85+ RemoteServerField field21 = RemoteServerField();
86+ field21.type = "username";
87+ RemoteServerField field22 = RemoteServerField();
88+ field22.type = "password";
89+ remote_server2.fields += field21;
90+ remote_server2.fields += field22;
91+
92+ server_list.resize(2);
93+ server_list[0] = remote_server1;
94+ server_list[1] = remote_server2;
95+
96+ remote_login_servers_updated (currently_browsing_server_url, currently_browsing_server_email, "", server_list);
97+ }
98+
99 private void test_fill_remote_login_servers (out RemoteServer[] server_list)
100 {
101 string[] domains = {"SCANNERS", "PRINTERS", "ROUTERS"};

Subscribers

People subscribed via source and target branches