OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <ostream> | 5 #include <ostream> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/string_split.h" | 9 #include "base/string_split.h" |
10 #include "chrome/browser/policy/device_management_backend_impl.h" | 10 #include "chrome/browser/policy/device_management_backend_impl.h" |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 | 114 |
115 TEST_P(DeviceManagementServiceFailedRequestTest, RegisterRequest) { | 115 TEST_P(DeviceManagementServiceFailedRequestTest, RegisterRequest) { |
116 DeviceRegisterResponseDelegateMock mock; | 116 DeviceRegisterResponseDelegateMock mock; |
117 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); | 117 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); |
118 em::DeviceRegisterRequest request; | 118 em::DeviceRegisterRequest request; |
119 backend_->ProcessRegisterRequest(kGaiaAuthToken, kOAuthToken, | 119 backend_->ProcessRegisterRequest(kGaiaAuthToken, kOAuthToken, |
120 kDeviceId, request, &mock); | 120 kDeviceId, request, &mock); |
121 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 121 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
122 ASSERT_TRUE(fetcher); | 122 ASSERT_TRUE(fetcher); |
123 | 123 |
124 fetcher->delegate()->OnURLFetchComplete(fetcher, | 124 fetcher->set_url(GURL(kServiceUrl)); |
125 GURL(kServiceUrl), | 125 fetcher->set_status(GetParam().request_status_); |
126 GetParam().request_status_, | 126 fetcher->set_response_code(GetParam().http_status_); |
127 GetParam().http_status_, | 127 fetcher->SetResponseString(GetParam().response_); |
128 net::ResponseCookies(), | 128 fetcher->delegate()->OnURLFetchComplete(fetcher); |
129 GetParam().response_); | |
130 } | 129 } |
131 | 130 |
132 TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) { | 131 TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) { |
133 DeviceUnregisterResponseDelegateMock mock; | 132 DeviceUnregisterResponseDelegateMock mock; |
134 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); | 133 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); |
135 em::DeviceUnregisterRequest request; | 134 em::DeviceUnregisterRequest request; |
136 backend_->ProcessUnregisterRequest(kDMToken, kDeviceId, request, &mock); | 135 backend_->ProcessUnregisterRequest(kDMToken, kDeviceId, request, &mock); |
137 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 136 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
138 ASSERT_TRUE(fetcher); | 137 ASSERT_TRUE(fetcher); |
139 | 138 |
140 fetcher->delegate()->OnURLFetchComplete(fetcher, | 139 fetcher->set_url(GURL(kServiceUrl)); |
141 GURL(kServiceUrl), | 140 fetcher->set_status(GetParam().request_status_); |
142 GetParam().request_status_, | 141 fetcher->set_response_code(GetParam().http_status_); |
143 GetParam().http_status_, | 142 fetcher->SetResponseString(GetParam().response_); |
144 net::ResponseCookies(), | 143 fetcher->delegate()->OnURLFetchComplete(fetcher); |
145 GetParam().response_); | |
146 } | 144 } |
147 | 145 |
148 TEST_P(DeviceManagementServiceFailedRequestTest, PolicyRequest) { | 146 TEST_P(DeviceManagementServiceFailedRequestTest, PolicyRequest) { |
149 DevicePolicyResponseDelegateMock mock; | 147 DevicePolicyResponseDelegateMock mock; |
150 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); | 148 EXPECT_CALL(mock, OnError(GetParam().expected_error_)); |
151 em::DevicePolicyRequest request; | 149 em::DevicePolicyRequest request; |
152 request.set_policy_scope(kChromePolicyScope); | 150 request.set_policy_scope(kChromePolicyScope); |
153 em::DevicePolicySettingRequest* setting_request = | 151 em::DevicePolicySettingRequest* setting_request = |
154 request.add_setting_request(); | 152 request.add_setting_request(); |
155 setting_request->set_key(kChromeDevicePolicySettingKey); | 153 setting_request->set_key(kChromeDevicePolicySettingKey); |
156 backend_->ProcessPolicyRequest(kDMToken, kDeviceId, | 154 backend_->ProcessPolicyRequest(kDMToken, kDeviceId, |
157 CloudPolicyDataStore::USER_AFFILIATION_NONE, | 155 CloudPolicyDataStore::USER_AFFILIATION_NONE, |
158 request, &mock); | 156 request, &mock); |
159 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 157 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
160 ASSERT_TRUE(fetcher); | 158 ASSERT_TRUE(fetcher); |
161 | 159 |
162 fetcher->delegate()->OnURLFetchComplete(fetcher, | 160 fetcher->set_url(GURL(kServiceUrl)); |
163 GURL(kServiceUrl), | 161 fetcher->set_status(GetParam().request_status_); |
164 GetParam().request_status_, | 162 fetcher->set_response_code(GetParam().http_status_); |
165 GetParam().http_status_, | 163 fetcher->SetResponseString(GetParam().response_); |
166 net::ResponseCookies(), | 164 fetcher->delegate()->OnURLFetchComplete(fetcher); |
167 GetParam().response_); | |
168 } | 165 } |
169 | 166 |
170 INSTANTIATE_TEST_CASE_P( | 167 INSTANTIATE_TEST_CASE_P( |
171 DeviceManagementServiceFailedRequestTestInstance, | 168 DeviceManagementServiceFailedRequestTestInstance, |
172 DeviceManagementServiceFailedRequestTest, | 169 DeviceManagementServiceFailedRequestTest, |
173 testing::Values( | 170 testing::Values( |
174 FailedRequestParams( | 171 FailedRequestParams( |
175 DeviceManagementBackend::kErrorRequestFailed, | 172 DeviceManagementBackend::kErrorRequestFailed, |
176 net::URLRequestStatus::FAILED, | 173 net::URLRequestStatus::FAILED, |
177 200, | 174 200, |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 ASSERT_TRUE(expected_request_wrapper.SerializeToString( | 339 ASSERT_TRUE(expected_request_wrapper.SerializeToString( |
343 &expected_request_data)); | 340 &expected_request_data)); |
344 EXPECT_EQ(expected_request_data, fetcher->upload_data()); | 341 EXPECT_EQ(expected_request_data, fetcher->upload_data()); |
345 | 342 |
346 // Generate the response. | 343 // Generate the response. |
347 std::string response_data; | 344 std::string response_data; |
348 em::DeviceManagementResponse response_wrapper; | 345 em::DeviceManagementResponse response_wrapper; |
349 response_wrapper.mutable_register_response()->CopyFrom(expected_response); | 346 response_wrapper.mutable_register_response()->CopyFrom(expected_response); |
350 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); | 347 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); |
351 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 348 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
352 fetcher->delegate()->OnURLFetchComplete(fetcher, | 349 fetcher->set_url(GURL(kServiceUrl)); |
353 GURL(kServiceUrl), | 350 fetcher->set_status(status); |
354 status, | 351 fetcher->set_response_code(200); |
355 200, | 352 fetcher->SetResponseString(response_data); |
356 net::ResponseCookies(), | 353 fetcher->delegate()->OnURLFetchComplete(fetcher); |
357 response_data); | |
358 } | 354 } |
359 | 355 |
360 TEST_F(DeviceManagementServiceTest, UnregisterRequest) { | 356 TEST_F(DeviceManagementServiceTest, UnregisterRequest) { |
361 DeviceUnregisterResponseDelegateMock mock; | 357 DeviceUnregisterResponseDelegateMock mock; |
362 em::DeviceUnregisterResponse expected_response; | 358 em::DeviceUnregisterResponse expected_response; |
363 EXPECT_CALL(mock, HandleUnregisterResponse(MessageEquals(expected_response))); | 359 EXPECT_CALL(mock, HandleUnregisterResponse(MessageEquals(expected_response))); |
364 em::DeviceUnregisterRequest request; | 360 em::DeviceUnregisterRequest request; |
365 backend_->ProcessUnregisterRequest(kDMToken, kDeviceId, request, &mock); | 361 backend_->ProcessUnregisterRequest(kDMToken, kDeviceId, request, &mock); |
366 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 362 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
367 ASSERT_TRUE(fetcher); | 363 ASSERT_TRUE(fetcher); |
(...skipping 16 matching lines...) Expand all Loading... |
384 ASSERT_TRUE(expected_request_wrapper.SerializeToString( | 380 ASSERT_TRUE(expected_request_wrapper.SerializeToString( |
385 &expected_request_data)); | 381 &expected_request_data)); |
386 EXPECT_EQ(expected_request_data, fetcher->upload_data()); | 382 EXPECT_EQ(expected_request_data, fetcher->upload_data()); |
387 | 383 |
388 // Generate the response. | 384 // Generate the response. |
389 std::string response_data; | 385 std::string response_data; |
390 em::DeviceManagementResponse response_wrapper; | 386 em::DeviceManagementResponse response_wrapper; |
391 response_wrapper.mutable_unregister_response()->CopyFrom(expected_response); | 387 response_wrapper.mutable_unregister_response()->CopyFrom(expected_response); |
392 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); | 388 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); |
393 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 389 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
394 fetcher->delegate()->OnURLFetchComplete(fetcher, | 390 fetcher->set_url(GURL(kServiceUrl)); |
395 GURL(kServiceUrl), | 391 fetcher->set_status(status); |
396 status, | 392 fetcher->set_response_code(200); |
397 200, | 393 fetcher->SetResponseString(response_data); |
398 net::ResponseCookies(), | 394 fetcher->delegate()->OnURLFetchComplete(fetcher); |
399 response_data); | |
400 } | 395 } |
401 | 396 |
402 TEST_F(DeviceManagementServiceTest, CancelRegisterRequest) { | 397 TEST_F(DeviceManagementServiceTest, CancelRegisterRequest) { |
403 DeviceRegisterResponseDelegateMock mock; | 398 DeviceRegisterResponseDelegateMock mock; |
404 EXPECT_CALL(mock, HandleRegisterResponse(_)).Times(0); | 399 EXPECT_CALL(mock, HandleRegisterResponse(_)).Times(0); |
405 em::DeviceRegisterRequest request; | 400 em::DeviceRegisterRequest request; |
406 backend_->ProcessRegisterRequest(kGaiaAuthToken, kOAuthToken, | 401 backend_->ProcessRegisterRequest(kGaiaAuthToken, kOAuthToken, |
407 kDeviceId, request, &mock); | 402 kDeviceId, request, &mock); |
408 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 403 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
409 ASSERT_TRUE(fetcher); | 404 ASSERT_TRUE(fetcher); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 fetcher = factory_.GetFetcherByID(0); | 458 fetcher = factory_.GetFetcherByID(0); |
464 ASSERT_TRUE(fetcher); | 459 ASSERT_TRUE(fetcher); |
465 factory_.RemoveFetcherFromMap(0); | 460 factory_.RemoveFetcherFromMap(0); |
466 | 461 |
467 // Check that the request is processed as expected. | 462 // Check that the request is processed as expected. |
468 std::string response_data; | 463 std::string response_data; |
469 em::DeviceManagementResponse response_wrapper; | 464 em::DeviceManagementResponse response_wrapper; |
470 response_wrapper.mutable_register_response()->CopyFrom(expected_response); | 465 response_wrapper.mutable_register_response()->CopyFrom(expected_response); |
471 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); | 466 ASSERT_TRUE(response_wrapper.SerializeToString(&response_data)); |
472 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 467 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
473 fetcher->delegate()->OnURLFetchComplete(fetcher, | 468 fetcher->set_url(GURL(kServiceUrl)); |
474 GURL(kServiceUrl), | 469 fetcher->set_status(status); |
475 status, | 470 fetcher->set_response_code(200); |
476 200, | 471 fetcher->SetResponseString(response_data); |
477 net::ResponseCookies(), | 472 fetcher->delegate()->OnURLFetchComplete(fetcher); |
478 response_data); | |
479 } | 473 } |
480 | 474 |
481 TEST_F(DeviceManagementServiceTest, CancelRequestAfterShutdown) { | 475 TEST_F(DeviceManagementServiceTest, CancelRequestAfterShutdown) { |
482 DevicePolicyResponseDelegateMock mock; | 476 DevicePolicyResponseDelegateMock mock; |
483 EXPECT_CALL(mock, HandlePolicyResponse(_)).Times(0); | 477 EXPECT_CALL(mock, HandlePolicyResponse(_)).Times(0); |
484 em::DevicePolicyRequest request; | 478 em::DevicePolicyRequest request; |
485 request.set_policy_scope(kChromePolicyScope); | 479 request.set_policy_scope(kChromePolicyScope); |
486 em::DevicePolicySettingRequest* setting_request = | 480 em::DevicePolicySettingRequest* setting_request = |
487 request.add_setting_request(); | 481 request.add_setting_request(); |
488 setting_request->set_key(kChromeDevicePolicySettingKey); | 482 setting_request->set_key(kChromeDevicePolicySettingKey); |
(...skipping 17 matching lines...) Expand all Loading... |
506 &DeviceManagementServiceTest::ResetBackend)) | 500 &DeviceManagementServiceTest::ResetBackend)) |
507 .RetiresOnSaturation(); | 501 .RetiresOnSaturation(); |
508 em::DeviceRegisterRequest request; | 502 em::DeviceRegisterRequest request; |
509 backend_->ProcessRegisterRequest(kGaiaAuthToken, kOAuthToken, | 503 backend_->ProcessRegisterRequest(kGaiaAuthToken, kOAuthToken, |
510 kDeviceId, request, &mock); | 504 kDeviceId, request, &mock); |
511 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 505 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
512 ASSERT_TRUE(fetcher); | 506 ASSERT_TRUE(fetcher); |
513 | 507 |
514 // Generate a callback. | 508 // Generate a callback. |
515 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 509 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
516 fetcher->delegate()->OnURLFetchComplete(fetcher, | 510 fetcher->set_url(GURL(kServiceUrl)); |
517 GURL(kServiceUrl), | 511 fetcher->set_status(status); |
518 status, | 512 fetcher->set_response_code(500); |
519 500, | 513 fetcher->delegate()->OnURLFetchComplete(fetcher); |
520 net::ResponseCookies(), | |
521 ""); | |
522 | 514 |
523 // Backend should have been reset. | 515 // Backend should have been reset. |
524 EXPECT_FALSE(backend_.get()); | 516 EXPECT_FALSE(backend_.get()); |
525 } | 517 } |
526 | 518 |
527 TEST_F(DeviceManagementServiceTest, RetryOnProxyError) { | 519 TEST_F(DeviceManagementServiceTest, RetryOnProxyError) { |
528 // Make a request. | 520 // Make a request. |
529 DeviceRegisterResponseDelegateMock mock; | 521 DeviceRegisterResponseDelegateMock mock; |
530 EXPECT_CALL(mock, HandleRegisterResponse(_)).Times(0); | 522 EXPECT_CALL(mock, HandleRegisterResponse(_)).Times(0); |
531 EXPECT_CALL(mock, OnError(_)).Times(0); | 523 EXPECT_CALL(mock, OnError(_)).Times(0); |
532 | 524 |
533 em::DeviceRegisterRequest request; | 525 em::DeviceRegisterRequest request; |
534 backend_->ProcessRegisterRequest(kGaiaAuthToken, kOAuthToken, | 526 backend_->ProcessRegisterRequest(kGaiaAuthToken, kOAuthToken, |
535 kDeviceId, request, &mock); | 527 kDeviceId, request, &mock); |
536 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 528 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
537 ASSERT_TRUE(fetcher); | 529 ASSERT_TRUE(fetcher); |
538 EXPECT_TRUE((fetcher->load_flags() & net::LOAD_BYPASS_PROXY) == 0); | 530 EXPECT_TRUE((fetcher->load_flags() & net::LOAD_BYPASS_PROXY) == 0); |
539 const GURL original_url(fetcher->original_url()); | 531 const GURL original_url(fetcher->original_url()); |
540 const std::string upload_data(fetcher->upload_data()); | 532 const std::string upload_data(fetcher->upload_data()); |
541 | 533 |
542 // Generate a callback with a proxy failure. | 534 // Generate a callback with a proxy failure. |
543 net::URLRequestStatus status(net::URLRequestStatus::FAILED, | 535 net::URLRequestStatus status(net::URLRequestStatus::FAILED, |
544 net::ERR_PROXY_CONNECTION_FAILED); | 536 net::ERR_PROXY_CONNECTION_FAILED); |
545 fetcher->delegate()->OnURLFetchComplete(fetcher, | 537 fetcher->set_url(GURL(kServiceUrl)); |
546 GURL(kServiceUrl), | 538 fetcher->set_status(status); |
547 status, | 539 fetcher->set_response_code(200); |
548 0, | 540 fetcher->delegate()->OnURLFetchComplete(fetcher); |
549 net::ResponseCookies(), | |
550 ""); | |
551 | 541 |
552 // Verify that a new URLFetcher was started that bypasses the proxy. | 542 // Verify that a new URLFetcher was started that bypasses the proxy. |
553 fetcher = factory_.GetFetcherByID(0); | 543 fetcher = factory_.GetFetcherByID(0); |
554 ASSERT_TRUE(fetcher); | 544 ASSERT_TRUE(fetcher); |
555 EXPECT_TRUE(fetcher->load_flags() & net::LOAD_BYPASS_PROXY); | 545 EXPECT_TRUE(fetcher->load_flags() & net::LOAD_BYPASS_PROXY); |
556 EXPECT_EQ(original_url, fetcher->original_url()); | 546 EXPECT_EQ(original_url, fetcher->original_url()); |
557 EXPECT_EQ(upload_data, fetcher->upload_data()); | 547 EXPECT_EQ(upload_data, fetcher->upload_data()); |
558 } | 548 } |
559 | 549 |
560 TEST_F(DeviceManagementServiceTest, RetryOnBadResponseFromProxy) { | 550 TEST_F(DeviceManagementServiceTest, RetryOnBadResponseFromProxy) { |
(...skipping 12 matching lines...) Expand all Loading... |
573 const std::string upload_data(fetcher->upload_data()); | 563 const std::string upload_data(fetcher->upload_data()); |
574 fetcher->set_was_fetched_via_proxy(true); | 564 fetcher->set_was_fetched_via_proxy(true); |
575 scoped_refptr<net::HttpResponseHeaders> headers; | 565 scoped_refptr<net::HttpResponseHeaders> headers; |
576 headers = new net::HttpResponseHeaders( | 566 headers = new net::HttpResponseHeaders( |
577 "HTTP/1.1 200 OK\0Content-type: bad/type\0\0"); | 567 "HTTP/1.1 200 OK\0Content-type: bad/type\0\0"); |
578 fetcher->set_response_headers(headers); | 568 fetcher->set_response_headers(headers); |
579 | 569 |
580 // Generate a callback with a valid http response, that was generated by | 570 // Generate a callback with a valid http response, that was generated by |
581 // a bad/wrong proxy. | 571 // a bad/wrong proxy. |
582 net::URLRequestStatus status; | 572 net::URLRequestStatus status; |
583 fetcher->delegate()->OnURLFetchComplete(fetcher, | 573 fetcher->set_url(GURL(kServiceUrl)); |
584 GURL(kServiceUrl), | 574 fetcher->set_status(status); |
585 status, | 575 fetcher->set_response_code(200); |
586 200, | 576 fetcher->delegate()->OnURLFetchComplete(fetcher); |
587 net::ResponseCookies(), | |
588 ""); | |
589 | 577 |
590 // Verify that a new URLFetcher was started that bypasses the proxy. | 578 // Verify that a new URLFetcher was started that bypasses the proxy. |
591 fetcher = factory_.GetFetcherByID(0); | 579 fetcher = factory_.GetFetcherByID(0); |
592 ASSERT_TRUE(fetcher); | 580 ASSERT_TRUE(fetcher); |
593 EXPECT_TRUE((fetcher->load_flags() & net::LOAD_BYPASS_PROXY) != 0); | 581 EXPECT_TRUE((fetcher->load_flags() & net::LOAD_BYPASS_PROXY) != 0); |
594 EXPECT_EQ(original_url, fetcher->original_url()); | 582 EXPECT_EQ(original_url, fetcher->original_url()); |
595 EXPECT_EQ(upload_data, fetcher->upload_data()); | 583 EXPECT_EQ(upload_data, fetcher->upload_data()); |
596 } | 584 } |
597 | 585 |
598 } // namespace policy | 586 } // namespace policy |
OLD | NEW |