diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/Communications/Tests/LoginServiceTests.cs | 241 |
1 files changed, 126 insertions, 115 deletions
diff --git a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs index d8d08c9..daa2a89 100644 --- a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs +++ b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs | |||
@@ -47,46 +47,54 @@ namespace OpenSim.Framework.Communications.Tests | |||
47 | [TestFixture] | 47 | [TestFixture] |
48 | public class LoginServiceTests | 48 | public class LoginServiceTests |
49 | { | 49 | { |
50 | /// <summary> | 50 | private string m_firstName = "Adam"; |
51 | /// Test the normal response to a login. Does not test authentication. | 51 | private string m_lastName = "West"; |
52 | /// </summary> | 52 | private string m_regionExternalName = "localhost"; |
53 | [Test] | 53 | |
54 | public void T010_NormalLoginResponse() | 54 | private IPEndPoint m_capsEndPoint; |
55 | private CommunicationsManager m_commsManager; | ||
56 | private TestLoginToRegionConnector m_regionConnector; | ||
57 | private LocalUserServices m_localUserServices; | ||
58 | private LoginService m_loginService; | ||
59 | private UserProfileData m_userProfileData; | ||
60 | |||
61 | [SetUp] | ||
62 | public void SetUpLoginEnviroment() | ||
55 | { | 63 | { |
56 | //log4net.Config.XmlConfigurator.Configure(); | 64 | m_capsEndPoint = new IPEndPoint(IPAddress.Loopback, 9123); |
65 | m_commsManager = new TestCommunicationsManager(new NetworkServersInfo(42, 43)); | ||
66 | m_regionConnector = new TestLoginToRegionConnector(); | ||
57 | 67 | ||
58 | string firstName = "Timmy"; | 68 | m_regionConnector.AddRegion(new RegionInfo(42, 43, m_capsEndPoint, m_regionExternalName)); |
59 | string lastName = "Mallet"; | ||
60 | string regionExternalName = "localhost"; | ||
61 | IPEndPoint capsEndPoint = new IPEndPoint(IPAddress.Loopback, 9123); | ||
62 | 69 | ||
63 | CommunicationsManager commsManager | 70 | m_localUserServices = (LocalUserServices) m_commsManager.UserService; |
64 | = new TestCommunicationsManager(new NetworkServersInfo(42, 43)); | 71 | m_localUserServices.AddUser(m_firstName,m_lastName,"boingboing","abc@ftw.com",42,43); |
65 | |||
66 | //commsManager.GridService.RegisterRegion( | ||
67 | // new RegionInfo(42, 43, capsEndPoint, regionExternalName)); | ||
68 | //commsManager.GridService.RegionLoginsEnabled = true; | ||
69 | 72 | ||
70 | //LoginService loginService | 73 | m_loginService = new LLStandaloneLoginService((UserManagerBase) m_localUserServices, "Hello folks", m_commsManager.InterServiceInventoryService, |
71 | // = new LocalLoginService( | 74 | m_commsManager.NetworkServersInfo, true, new LibraryRootFolder(String.Empty), m_regionConnector); |
72 | // (UserManagerBase)commsManager.UserService, "Hello folks", commsManager.InterServiceInventoryService, | ||
73 | // (LocalBackEndServices)commsManager.GridService, | ||
74 | // commsManager.NetworkServersInfo, false, new LibraryRootFolder(String.Empty)); | ||
75 | 75 | ||
76 | TestLoginToRegionConnector regionConnector = new TestLoginToRegionConnector(); | 76 | m_userProfileData = m_localUserServices.GetUserProfile(m_firstName, m_lastName); |
77 | regionConnector.AddRegion(new RegionInfo(42, 43, capsEndPoint, regionExternalName)); | 77 | } |
78 | 78 | ||
79 | LoginService loginService = new LLStandaloneLoginService((UserManagerBase)commsManager.UserService, "Hello folks", commsManager.InterServiceInventoryService, | 79 | /// <summary> |
80 | commsManager.NetworkServersInfo, false, new LibraryRootFolder(String.Empty), regionConnector); | 80 | /// Test the normal response to a login. Does not test authentication. |
81 | /// </summary> | ||
82 | [Test] | ||
83 | public void TestUnauthenticatedLogin() | ||
84 | { | ||
85 | // We want to use our own LoginService for this test, one that | ||
86 | // doesn't require authentication. | ||
87 | LoginService loginService = new LLStandaloneLoginService((UserManagerBase)m_commsManager.UserService, "Hello folks", m_commsManager.InterServiceInventoryService, | ||
88 | m_commsManager.NetworkServersInfo, false, new LibraryRootFolder(String.Empty), m_regionConnector); | ||
81 | 89 | ||
82 | Hashtable loginParams = new Hashtable(); | 90 | Hashtable loginParams = new Hashtable(); |
83 | loginParams["first"] = firstName; | 91 | loginParams["first"] = m_firstName; |
84 | loginParams["last"] = lastName; | 92 | loginParams["last"] = m_lastName; |
85 | loginParams["passwd"] = "boingboing"; | 93 | loginParams["passwd"] = "boingboing"; |
86 | 94 | ||
87 | ArrayList sendParams = new ArrayList(); | 95 | ArrayList sendParams = new ArrayList(); |
88 | sendParams.Add(loginParams); | 96 | sendParams.Add(loginParams); |
89 | sendParams.Add(capsEndPoint); // is this parameter correct? | 97 | sendParams.Add(m_capsEndPoint); // is this parameter correct? |
90 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? | 98 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? |
91 | 99 | ||
92 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); | 100 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); |
@@ -94,78 +102,48 @@ namespace OpenSim.Framework.Communications.Tests | |||
94 | XmlRpcResponse response = loginService.XmlRpcLoginMethod(request); | 102 | XmlRpcResponse response = loginService.XmlRpcLoginMethod(request); |
95 | Hashtable responseData = (Hashtable)response.Value; | 103 | Hashtable responseData = (Hashtable)response.Value; |
96 | 104 | ||
97 | Assert.That(responseData["first_name"], Is.EqualTo(firstName)); | 105 | Assert.That(responseData["first_name"], Is.EqualTo(m_firstName)); |
98 | Assert.That(responseData["last_name"], Is.EqualTo(lastName)); | 106 | Assert.That(responseData["last_name"], Is.EqualTo(m_lastName)); |
99 | Assert.That( | 107 | Assert.That( |
100 | responseData["circuit_code"], Is.GreaterThanOrEqualTo(0) & Is.LessThanOrEqualTo(Int32.MaxValue)); | 108 | responseData["circuit_code"], Is.GreaterThanOrEqualTo(0) & Is.LessThanOrEqualTo(Int32.MaxValue)); |
101 | 109 | ||
102 | Regex capsSeedPattern | 110 | Regex capsSeedPattern |
103 | = new Regex("^http://" | 111 | = new Regex("^http://" |
104 | + regionExternalName | 112 | + m_regionExternalName |
105 | + ":9000/CAPS/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{8}0000/$"); | 113 | + ":9000/CAPS/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{8}0000/$"); |
106 | 114 | ||
107 | Assert.That(capsSeedPattern.IsMatch((string)responseData["seed_capability"]), Is.True); | 115 | Assert.That(capsSeedPattern.IsMatch((string)responseData["seed_capability"]), Is.True); |
108 | } | 116 | } |
109 | 117 | ||
110 | [Test] | 118 | [Test] |
111 | public void T011_Auth_Login() | 119 | public void TestAuthenticatedLoginSuccess() |
112 | { | 120 | { |
113 | string firstName = "Adam"; | ||
114 | string lastName = "West"; | ||
115 | string regionExternalName = "localhost"; | ||
116 | IPEndPoint capsEndPoint = new IPEndPoint(IPAddress.Loopback, 9123); | ||
117 | |||
118 | CommunicationsManager commsManager | ||
119 | = new TestCommunicationsManager(new NetworkServersInfo(42, 43)); | ||
120 | |||
121 | LocalUserServices lus = (LocalUserServices)commsManager.UserService; | ||
122 | |||
123 | lus.AddUser(firstName,lastName,"boingboing","abc@ftw.com",42,43); | ||
124 | |||
125 | //commsManager.GridService.RegisterRegion( | ||
126 | // new RegionInfo(42, 43, capsEndPoint, regionExternalName)); | ||
127 | //commsManager.GridService.RegionLoginsEnabled = true; | ||
128 | |||
129 | //LoginService loginService | ||
130 | // = new LocalLoginService( | ||
131 | // (UserManagerBase)lus, "Hello folks", commsManager.InterServiceInventoryService, | ||
132 | // (LocalBackEndServices)commsManager.GridService, | ||
133 | // commsManager.NetworkServersInfo, true, new LibraryRootFolder(String.Empty)); | ||
134 | |||
135 | TestLoginToRegionConnector regionConnector = new TestLoginToRegionConnector(); | ||
136 | regionConnector.AddRegion(new RegionInfo(42, 43, capsEndPoint, regionExternalName)); | ||
137 | |||
138 | LoginService loginService = new LLStandaloneLoginService((UserManagerBase) lus, "Hello folks", commsManager.InterServiceInventoryService, | ||
139 | commsManager.NetworkServersInfo, true, new LibraryRootFolder(String.Empty), regionConnector); | ||
140 | |||
141 | // TODO: Not check inventory part of response yet. | 121 | // TODO: Not check inventory part of response yet. |
142 | // TODO: Not checking all of login response thoroughly yet. | 122 | // TODO: Not checking all of login response thoroughly yet. |
143 | 123 | ||
144 | // 1) Test for positive authentication | 124 | // 1) Test for positive authentication |
145 | 125 | ||
146 | Hashtable loginParams = new Hashtable(); | 126 | Hashtable loginParams = new Hashtable(); |
147 | loginParams["first"] = firstName; | 127 | loginParams["first"] = m_firstName; |
148 | loginParams["last"] = lastName; | 128 | loginParams["last"] = m_lastName; |
149 | loginParams["passwd"] = "boingboing"; | 129 | loginParams["passwd"] = "boingboing"; |
150 | 130 | ||
151 | ArrayList sendParams = new ArrayList(); | 131 | ArrayList sendParams = new ArrayList(); |
152 | sendParams.Add(loginParams); | 132 | sendParams.Add(loginParams); |
153 | sendParams.Add(capsEndPoint); // is this parameter correct? | 133 | sendParams.Add(m_capsEndPoint); // is this parameter correct? |
154 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? | 134 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? |
155 | 135 | ||
156 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); | 136 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); |
157 | 137 | ||
158 | XmlRpcResponse response = loginService.XmlRpcLoginMethod(request); | 138 | XmlRpcResponse response = m_loginService.XmlRpcLoginMethod(request); |
159 | Hashtable responseData = (Hashtable)response.Value; | 139 | Hashtable responseData = (Hashtable)response.Value; |
160 | 140 | ||
161 | UserProfileData uprof = lus.GetUserProfile(firstName,lastName); | 141 | UserAgentData uagent = m_userProfileData.CurrentAgent; |
162 | |||
163 | UserAgentData uagent = uprof.CurrentAgent; | ||
164 | Assert.That(uagent,Is.Not.Null); | 142 | Assert.That(uagent,Is.Not.Null); |
165 | 143 | ||
166 | Assert.That(responseData["first_name"], Is.Not.Null); | 144 | Assert.That(responseData["first_name"], Is.Not.Null); |
167 | Assert.That(responseData["first_name"], Is.EqualTo(firstName)); | 145 | Assert.That(responseData["first_name"], Is.EqualTo(m_firstName)); |
168 | Assert.That(responseData["last_name"], Is.EqualTo(lastName)); | 146 | Assert.That(responseData["last_name"], Is.EqualTo(m_lastName)); |
169 | Assert.That(responseData["agent_id"], Is.EqualTo(uagent.ProfileID.ToString())); | 147 | Assert.That(responseData["agent_id"], Is.EqualTo(uagent.ProfileID.ToString())); |
170 | Assert.That(responseData["session_id"], Is.EqualTo(uagent.SessionID.ToString())); | 148 | Assert.That(responseData["session_id"], Is.EqualTo(uagent.SessionID.ToString())); |
171 | Assert.That(responseData["secure_session_id"], Is.EqualTo(uagent.SecureSessionID.ToString())); | 149 | Assert.That(responseData["secure_session_id"], Is.EqualTo(uagent.SecureSessionID.ToString())); |
@@ -180,34 +158,38 @@ namespace OpenSim.Framework.Communications.Tests | |||
180 | 158 | ||
181 | Regex capsSeedPattern | 159 | Regex capsSeedPattern |
182 | = new Regex("^http://" | 160 | = new Regex("^http://" |
183 | + regionExternalName | 161 | + m_regionExternalName |
184 | + ":9000/CAPS/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{8}0000/$"); | 162 | + ":9000/CAPS/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{8}0000/$"); |
185 | 163 | ||
186 | Assert.That(capsSeedPattern.IsMatch((string)responseData["seed_capability"]), Is.True); | 164 | Assert.That(capsSeedPattern.IsMatch((string)responseData["seed_capability"]), Is.True); |
165 | } | ||
187 | 166 | ||
167 | [Test] | ||
168 | public void TestAuthenticatedLoginForBuddies() | ||
169 | { | ||
188 | // 1.1) Test for budddies! | 170 | // 1.1) Test for budddies! |
189 | lus.AddUser("Friend","Number1","boingboing","abc@ftw.com",42,43); | 171 | m_localUserServices.AddUser("Friend","Number1","boingboing","abc@ftw.com",42,43); |
190 | lus.AddUser("Friend","Number2","boingboing","abc@ftw.com",42,43); | 172 | m_localUserServices.AddUser("Friend","Number2","boingboing","abc@ftw.com",42,43); |
191 | 173 | ||
192 | UserProfileData friend1 = lus.GetUserProfile("Friend","Number1"); | 174 | UserProfileData friend1 = m_localUserServices.GetUserProfile("Friend","Number1"); |
193 | UserProfileData friend2 = lus.GetUserProfile("Friend","Number2"); | 175 | UserProfileData friend2 = m_localUserServices.GetUserProfile("Friend","Number2"); |
194 | lus.AddNewUserFriend(friend1.ID,uprof.ID,1); | 176 | m_localUserServices.AddNewUserFriend(friend1.ID,m_userProfileData.ID,1); |
195 | lus.AddNewUserFriend(friend1.ID,friend2.ID,2); | 177 | m_localUserServices.AddNewUserFriend(friend1.ID,friend2.ID,2); |
196 | 178 | ||
197 | loginParams = new Hashtable(); | 179 | Hashtable loginParams = new Hashtable(); |
198 | loginParams["first"] = "Friend"; | 180 | loginParams["first"] = "Friend"; |
199 | loginParams["last"] = "Number1"; | 181 | loginParams["last"] = "Number1"; |
200 | loginParams["passwd"] = "boingboing"; | 182 | loginParams["passwd"] = "boingboing"; |
201 | 183 | ||
202 | sendParams = new ArrayList(); | 184 | ArrayList sendParams = new ArrayList(); |
203 | sendParams.Add(loginParams); | 185 | sendParams.Add(loginParams); |
204 | sendParams.Add(capsEndPoint); // is this parameter correct? | 186 | sendParams.Add(m_capsEndPoint); // is this parameter correct? |
205 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? | 187 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? |
206 | 188 | ||
207 | request = new XmlRpcRequest("login_to_simulator", sendParams); | 189 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); |
208 | 190 | ||
209 | response = loginService.XmlRpcLoginMethod(request); | 191 | XmlRpcResponse response = m_loginService.XmlRpcLoginMethod(request); |
210 | responseData = (Hashtable)response.Value; | 192 | Hashtable responseData = (Hashtable)response.Value; |
211 | 193 | ||
212 | ArrayList friendslist = (ArrayList) responseData["buddy-list"]; | 194 | ArrayList friendslist = (ArrayList) responseData["buddy-list"]; |
213 | 195 | ||
@@ -217,89 +199,118 @@ namespace OpenSim.Framework.Communications.Tests | |||
217 | Hashtable buddy1 = (Hashtable) friendslist[0]; | 199 | Hashtable buddy1 = (Hashtable) friendslist[0]; |
218 | Hashtable buddy2 = (Hashtable) friendslist[1]; | 200 | Hashtable buddy2 = (Hashtable) friendslist[1]; |
219 | Assert.That(friendslist.Count, Is.EqualTo(2)); | 201 | Assert.That(friendslist.Count, Is.EqualTo(2)); |
220 | Assert.That(uprof.ID.ToString(), Is.EqualTo(buddy1["buddy_id"]) | Is.EqualTo(buddy2["buddy_id"])); | 202 | Assert.That(m_userProfileData.ID.ToString(), Is.EqualTo(buddy1["buddy_id"]) | Is.EqualTo(buddy2["buddy_id"])); |
221 | Assert.That(friend2.ID.ToString(), Is.EqualTo(buddy1["buddy_id"]) | Is.EqualTo(buddy2["buddy_id"])); | 203 | Assert.That(friend2.ID.ToString(), Is.EqualTo(buddy1["buddy_id"]) | Is.EqualTo(buddy2["buddy_id"])); |
204 | } | ||
205 | |||
206 | [Test] | ||
207 | public void TestAuthenticatedLoginBadUsername() | ||
208 | { | ||
222 | 209 | ||
223 | // 2) Test for negative authentication | 210 | // 2) Test for negative authentication |
224 | // | 211 | // |
225 | string error_auth_message = "Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist."; | 212 | string error_auth_message = "Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist."; |
226 | string error_xml_message = "Error connecting to grid. Could not percieve credentials from login XML."; | ||
227 | string error_already_logged = "You appear to be already logged in. " + | ||
228 | "If this is not the case please wait for your session to timeout. " + | ||
229 | "If this takes longer than a few minutes please contact the grid owner. " + | ||
230 | "Please wait 5 minutes if you are going to connect to a region nearby to the region you were at previously."; | ||
231 | //string error_region_unavailable = "The region you are attempting to log into is not responding. Please select another region and try again."; | 213 | //string error_region_unavailable = "The region you are attempting to log into is not responding. Please select another region and try again."; |
232 | // 2.1) Test for wrong user name | 214 | // 2.1) Test for wrong user name |
233 | loginParams = new Hashtable(); | 215 | Hashtable loginParams = new Hashtable(); |
234 | loginParams["first"] = lastName; | 216 | loginParams["first"] = m_lastName; |
235 | loginParams["last"] = firstName; | 217 | loginParams["last"] = m_firstName; |
236 | loginParams["passwd"] = "boingboing"; | 218 | loginParams["passwd"] = "boingboing"; |
237 | 219 | ||
238 | sendParams = new ArrayList(); | 220 | ArrayList sendParams = new ArrayList(); |
239 | sendParams.Add(loginParams); | 221 | sendParams.Add(loginParams); |
240 | sendParams.Add(capsEndPoint); // is this parameter correct? | 222 | sendParams.Add(m_capsEndPoint); // is this parameter correct? |
241 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? | 223 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? |
242 | 224 | ||
243 | request = new XmlRpcRequest("login_to_simulator", sendParams); | 225 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); |
244 | 226 | ||
245 | response = loginService.XmlRpcLoginMethod(request); | 227 | XmlRpcResponse response = m_loginService.XmlRpcLoginMethod(request); |
246 | responseData = (Hashtable)response.Value; | 228 | Hashtable responseData = (Hashtable)response.Value; |
247 | Assert.That(responseData["message"], Is.EqualTo(error_auth_message)); | 229 | Assert.That(responseData["message"], Is.EqualTo(error_auth_message)); |
248 | 230 | ||
231 | } | ||
232 | |||
233 | [Test] | ||
234 | public void TestAuthenticatedLoginBadPassword() | ||
235 | { | ||
236 | string error_auth_message = "Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist."; | ||
249 | // 2.2) Test for wrong password | 237 | // 2.2) Test for wrong password |
250 | loginParams = new Hashtable(); | 238 | Hashtable loginParams = new Hashtable(); |
251 | loginParams["first"] = "Friend"; | 239 | loginParams["first"] = "Friend"; |
252 | loginParams["last"] = "Number2"; | 240 | loginParams["last"] = "Number2"; |
253 | loginParams["passwd"] = "boing"; | 241 | loginParams["passwd"] = "boing"; |
254 | 242 | ||
255 | sendParams = new ArrayList(); | 243 | ArrayList sendParams = new ArrayList(); |
256 | sendParams.Add(loginParams); | 244 | sendParams.Add(loginParams); |
257 | sendParams.Add(capsEndPoint); // is this parameter correct? | 245 | sendParams.Add(m_capsEndPoint); // is this parameter correct? |
258 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? | 246 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? |
259 | 247 | ||
260 | request = new XmlRpcRequest("login_to_simulator", sendParams); | 248 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); |
261 | 249 | ||
262 | response = loginService.XmlRpcLoginMethod(request); | 250 | XmlRpcResponse response = m_loginService.XmlRpcLoginMethod(request); |
263 | responseData = (Hashtable)response.Value; | 251 | Hashtable responseData = (Hashtable)response.Value; |
264 | Assert.That(responseData["message"], Is.EqualTo(error_auth_message)); | 252 | Assert.That(responseData["message"], Is.EqualTo(error_auth_message)); |
265 | 253 | ||
254 | } | ||
255 | |||
256 | [Test] | ||
257 | public void TestAuthenticatedLoginBadXml() | ||
258 | { | ||
259 | string error_xml_message = "Error connecting to grid. Could not percieve credentials from login XML."; | ||
266 | // 2.3) Bad XML | 260 | // 2.3) Bad XML |
267 | loginParams = new Hashtable(); | 261 | Hashtable loginParams = new Hashtable(); |
268 | loginParams["first"] = "Friend"; | 262 | loginParams["first"] = "Friend"; |
269 | loginParams["banana"] = "Banana"; | 263 | loginParams["banana"] = "Banana"; |
270 | loginParams["passwd"] = "boingboing"; | 264 | loginParams["passwd"] = "boingboing"; |
271 | 265 | ||
272 | sendParams = new ArrayList(); | 266 | ArrayList sendParams = new ArrayList(); |
273 | sendParams.Add(loginParams); | 267 | sendParams.Add(loginParams); |
274 | sendParams.Add(capsEndPoint); // is this parameter correct? | 268 | sendParams.Add(m_capsEndPoint); // is this parameter correct? |
275 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? | 269 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? |
276 | 270 | ||
277 | request = new XmlRpcRequest("login_to_simulator", sendParams); | 271 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); |
278 | 272 | ||
279 | response = loginService.XmlRpcLoginMethod(request); | 273 | XmlRpcResponse response = m_loginService.XmlRpcLoginMethod(request); |
280 | responseData = (Hashtable)response.Value; | 274 | Hashtable responseData = (Hashtable)response.Value; |
281 | Assert.That(responseData["message"], Is.EqualTo(error_xml_message)); | 275 | Assert.That(responseData["message"], Is.EqualTo(error_xml_message)); |
282 | 276 | ||
277 | } | ||
278 | |||
279 | [Test] | ||
280 | public void TestAuthenticatedLoginAlreadyLoggedIn() | ||
281 | { | ||
282 | string error_already_logged = "You appear to be already logged in. " + | ||
283 | "If this is not the case please wait for your session to timeout. " + | ||
284 | "If this takes longer than a few minutes please contact the grid owner. " + | ||
285 | "Please wait 5 minutes if you are going to connect to a region nearby to the region you were at previously."; | ||
283 | // 2.4) Already logged in and sucessfull post login | 286 | // 2.4) Already logged in and sucessfull post login |
284 | loginParams = new Hashtable(); | 287 | Hashtable loginParams = new Hashtable(); |
285 | loginParams["first"] = "Adam"; | 288 | loginParams["first"] = "Adam"; |
286 | loginParams["last"] = "West"; | 289 | loginParams["last"] = "West"; |
287 | loginParams["passwd"] = "boingboing"; | 290 | loginParams["passwd"] = "boingboing"; |
288 | 291 | ||
289 | sendParams = new ArrayList(); | 292 | ArrayList sendParams = new ArrayList(); |
290 | sendParams.Add(loginParams); | 293 | sendParams.Add(loginParams); |
291 | sendParams.Add(capsEndPoint); // is this parameter correct? | 294 | sendParams.Add(m_capsEndPoint); // is this parameter correct? |
292 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? | 295 | sendParams.Add(new Uri("http://localhost:8002/")); // is this parameter correct? |
293 | 296 | ||
297 | // First we log in. | ||
298 | XmlRpcRequest request = new XmlRpcRequest("login_to_simulator", sendParams); | ||
299 | XmlRpcResponse response = m_loginService.XmlRpcLoginMethod(request); | ||
300 | Hashtable responseData = (Hashtable)response.Value; | ||
301 | Assert.That(responseData["message"], Is.EqualTo("Hello folks")); | ||
302 | |||
303 | // Then we try again, this time expecting failure. | ||
294 | request = new XmlRpcRequest("login_to_simulator", sendParams); | 304 | request = new XmlRpcRequest("login_to_simulator", sendParams); |
295 | 305 | ||
296 | response = loginService.XmlRpcLoginMethod(request); | 306 | response = m_loginService.XmlRpcLoginMethod(request); |
297 | responseData = (Hashtable)response.Value; | 307 | responseData = (Hashtable)response.Value; |
298 | Assert.That(responseData["message"], Is.EqualTo(error_already_logged)); | 308 | Assert.That(responseData["message"], Is.EqualTo(error_already_logged)); |
299 | 309 | ||
310 | // Finally the third time we should be able to get right back in. | ||
300 | request = new XmlRpcRequest("login_to_simulator", sendParams); | 311 | request = new XmlRpcRequest("login_to_simulator", sendParams); |
301 | 312 | ||
302 | response = loginService.XmlRpcLoginMethod(request); | 313 | response = m_loginService.XmlRpcLoginMethod(request); |
303 | responseData = (Hashtable)response.Value; | 314 | responseData = (Hashtable)response.Value; |
304 | Assert.That(responseData["message"], Is.EqualTo("Hello folks")); | 315 | Assert.That(responseData["message"], Is.EqualTo("Hello folks")); |
305 | } | 316 | } |