OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/message_loop.h" | 5 #include "base/message_loop.h" |
6 #include "base/string_split.h" | 6 #include "base/string_split.h" |
7 #include "chrome/browser/browser_thread.h" | 7 #include "chrome/browser/browser_thread.h" |
| 8 #include "chrome/browser/policy/device_management_backend_impl.h" |
8 #include "chrome/browser/policy/device_management_backend_mock.h" | 9 #include "chrome/browser/policy/device_management_backend_mock.h" |
9 #include "chrome/browser/policy/device_management_service.h" | 10 #include "chrome/browser/policy/device_management_service.h" |
10 #include "chrome/common/net/test_url_fetcher_factory.h" | 11 #include "chrome/common/net/test_url_fetcher_factory.h" |
11 #include "chrome/test/test_url_request_context_getter.h" | 12 #include "chrome/test/test_url_request_context_getter.h" |
12 #include "net/base/escape.h" | 13 #include "net/base/escape.h" |
13 #include "net/url_request/url_request_status.h" | 14 #include "net/url_request/url_request_status.h" |
14 #include "net/url_request/url_request_unittest.h" | 15 #include "net/url_request/url_request_unittest.h" |
15 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
16 #include "testing/gmock/include/gmock/gmock.h" | 17 #include "testing/gmock/include/gmock/gmock.h" |
17 | 18 |
18 using testing::_; | 19 using testing::_; |
19 | 20 |
20 namespace policy { | 21 namespace policy { |
21 | 22 |
22 const char kServiceUrl[] = "https://example.com/management_service"; | 23 const char kServiceUrl[] = "https://example.com/management_service"; |
23 | 24 |
24 // Encoded error response messages for testing the error code paths. | 25 // Encoded error response messages for testing the error code paths. |
25 const char kResponseEmpty[] = "\x08\x00"; | 26 const char kResponseEmpty[] = "\x08\x00"; |
26 const char kResponseErrorManagementNotSupported[] = "\x08\x01"; | 27 const char kResponseErrorManagementNotSupported[] = "\x08\x01"; |
27 const char kResponseErrorDeviceNotFound[] = "\x08\x02"; | 28 const char kResponseErrorDeviceNotFound[] = "\x08\x02"; |
28 const char kResponseErrorManagementTokenInvalid[] = "\x08\x03"; | 29 const char kResponseErrorManagementTokenInvalid[] = "\x08\x03"; |
29 const char kResponseErrorActivationPending[] = "\x08\x04"; | 30 const char kResponseErrorActivationPending[] = "\x08\x04"; |
30 | 31 |
31 #define PROTO_STRING(name) (std::string(name, arraysize(name) - 1)) | 32 #define PROTO_STRING(name) (std::string(name, arraysize(name) - 1)) |
32 | 33 |
| 34 // Some helper constants. |
| 35 const char kAuthToken[] = "auth-token"; |
| 36 const char kDMToken[] = "device-management-token"; |
| 37 const char kDeviceId[] = "device-id"; |
| 38 |
33 // Unit tests for the device management policy service. The tests are run | 39 // Unit tests for the device management policy service. The tests are run |
34 // against a TestURLFetcherFactory that is used to short-circuit the request | 40 // against a TestURLFetcherFactory that is used to short-circuit the request |
35 // without calling into the actual network stack. | 41 // without calling into the actual network stack. |
36 template<typename TESTBASE> | 42 template<typename TESTBASE> |
37 class DeviceManagementServiceTestBase : public TESTBASE { | 43 class DeviceManagementServiceTestBase : public TESTBASE { |
38 protected: | 44 protected: |
39 DeviceManagementServiceTestBase() | 45 DeviceManagementServiceTestBase() |
40 : request_context_(new TestURLRequestContextGetter()), | 46 : request_context_(new TestURLRequestContextGetter()), |
41 io_thread_(BrowserThread::IO, &loop_) { | 47 io_thread_(BrowserThread::IO, &loop_) { |
42 ResetService(); | 48 ResetService(); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 // the same for all kinds of requests. | 97 // the same for all kinds of requests. |
92 class DeviceManagementServiceFailedRequestTest | 98 class DeviceManagementServiceFailedRequestTest |
93 : public DeviceManagementServiceTestBase< | 99 : public DeviceManagementServiceTestBase< |
94 testing::TestWithParam<FailedRequestParams> > { | 100 testing::TestWithParam<FailedRequestParams> > { |
95 }; | 101 }; |
96 | 102 |
97 TEST_P(DeviceManagementServiceFailedRequestTest, RegisterRequest) { | 103 TEST_P(DeviceManagementServiceFailedRequestTest, RegisterRequest) { |
98 DeviceRegisterResponseDelegateMock mock; | 104 DeviceRegisterResponseDelegateMock mock; |
99 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); | 105 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); |
100 em::DeviceRegisterRequest request; | 106 em::DeviceRegisterRequest request; |
101 backend_->ProcessRegisterRequest("token", "device id", request, &mock); | 107 backend_->ProcessRegisterRequest(kAuthToken, kDeviceId, request, &mock); |
102 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 108 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
103 ASSERT_TRUE(fetcher); | 109 ASSERT_TRUE(fetcher); |
104 | 110 |
105 fetcher->delegate()->OnURLFetchComplete(fetcher, | 111 fetcher->delegate()->OnURLFetchComplete(fetcher, |
106 GURL(kServiceUrl), | 112 GURL(kServiceUrl), |
107 GetParam().request_status_, | 113 GetParam().request_status_, |
108 GetParam().http_status_, | 114 GetParam().http_status_, |
109 ResponseCookies(), | 115 ResponseCookies(), |
110 GetParam().response_); | 116 GetParam().response_); |
111 } | 117 } |
112 | 118 |
113 TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) { | 119 TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) { |
114 DeviceUnregisterResponseDelegateMock mock; | 120 DeviceUnregisterResponseDelegateMock mock; |
115 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); | 121 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); |
116 em::DeviceUnregisterRequest request; | 122 em::DeviceUnregisterRequest request; |
117 backend_->ProcessUnregisterRequest("token", request, &mock); | 123 backend_->ProcessUnregisterRequest(kDMToken, kDeviceId, request, &mock); |
118 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 124 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
119 ASSERT_TRUE(fetcher); | 125 ASSERT_TRUE(fetcher); |
120 | 126 |
121 fetcher->delegate()->OnURLFetchComplete(fetcher, | 127 fetcher->delegate()->OnURLFetchComplete(fetcher, |
122 GURL(kServiceUrl), | 128 GURL(kServiceUrl), |
123 GetParam().request_status_, | 129 GetParam().request_status_, |
124 GetParam().http_status_, | 130 GetParam().http_status_, |
125 ResponseCookies(), | 131 ResponseCookies(), |
126 GetParam().response_); | 132 GetParam().response_); |
127 } | 133 } |
128 | 134 |
129 TEST_P(DeviceManagementServiceFailedRequestTest, PolicyRequest) { | 135 TEST_P(DeviceManagementServiceFailedRequestTest, PolicyRequest) { |
130 DevicePolicyResponseDelegateMock mock; | 136 DevicePolicyResponseDelegateMock mock; |
131 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); | 137 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); |
132 em::DevicePolicyRequest request; | 138 em::DevicePolicyRequest request; |
133 request.set_policy_scope("Chrome"); | 139 request.set_policy_scope("Chrome"); |
134 em::DevicePolicySettingRequest* setting_request = | 140 em::DevicePolicySettingRequest* setting_request = |
135 request.add_setting_request(); | 141 request.add_setting_request(); |
136 setting_request->set_key("policy"); | 142 setting_request->set_key("policy"); |
137 backend_->ProcessPolicyRequest("token", request, &mock); | 143 backend_->ProcessPolicyRequest(kDMToken, kDeviceId, request, &mock); |
138 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 144 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
139 ASSERT_TRUE(fetcher); | 145 ASSERT_TRUE(fetcher); |
140 | 146 |
141 fetcher->delegate()->OnURLFetchComplete(fetcher, | 147 fetcher->delegate()->OnURLFetchComplete(fetcher, |
142 GURL(kServiceUrl), | 148 GURL(kServiceUrl), |
143 GetParam().request_status_, | 149 GetParam().request_status_, |
144 GetParam().http_status_, | 150 GetParam().http_status_, |
145 ResponseCookies(), | 151 ResponseCookies(), |
146 GetParam().response_); | 152 GetParam().response_); |
147 } | 153 } |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 DeviceManagementBackend::kErrorServiceManagementTokenInvalid, | 185 DeviceManagementBackend::kErrorServiceManagementTokenInvalid, |
180 URLRequestStatus::SUCCESS, | 186 URLRequestStatus::SUCCESS, |
181 200, | 187 200, |
182 PROTO_STRING(kResponseErrorManagementTokenInvalid)), | 188 PROTO_STRING(kResponseErrorManagementTokenInvalid)), |
183 FailedRequestParams( | 189 FailedRequestParams( |
184 DeviceManagementBackend::kErrorServiceActivationPending, | 190 DeviceManagementBackend::kErrorServiceActivationPending, |
185 URLRequestStatus::SUCCESS, | 191 URLRequestStatus::SUCCESS, |
186 200, | 192 200, |
187 PROTO_STRING(kResponseErrorActivationPending)))); | 193 PROTO_STRING(kResponseErrorActivationPending)))); |
188 | 194 |
189 class DeviceManagementServiceTest | |
190 : public DeviceManagementServiceTestBase<testing::Test> { | |
191 }; | |
192 | |
193 MATCHER_P(MessageEquals, reference, "") { | |
194 std::string reference_data; | |
195 std::string arg_data; | |
196 return arg.SerializeToString(&arg_data) && | |
197 reference.SerializeToString(&reference_data) && | |
198 arg_data == reference_data; | |
199 } | |
200 | |
201 // Simple query parameter parser for testing. | 195 // Simple query parameter parser for testing. |
202 class QueryParams { | 196 class QueryParams { |
203 public: | 197 public: |
204 explicit QueryParams(const std::string& query) { | 198 explicit QueryParams(const std::string& query) { |
205 base::SplitStringIntoKeyValuePairs(query, '=', '&', ¶ms_); | 199 base::SplitStringIntoKeyValuePairs(query, '=', '&', ¶ms_); |
206 } | 200 } |
207 | 201 |
208 bool Check(const std::string& name, const std::string& expected_value) { | 202 bool Check(const std::string& name, const std::string& expected_value) { |
209 bool found = false; | 203 bool found = false; |
210 for (ParamMap::const_iterator i(params_.begin()); i != params_.end(); ++i) { | 204 for (ParamMap::const_iterator i(params_.begin()); i != params_.end(); ++i) { |
(...skipping 20 matching lines...) Expand all Loading... |
231 } | 225 } |
232 } | 226 } |
233 return found; | 227 return found; |
234 } | 228 } |
235 | 229 |
236 private: | 230 private: |
237 typedef std::vector<std::pair<std::string, std::string> > ParamMap; | 231 typedef std::vector<std::pair<std::string, std::string> > ParamMap; |
238 ParamMap params_; | 232 ParamMap params_; |
239 }; | 233 }; |
240 | 234 |
| 235 class DeviceManagementServiceTest |
| 236 : public DeviceManagementServiceTestBase<testing::Test> { |
| 237 protected: |
| 238 void CheckURLAndQueryParams(const GURL& request_url, |
| 239 const std::string& request_type, |
| 240 const std::string& device_id) { |
| 241 const GURL service_url(kServiceUrl); |
| 242 EXPECT_EQ(service_url.scheme(), request_url.scheme()); |
| 243 EXPECT_EQ(service_url.host(), request_url.host()); |
| 244 EXPECT_EQ(service_url.port(), request_url.port()); |
| 245 EXPECT_EQ(service_url.path(), request_url.path()); |
| 246 |
| 247 QueryParams query_params(request_url.query()); |
| 248 EXPECT_TRUE(query_params.Check( |
| 249 DeviceManagementBackendImpl::kParamRequest, request_type)); |
| 250 EXPECT_TRUE(query_params.Check( |
| 251 DeviceManagementBackendImpl::kParamDeviceID, device_id)); |
| 252 EXPECT_TRUE(query_params.Check( |
| 253 DeviceManagementBackendImpl::kParamDeviceType, |
| 254 DeviceManagementBackendImpl::kValueDeviceType)); |
| 255 EXPECT_TRUE(query_params.Check( |
| 256 DeviceManagementBackendImpl::kParamAppType, |
| 257 DeviceManagementBackendImpl::kValueAppType)); |
| 258 EXPECT_TRUE(query_params.Check( |
| 259 DeviceManagementBackendImpl::kParamAgent, |
| 260 DeviceManagementBackendImpl::GetAgentString())); |
| 261 } |
| 262 }; |
| 263 |
| 264 MATCHER_P(MessageEquals, reference, "") { |
| 265 std::string reference_data; |
| 266 std::string arg_data; |
| 267 return arg.SerializeToString(&arg_data) && |
| 268 reference.SerializeToString(&reference_data) && |
| 269 arg_data == reference_data; |
| 270 } |
| 271 |
241 TEST_F(DeviceManagementServiceTest, RegisterRequest) { | 272 TEST_F(DeviceManagementServiceTest, RegisterRequest) { |
242 DeviceRegisterResponseDelegateMock mock; | 273 DeviceRegisterResponseDelegateMock mock; |
243 em::DeviceRegisterResponse expected_response; | 274 em::DeviceRegisterResponse expected_response; |
244 expected_response.set_device_management_token("mtoken"); | 275 expected_response.set_device_management_token(kDMToken); |
245 EXPECT_CALL(mock, HandleRegisterResponse(MessageEquals(expected_response))); | 276 EXPECT_CALL(mock, HandleRegisterResponse(MessageEquals(expected_response))); |
246 em::DeviceRegisterRequest request; | 277 em::DeviceRegisterRequest request; |
247 backend_->ProcessRegisterRequest("token", "device id", request, &mock); | 278 backend_->ProcessRegisterRequest(kDMToken, kDeviceId, request, &mock); |
248 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 279 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
249 ASSERT_TRUE(fetcher); | 280 ASSERT_TRUE(fetcher); |
250 | 281 |
251 // Check the data the fetcher received. | 282 CheckURLAndQueryParams(fetcher->original_url(), |
252 const GURL& request_url(fetcher->original_url()); | 283 DeviceManagementBackendImpl::kValueRequestRegister, |
253 const GURL service_url(kServiceUrl); | 284 kDeviceId); |
254 EXPECT_EQ(service_url.scheme(), request_url.scheme()); | |
255 EXPECT_EQ(service_url.host(), request_url.host()); | |
256 EXPECT_EQ(service_url.port(), request_url.port()); | |
257 EXPECT_EQ(service_url.path(), request_url.path()); | |
258 | |
259 QueryParams query_params(request_url.query()); | |
260 EXPECT_TRUE(query_params.Check("request", "register")); | |
261 | 285 |
262 em::DeviceManagementRequest expected_request_wrapper; | 286 em::DeviceManagementRequest expected_request_wrapper; |
263 expected_request_wrapper.mutable_register_request()->CopyFrom(request); | 287 expected_request_wrapper.mutable_register_request()->CopyFrom(request); |
264 std::string expected_request_data; | 288 std::string expected_request_data; |
265 ASSERT_TRUE(expected_request_wrapper.SerializeToString( | 289 ASSERT_TRUE(expected_request_wrapper.SerializeToString( |
266 &expected_request_data)); | 290 &expected_request_data)); |
267 EXPECT_EQ(expected_request_data, fetcher->upload_data()); | 291 EXPECT_EQ(expected_request_data, fetcher->upload_data()); |
268 | 292 |
269 // Generate the response. | 293 // Generate the response. |
270 std::string response_data; | 294 std::string response_data; |
271 em::DeviceManagementResponse response_wrapper; | 295 em::DeviceManagementResponse response_wrapper; |
272 response_wrapper.set_error(em::DeviceManagementResponse::SUCCESS); | 296 response_wrapper.set_error(em::DeviceManagementResponse::SUCCESS); |
273 response_wrapper.mutable_register_response()->CopyFrom(expected_response); | 297 response_wrapper.mutable_register_response()->CopyFrom(expected_response); |
274 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); | 298 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); |
275 URLRequestStatus status(URLRequestStatus::SUCCESS, 0); | 299 URLRequestStatus status(URLRequestStatus::SUCCESS, 0); |
276 fetcher->delegate()->OnURLFetchComplete(fetcher, | 300 fetcher->delegate()->OnURLFetchComplete(fetcher, |
277 GURL(kServiceUrl), | 301 GURL(kServiceUrl), |
278 status, | 302 status, |
279 200, | 303 200, |
280 ResponseCookies(), | 304 ResponseCookies(), |
281 response_data); | 305 response_data); |
282 } | 306 } |
283 | 307 |
284 TEST_F(DeviceManagementServiceTest, UnregisterRequest) { | 308 TEST_F(DeviceManagementServiceTest, UnregisterRequest) { |
285 DeviceUnregisterResponseDelegateMock mock; | 309 DeviceUnregisterResponseDelegateMock mock; |
286 em::DeviceUnregisterResponse expected_response; | 310 em::DeviceUnregisterResponse expected_response; |
287 EXPECT_CALL(mock, HandleUnregisterResponse(MessageEquals(expected_response))); | 311 EXPECT_CALL(mock, HandleUnregisterResponse(MessageEquals(expected_response))); |
288 em::DeviceUnregisterRequest request; | 312 em::DeviceUnregisterRequest request; |
289 backend_->ProcessUnregisterRequest("dmtokenvalue", request, &mock); | 313 backend_->ProcessUnregisterRequest(kDMToken, kDeviceId, request, &mock); |
290 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 314 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
291 ASSERT_TRUE(fetcher); | 315 ASSERT_TRUE(fetcher); |
292 | 316 |
293 // Check the data the fetcher received. | 317 // Check the data the fetcher received. |
294 const GURL& request_url(fetcher->original_url()); | 318 const GURL& request_url(fetcher->original_url()); |
295 const GURL service_url(kServiceUrl); | 319 const GURL service_url(kServiceUrl); |
296 EXPECT_EQ(service_url.scheme(), request_url.scheme()); | 320 EXPECT_EQ(service_url.scheme(), request_url.scheme()); |
297 EXPECT_EQ(service_url.host(), request_url.host()); | 321 EXPECT_EQ(service_url.host(), request_url.host()); |
298 EXPECT_EQ(service_url.port(), request_url.port()); | 322 EXPECT_EQ(service_url.port(), request_url.port()); |
299 EXPECT_EQ(service_url.path(), request_url.path()); | 323 EXPECT_EQ(service_url.path(), request_url.path()); |
300 | 324 |
301 QueryParams query_params(request_url.query()); | 325 CheckURLAndQueryParams(fetcher->original_url(), |
302 EXPECT_TRUE(query_params.Check("request", "unregister")); | 326 DeviceManagementBackendImpl::kValueRequestUnregister, |
| 327 kDeviceId); |
303 | 328 |
304 em::DeviceManagementRequest expected_request_wrapper; | 329 em::DeviceManagementRequest expected_request_wrapper; |
305 expected_request_wrapper.mutable_unregister_request()->CopyFrom(request); | 330 expected_request_wrapper.mutable_unregister_request()->CopyFrom(request); |
306 std::string expected_request_data; | 331 std::string expected_request_data; |
307 ASSERT_TRUE(expected_request_wrapper.SerializeToString( | 332 ASSERT_TRUE(expected_request_wrapper.SerializeToString( |
308 &expected_request_data)); | 333 &expected_request_data)); |
309 EXPECT_EQ(expected_request_data, fetcher->upload_data()); | 334 EXPECT_EQ(expected_request_data, fetcher->upload_data()); |
310 | 335 |
311 // Generate the response. | 336 // Generate the response. |
312 std::string response_data; | 337 std::string response_data; |
(...skipping 28 matching lines...) Expand all Loading... |
341 em::GenericValue::VALUE_TYPE_BOOL); | 366 em::GenericValue::VALUE_TYPE_BOOL); |
342 named_value->mutable_value()->set_bool_value(false); | 367 named_value->mutable_value()->set_bool_value(false); |
343 EXPECT_CALL(mock, HandlePolicyResponse(MessageEquals(expected_response))); | 368 EXPECT_CALL(mock, HandlePolicyResponse(MessageEquals(expected_response))); |
344 | 369 |
345 em::DevicePolicyRequest request; | 370 em::DevicePolicyRequest request; |
346 request.set_policy_scope("chromeos/device"); | 371 request.set_policy_scope("chromeos/device"); |
347 em::DevicePolicySettingRequest* setting_request = | 372 em::DevicePolicySettingRequest* setting_request = |
348 request.add_setting_request(); | 373 request.add_setting_request(); |
349 setting_request->set_key("policy"); | 374 setting_request->set_key("policy"); |
350 setting_request->set_watermark("stale"); | 375 setting_request->set_watermark("stale"); |
351 backend_->ProcessPolicyRequest("dmtokenvalue", request, &mock); | 376 backend_->ProcessPolicyRequest(kDMToken, kDeviceId, request, &mock); |
352 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 377 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
353 ASSERT_TRUE(fetcher); | 378 ASSERT_TRUE(fetcher); |
354 | 379 |
355 // Check the data the fetcher received. | 380 CheckURLAndQueryParams(fetcher->original_url(), |
356 const GURL& request_url(fetcher->original_url()); | 381 DeviceManagementBackendImpl::kValueRequestPolicy, |
357 const GURL service_url(kServiceUrl); | 382 kDeviceId); |
358 EXPECT_EQ(service_url.scheme(), request_url.scheme()); | |
359 EXPECT_EQ(service_url.host(), request_url.host()); | |
360 EXPECT_EQ(service_url.port(), request_url.port()); | |
361 EXPECT_EQ(service_url.path(), request_url.path()); | |
362 | |
363 QueryParams query_params(request_url.query()); | |
364 EXPECT_TRUE(query_params.Check("request", "policy")); | |
365 | 383 |
366 em::DeviceManagementRequest expected_request_wrapper; | 384 em::DeviceManagementRequest expected_request_wrapper; |
367 expected_request_wrapper.mutable_policy_request()->CopyFrom(request); | 385 expected_request_wrapper.mutable_policy_request()->CopyFrom(request); |
368 std::string expected_request_data; | 386 std::string expected_request_data; |
369 ASSERT_TRUE(expected_request_wrapper.SerializeToString( | 387 ASSERT_TRUE(expected_request_wrapper.SerializeToString( |
370 &expected_request_data)); | 388 &expected_request_data)); |
371 EXPECT_EQ(expected_request_data, fetcher->upload_data()); | 389 EXPECT_EQ(expected_request_data, fetcher->upload_data()); |
372 | 390 |
373 // Generate the response. | 391 // Generate the response. |
374 std::string response_data; | 392 std::string response_data; |
375 em::DeviceManagementResponse response_wrapper; | 393 em::DeviceManagementResponse response_wrapper; |
376 response_wrapper.set_error(em::DeviceManagementResponse::SUCCESS); | 394 response_wrapper.set_error(em::DeviceManagementResponse::SUCCESS); |
377 response_wrapper.mutable_policy_response()->CopyFrom(expected_response); | 395 response_wrapper.mutable_policy_response()->CopyFrom(expected_response); |
378 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); | 396 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); |
379 URLRequestStatus status(URLRequestStatus::SUCCESS, 0); | 397 URLRequestStatus status(URLRequestStatus::SUCCESS, 0); |
380 fetcher->delegate()->OnURLFetchComplete(fetcher, | 398 fetcher->delegate()->OnURLFetchComplete(fetcher, |
381 GURL(kServiceUrl), | 399 GURL(kServiceUrl), |
382 status, | 400 status, |
383 200, | 401 200, |
384 ResponseCookies(), | 402 ResponseCookies(), |
385 response_data); | 403 response_data); |
386 } | 404 } |
387 | 405 |
388 TEST_F(DeviceManagementServiceTest, CancelRegisterRequest) { | 406 TEST_F(DeviceManagementServiceTest, CancelRegisterRequest) { |
389 DeviceRegisterResponseDelegateMock mock; | 407 DeviceRegisterResponseDelegateMock mock; |
390 EXPECT_CALL(mock, HandleRegisterResponse(_)).Times(0); | 408 EXPECT_CALL(mock, HandleRegisterResponse(_)).Times(0); |
391 em::DeviceRegisterRequest request; | 409 em::DeviceRegisterRequest request; |
392 backend_->ProcessRegisterRequest("token", "device id", request, &mock); | 410 backend_->ProcessRegisterRequest(kAuthToken, kDeviceId, request, &mock); |
393 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 411 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
394 ASSERT_TRUE(fetcher); | 412 ASSERT_TRUE(fetcher); |
395 | 413 |
396 // There shouldn't be any callbacks. | 414 // There shouldn't be any callbacks. |
397 backend_.reset(); | 415 backend_.reset(); |
398 } | 416 } |
399 | 417 |
400 TEST_F(DeviceManagementServiceTest, CancelUnregisterRequest) { | 418 TEST_F(DeviceManagementServiceTest, CancelUnregisterRequest) { |
401 DeviceUnregisterResponseDelegateMock mock; | 419 DeviceUnregisterResponseDelegateMock mock; |
402 EXPECT_CALL(mock, HandleUnregisterResponse(_)).Times(0); | 420 EXPECT_CALL(mock, HandleUnregisterResponse(_)).Times(0); |
403 em::DeviceUnregisterRequest request; | 421 em::DeviceUnregisterRequest request; |
404 backend_->ProcessUnregisterRequest("dmtokenvalue", request, &mock); | 422 backend_->ProcessUnregisterRequest(kDMToken, kDeviceId, request, &mock); |
405 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 423 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
406 ASSERT_TRUE(fetcher); | 424 ASSERT_TRUE(fetcher); |
407 | 425 |
408 // There shouldn't be any callbacks. | 426 // There shouldn't be any callbacks. |
409 backend_.reset(); | 427 backend_.reset(); |
410 } | 428 } |
411 | 429 |
412 TEST_F(DeviceManagementServiceTest, CancelPolicyRequest) { | 430 TEST_F(DeviceManagementServiceTest, CancelPolicyRequest) { |
413 DevicePolicyResponseDelegateMock mock; | 431 DevicePolicyResponseDelegateMock mock; |
414 EXPECT_CALL(mock, HandlePolicyResponse(_)).Times(0); | 432 EXPECT_CALL(mock, HandlePolicyResponse(_)).Times(0); |
415 em::DevicePolicyRequest request; | 433 em::DevicePolicyRequest request; |
416 request.set_policy_scope("chromium"); | 434 request.set_policy_scope("chromium"); |
417 em::DevicePolicySettingRequest* setting_request = | 435 em::DevicePolicySettingRequest* setting_request = |
418 request.add_setting_request(); | 436 request.add_setting_request(); |
419 setting_request->set_key("policy"); | 437 setting_request->set_key("policy"); |
420 setting_request->set_watermark("stale"); | 438 setting_request->set_watermark("stale"); |
421 backend_->ProcessPolicyRequest("dmtokenvalue", request, &mock); | 439 backend_->ProcessPolicyRequest(kDMToken, kDeviceId, request, &mock); |
422 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 440 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
423 ASSERT_TRUE(fetcher); | 441 ASSERT_TRUE(fetcher); |
424 | 442 |
425 // There shouldn't be any callbacks. | 443 // There shouldn't be any callbacks. |
426 backend_.reset(); | 444 backend_.reset(); |
427 } | 445 } |
428 | 446 |
429 TEST_F(DeviceManagementServiceTest, JobQueueing) { | 447 TEST_F(DeviceManagementServiceTest, JobQueueing) { |
430 // Start with a non-initialized service. | 448 // Start with a non-initialized service. |
431 ResetService(); | 449 ResetService(); |
432 | 450 |
433 // Make a request. We should not see any fetchers being created. | 451 // Make a request. We should not see any fetchers being created. |
434 DeviceRegisterResponseDelegateMock mock; | 452 DeviceRegisterResponseDelegateMock mock; |
435 em::DeviceRegisterResponse expected_response; | 453 em::DeviceRegisterResponse expected_response; |
436 expected_response.set_device_management_token("mtoken"); | 454 expected_response.set_device_management_token(kDMToken); |
437 EXPECT_CALL(mock, HandleRegisterResponse(MessageEquals(expected_response))); | 455 EXPECT_CALL(mock, HandleRegisterResponse(MessageEquals(expected_response))); |
438 em::DeviceRegisterRequest request; | 456 em::DeviceRegisterRequest request; |
439 backend_->ProcessRegisterRequest("token", "device id", request, &mock); | 457 backend_->ProcessRegisterRequest(kAuthToken, kDeviceId, request, &mock); |
440 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 458 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
441 ASSERT_FALSE(fetcher); | 459 ASSERT_FALSE(fetcher); |
442 | 460 |
443 // Now initialize the service. That should start the job. | 461 // Now initialize the service. That should start the job. |
444 service_->Initialize(request_context_.get()); | 462 service_->Initialize(request_context_.get()); |
445 fetcher = factory_.GetFetcherByID(0); | 463 fetcher = factory_.GetFetcherByID(0); |
446 ASSERT_TRUE(fetcher); | 464 ASSERT_TRUE(fetcher); |
447 factory_.RemoveFetcherFromMap(0); | 465 factory_.RemoveFetcherFromMap(0); |
448 | 466 |
449 // Check that the request is processed as expected. | 467 // Check that the request is processed as expected. |
450 std::string response_data; | 468 std::string response_data; |
451 em::DeviceManagementResponse response_wrapper; | 469 em::DeviceManagementResponse response_wrapper; |
452 response_wrapper.set_error(em::DeviceManagementResponse::SUCCESS); | 470 response_wrapper.set_error(em::DeviceManagementResponse::SUCCESS); |
453 response_wrapper.mutable_register_response()->CopyFrom(expected_response); | 471 response_wrapper.mutable_register_response()->CopyFrom(expected_response); |
454 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); | 472 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); |
455 URLRequestStatus status(URLRequestStatus::SUCCESS, 0); | 473 URLRequestStatus status(URLRequestStatus::SUCCESS, 0); |
456 fetcher->delegate()->OnURLFetchComplete(fetcher, | 474 fetcher->delegate()->OnURLFetchComplete(fetcher, |
457 GURL(kServiceUrl), | 475 GURL(kServiceUrl), |
458 status, | 476 status, |
459 200, | 477 200, |
460 ResponseCookies(), | 478 ResponseCookies(), |
461 response_data); | 479 response_data); |
462 } | 480 } |
463 | 481 |
464 } // namespace policy | 482 } // namespace policy |
OLD | NEW |