Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: chrome/browser/policy/device_management_service_unittest.cc

Issue 10581012: Move test_url_fetcher_factory.* from content/ to net/url_request (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove export annotations Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/bind.h" 8 #include "base/bind.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/string_split.h" 10 #include "base/string_split.h"
11 #include "chrome/browser/policy/cloud_policy_constants.h" 11 #include "chrome/browser/policy/cloud_policy_constants.h"
12 #include "chrome/browser/policy/device_management_service.h" 12 #include "chrome/browser/policy/device_management_service.h"
13 #include "chrome/test/base/testing_browser_process.h" 13 #include "chrome/test/base/testing_browser_process.h"
14 #include "content/public/test/test_browser_thread.h" 14 #include "content/public/test/test_browser_thread.h"
15 #include "content/public/test/test_url_fetcher_factory.h"
16 #include "net/base/escape.h" 15 #include "net/base/escape.h"
17 #include "net/base/load_flags.h" 16 #include "net/base/load_flags.h"
18 #include "net/base/net_errors.h" 17 #include "net/base/net_errors.h"
19 #include "net/http/http_response_headers.h" 18 #include "net/http/http_response_headers.h"
19 #include "net/url_request/test_url_fetcher_factory.h"
20 #include "net/url_request/url_request_status.h" 20 #include "net/url_request/url_request_status.h"
21 #include "net/url_request/url_request_test_util.h" 21 #include "net/url_request/url_request_test_util.h"
22 #include "testing/gmock/include/gmock/gmock.h" 22 #include "testing/gmock/include/gmock/gmock.h"
23 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
24 24
25 using content::BrowserThread; 25 using content::BrowserThread;
26 using testing::_; 26 using testing::_;
27 27
28 namespace em = enterprise_management; 28 namespace em = enterprise_management;
29 29
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 job->SetClientID(kClientID); 111 job->SetClientID(kClientID);
112 em::DeviceAutoEnrollmentRequest* request = 112 em::DeviceAutoEnrollmentRequest* request =
113 job->GetRequest()->mutable_auto_enrollment_request(); 113 job->GetRequest()->mutable_auto_enrollment_request();
114 request->set_modulus(1); 114 request->set_modulus(1);
115 request->set_remainder(0); 115 request->set_remainder(0);
116 job->Start(base::Bind(&DeviceManagementServiceTestBase::OnJobDone, 116 job->Start(base::Bind(&DeviceManagementServiceTestBase::OnJobDone,
117 base::Unretained(this))); 117 base::Unretained(this)));
118 return job; 118 return job;
119 } 119 }
120 120
121 void SendResponse(TestURLFetcher* fetcher, 121 void SendResponse(net::TestURLFetcher* fetcher,
122 const net::URLRequestStatus request_status, 122 const net::URLRequestStatus request_status,
123 int http_status, 123 int http_status,
124 const std::string& response) { 124 const std::string& response) {
125 fetcher->set_url(GURL(kServiceUrl)); 125 fetcher->set_url(GURL(kServiceUrl));
126 fetcher->set_status(request_status); 126 fetcher->set_status(request_status);
127 fetcher->set_response_code(http_status); 127 fetcher->set_response_code(http_status);
128 fetcher->SetResponseString(response); 128 fetcher->SetResponseString(response);
129 fetcher->delegate()->OnURLFetchComplete(fetcher); 129 fetcher->delegate()->OnURLFetchComplete(fetcher);
130 } 130 }
131 131
132 MOCK_METHOD2(OnJobDone, void(DeviceManagementStatus, 132 MOCK_METHOD2(OnJobDone, void(DeviceManagementStatus,
133 const em::DeviceManagementResponse&)); 133 const em::DeviceManagementResponse&));
134 134
135 TestURLFetcherFactory factory_; 135 net::TestURLFetcherFactory factory_;
136 scoped_ptr<DeviceManagementService> service_; 136 scoped_ptr<DeviceManagementService> service_;
137 137
138 private: 138 private:
139 MessageLoopForUI loop_; 139 MessageLoopForUI loop_;
140 content::TestBrowserThread ui_thread_; 140 content::TestBrowserThread ui_thread_;
141 content::TestBrowserThread io_thread_; 141 content::TestBrowserThread io_thread_;
142 }; 142 };
143 143
144 struct FailedRequestParams { 144 struct FailedRequestParams {
145 FailedRequestParams(DeviceManagementStatus expected_status, 145 FailedRequestParams(DeviceManagementStatus expected_status,
(...skipping 20 matching lines...) Expand all
166 // A parameterized test case for erroneous response situations, they're mostly 166 // A parameterized test case for erroneous response situations, they're mostly
167 // the same for all kinds of requests. 167 // the same for all kinds of requests.
168 class DeviceManagementServiceFailedRequestTest 168 class DeviceManagementServiceFailedRequestTest
169 : public DeviceManagementServiceTestBase, 169 : public DeviceManagementServiceTestBase,
170 public testing::WithParamInterface<FailedRequestParams> { 170 public testing::WithParamInterface<FailedRequestParams> {
171 }; 171 };
172 172
173 TEST_P(DeviceManagementServiceFailedRequestTest, RegisterRequest) { 173 TEST_P(DeviceManagementServiceFailedRequestTest, RegisterRequest) {
174 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _)); 174 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
175 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 175 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
176 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 176 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
177 ASSERT_TRUE(fetcher); 177 ASSERT_TRUE(fetcher);
178 178
179 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_, 179 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_,
180 GetParam().response_); 180 GetParam().response_);
181 } 181 }
182 182
183 TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) { 183 TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) {
184 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _)); 184 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
185 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob()); 185 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob());
186 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 186 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
187 ASSERT_TRUE(fetcher); 187 ASSERT_TRUE(fetcher);
188 188
189 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_, 189 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_,
190 GetParam().response_); 190 GetParam().response_);
191 } 191 }
192 192
193 TEST_P(DeviceManagementServiceFailedRequestTest, PolicyRequest) { 193 TEST_P(DeviceManagementServiceFailedRequestTest, PolicyRequest) {
194 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _)); 194 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
195 scoped_ptr<DeviceManagementRequestJob> request_job(StartPolicyFetchJob()); 195 scoped_ptr<DeviceManagementRequestJob> request_job(StartPolicyFetchJob());
196 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 196 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
197 ASSERT_TRUE(fetcher); 197 ASSERT_TRUE(fetcher);
198 198
199 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_, 199 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_,
200 GetParam().response_); 200 GetParam().response_);
201 } 201 }
202 202
203 TEST_P(DeviceManagementServiceFailedRequestTest, AutoEnrollmentRequest) { 203 TEST_P(DeviceManagementServiceFailedRequestTest, AutoEnrollmentRequest) {
204 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _)); 204 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
205 scoped_ptr<DeviceManagementRequestJob> request_job(StartAutoEnrollmentJob()); 205 scoped_ptr<DeviceManagementRequestJob> request_job(StartAutoEnrollmentJob());
206 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 206 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
207 ASSERT_TRUE(fetcher); 207 ASSERT_TRUE(fetcher);
208 208
209 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_, 209 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_,
210 GetParam().response_); 210 GetParam().response_);
211 } 211 }
212 212
213 INSTANTIATE_TEST_CASE_P( 213 INSTANTIATE_TEST_CASE_P(
214 DeviceManagementServiceFailedRequestTestInstance, 214 DeviceManagementServiceFailedRequestTestInstance,
215 DeviceManagementServiceFailedRequestTest, 215 DeviceManagementServiceFailedRequestTest,
216 testing::Values( 216 testing::Values(
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 arg_data == reference_data; 352 arg_data == reference_data;
353 } 353 }
354 354
355 TEST_F(DeviceManagementServiceTest, RegisterRequest) { 355 TEST_F(DeviceManagementServiceTest, RegisterRequest) {
356 em::DeviceManagementResponse expected_response; 356 em::DeviceManagementResponse expected_response;
357 expected_response.mutable_register_response()-> 357 expected_response.mutable_register_response()->
358 set_device_management_token(kDMToken); 358 set_device_management_token(kDMToken);
359 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, 359 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS,
360 MessageEquals(expected_response))); 360 MessageEquals(expected_response)));
361 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 361 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
362 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 362 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
363 ASSERT_TRUE(fetcher); 363 ASSERT_TRUE(fetcher);
364 364
365 CheckURLAndQueryParams(fetcher->GetOriginalURL(), 365 CheckURLAndQueryParams(fetcher->GetOriginalURL(),
366 dm_protocol::kValueRequestRegister, 366 dm_protocol::kValueRequestRegister,
367 kClientID); 367 kClientID);
368 368
369 std::string expected_data; 369 std::string expected_data;
370 ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data)); 370 ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
371 EXPECT_EQ(expected_data, fetcher->upload_data()); 371 EXPECT_EQ(expected_data, fetcher->upload_data());
372 372
373 // Generate the response. 373 // Generate the response.
374 std::string response_data; 374 std::string response_data;
375 ASSERT_TRUE(expected_response.SerializeToString(&response_data)); 375 ASSERT_TRUE(expected_response.SerializeToString(&response_data));
376 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); 376 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0);
377 SendResponse(fetcher, status, 200, response_data); 377 SendResponse(fetcher, status, 200, response_data);
378 } 378 }
379 379
380 TEST_F(DeviceManagementServiceTest, UnregisterRequest) { 380 TEST_F(DeviceManagementServiceTest, UnregisterRequest) {
381 em::DeviceManagementResponse expected_response; 381 em::DeviceManagementResponse expected_response;
382 expected_response.mutable_unregister_response(); 382 expected_response.mutable_unregister_response();
383 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, 383 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS,
384 MessageEquals(expected_response))); 384 MessageEquals(expected_response)));
385 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob()); 385 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob());
386 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 386 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
387 ASSERT_TRUE(fetcher); 387 ASSERT_TRUE(fetcher);
388 388
389 // Check the data the fetcher received. 389 // Check the data the fetcher received.
390 const GURL& request_url(fetcher->GetOriginalURL()); 390 const GURL& request_url(fetcher->GetOriginalURL());
391 const GURL service_url(kServiceUrl); 391 const GURL service_url(kServiceUrl);
392 EXPECT_EQ(service_url.scheme(), request_url.scheme()); 392 EXPECT_EQ(service_url.scheme(), request_url.scheme());
393 EXPECT_EQ(service_url.host(), request_url.host()); 393 EXPECT_EQ(service_url.host(), request_url.host());
394 EXPECT_EQ(service_url.port(), request_url.port()); 394 EXPECT_EQ(service_url.port(), request_url.port());
395 EXPECT_EQ(service_url.path(), request_url.path()); 395 EXPECT_EQ(service_url.path(), request_url.path());
396 396
397 CheckURLAndQueryParams(fetcher->GetOriginalURL(), 397 CheckURLAndQueryParams(fetcher->GetOriginalURL(),
398 dm_protocol::kValueRequestUnregister, 398 dm_protocol::kValueRequestUnregister,
399 kClientID); 399 kClientID);
400 400
401 std::string expected_data; 401 std::string expected_data;
402 ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data)); 402 ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
403 EXPECT_EQ(expected_data, fetcher->upload_data()); 403 EXPECT_EQ(expected_data, fetcher->upload_data());
404 404
405 // Generate the response. 405 // Generate the response.
406 std::string response_data; 406 std::string response_data;
407 ASSERT_TRUE(expected_response.SerializeToString(&response_data)); 407 ASSERT_TRUE(expected_response.SerializeToString(&response_data));
408 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); 408 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0);
409 SendResponse(fetcher, status, 200, response_data); 409 SendResponse(fetcher, status, 200, response_data);
410 } 410 }
411 411
412 TEST_F(DeviceManagementServiceTest, CancelRegisterRequest) { 412 TEST_F(DeviceManagementServiceTest, CancelRegisterRequest) {
413 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0); 413 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
414 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 414 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
415 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 415 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
416 ASSERT_TRUE(fetcher); 416 ASSERT_TRUE(fetcher);
417 417
418 // There shouldn't be any callbacks. 418 // There shouldn't be any callbacks.
419 request_job.reset(); 419 request_job.reset();
420 } 420 }
421 421
422 TEST_F(DeviceManagementServiceTest, CancelUnregisterRequest) { 422 TEST_F(DeviceManagementServiceTest, CancelUnregisterRequest) {
423 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0); 423 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
424 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob()); 424 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob());
425 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 425 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
426 ASSERT_TRUE(fetcher); 426 ASSERT_TRUE(fetcher);
427 427
428 // There shouldn't be any callbacks. 428 // There shouldn't be any callbacks.
429 request_job.reset(); 429 request_job.reset();
430 } 430 }
431 431
432 TEST_F(DeviceManagementServiceTest, CancelPolicyRequest) { 432 TEST_F(DeviceManagementServiceTest, CancelPolicyRequest) {
433 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0); 433 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
434 scoped_ptr<DeviceManagementRequestJob> request_job(StartPolicyFetchJob()); 434 scoped_ptr<DeviceManagementRequestJob> request_job(StartPolicyFetchJob());
435 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 435 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
436 ASSERT_TRUE(fetcher); 436 ASSERT_TRUE(fetcher);
437 437
438 // There shouldn't be any callbacks. 438 // There shouldn't be any callbacks.
439 request_job.reset(); 439 request_job.reset();
440 } 440 }
441 441
442 TEST_F(DeviceManagementServiceTest, JobQueueing) { 442 TEST_F(DeviceManagementServiceTest, JobQueueing) {
443 // Start with a non-initialized service. 443 // Start with a non-initialized service.
444 ResetService(); 444 ResetService();
445 445
446 em::DeviceManagementResponse expected_response; 446 em::DeviceManagementResponse expected_response;
447 expected_response.mutable_register_response()-> 447 expected_response.mutable_register_response()->
448 set_device_management_token(kDMToken); 448 set_device_management_token(kDMToken);
449 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, 449 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS,
450 MessageEquals(expected_response))); 450 MessageEquals(expected_response)));
451 451
452 // Make a request. We should not see any fetchers being created. 452 // Make a request. We should not see any fetchers being created.
453 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 453 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
454 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 454 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
455 ASSERT_FALSE(fetcher); 455 ASSERT_FALSE(fetcher);
456 456
457 // Now initialize the service. That should start the job. 457 // Now initialize the service. That should start the job.
458 InitializeService(); 458 InitializeService();
459 fetcher = factory_.GetFetcherByID(0); 459 fetcher = factory_.GetFetcherByID(0);
460 ASSERT_TRUE(fetcher); 460 ASSERT_TRUE(fetcher);
461 factory_.RemoveFetcherFromMap(0); 461 factory_.RemoveFetcherFromMap(0);
462 462
463 // Check that the request is processed as expected. 463 // Check that the request is processed as expected.
464 std::string response_data; 464 std::string response_data;
465 ASSERT_TRUE(expected_response.SerializeToString(&response_data)); 465 ASSERT_TRUE(expected_response.SerializeToString(&response_data));
466 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); 466 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0);
467 SendResponse(fetcher, status, 200, response_data); 467 SendResponse(fetcher, status, 200, response_data);
468 } 468 }
469 469
470 TEST_F(DeviceManagementServiceTest, CancelRequestAfterShutdown) { 470 TEST_F(DeviceManagementServiceTest, CancelRequestAfterShutdown) {
471 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0); 471 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
472 scoped_ptr<DeviceManagementRequestJob> request_job(StartPolicyFetchJob()); 472 scoped_ptr<DeviceManagementRequestJob> request_job(StartPolicyFetchJob());
473 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 473 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
474 ASSERT_TRUE(fetcher); 474 ASSERT_TRUE(fetcher);
475 475
476 // Shutdown the service and cancel the job afterwards. 476 // Shutdown the service and cancel the job afterwards.
477 service_->Shutdown(); 477 service_->Shutdown();
478 request_job.reset(); 478 request_job.reset();
479 } 479 }
480 480
481 ACTION_P(ResetPointer, pointer) { 481 ACTION_P(ResetPointer, pointer) {
482 pointer->reset(); 482 pointer->reset();
483 } 483 }
484 484
485 TEST_F(DeviceManagementServiceTest, CancelDuringCallback) { 485 TEST_F(DeviceManagementServiceTest, CancelDuringCallback) {
486 // Make a request. 486 // Make a request.
487 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 487 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
488 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 488 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
489 ASSERT_TRUE(fetcher); 489 ASSERT_TRUE(fetcher);
490 490
491 EXPECT_CALL(*this, OnJobDone(_, _)) 491 EXPECT_CALL(*this, OnJobDone(_, _))
492 .WillOnce(ResetPointer(&request_job)); 492 .WillOnce(ResetPointer(&request_job));
493 493
494 // Generate a callback. 494 // Generate a callback.
495 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); 495 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0);
496 SendResponse(fetcher, status, 500, ""); 496 SendResponse(fetcher, status, 500, "");
497 497
498 // Job should have been reset. 498 // Job should have been reset.
499 EXPECT_FALSE(request_job.get()); 499 EXPECT_FALSE(request_job.get());
500 } 500 }
501 501
502 TEST_F(DeviceManagementServiceTest, RetryOnProxyError) { 502 TEST_F(DeviceManagementServiceTest, RetryOnProxyError) {
503 // Make a request. 503 // Make a request.
504 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0); 504 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
505 505
506 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 506 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
507 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 507 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
508 ASSERT_TRUE(fetcher); 508 ASSERT_TRUE(fetcher);
509 EXPECT_TRUE((fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY) == 0); 509 EXPECT_TRUE((fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY) == 0);
510 const GURL original_url(fetcher->GetOriginalURL()); 510 const GURL original_url(fetcher->GetOriginalURL());
511 const std::string upload_data(fetcher->upload_data()); 511 const std::string upload_data(fetcher->upload_data());
512 512
513 // Generate a callback with a proxy failure. 513 // Generate a callback with a proxy failure.
514 net::URLRequestStatus status(net::URLRequestStatus::FAILED, 514 net::URLRequestStatus status(net::URLRequestStatus::FAILED,
515 net::ERR_PROXY_CONNECTION_FAILED); 515 net::ERR_PROXY_CONNECTION_FAILED);
516 SendResponse(fetcher, status, 200, ""); 516 SendResponse(fetcher, status, 200, "");
517 517
518 // Verify that a new URLFetcher was started that bypasses the proxy. 518 // Verify that a new URLFetcher was started that bypasses the proxy.
519 fetcher = factory_.GetFetcherByID(0); 519 fetcher = factory_.GetFetcherByID(0);
520 ASSERT_TRUE(fetcher); 520 ASSERT_TRUE(fetcher);
521 EXPECT_TRUE(fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY); 521 EXPECT_TRUE(fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY);
522 EXPECT_EQ(original_url, fetcher->GetOriginalURL()); 522 EXPECT_EQ(original_url, fetcher->GetOriginalURL());
523 EXPECT_EQ(upload_data, fetcher->upload_data()); 523 EXPECT_EQ(upload_data, fetcher->upload_data());
524 } 524 }
525 525
526 TEST_F(DeviceManagementServiceTest, RetryOnBadResponseFromProxy) { 526 TEST_F(DeviceManagementServiceTest, RetryOnBadResponseFromProxy) {
527 // Make a request. 527 // Make a request.
528 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0); 528 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
529 529
530 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 530 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
531 TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 531 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
532 ASSERT_TRUE(fetcher); 532 ASSERT_TRUE(fetcher);
533 EXPECT_TRUE((fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY) == 0); 533 EXPECT_TRUE((fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY) == 0);
534 const GURL original_url(fetcher->GetOriginalURL()); 534 const GURL original_url(fetcher->GetOriginalURL());
535 const std::string upload_data(fetcher->upload_data()); 535 const std::string upload_data(fetcher->upload_data());
536 fetcher->set_was_fetched_via_proxy(true); 536 fetcher->set_was_fetched_via_proxy(true);
537 scoped_refptr<net::HttpResponseHeaders> headers; 537 scoped_refptr<net::HttpResponseHeaders> headers;
538 headers = new net::HttpResponseHeaders( 538 headers = new net::HttpResponseHeaders(
539 "HTTP/1.1 200 OK\0Content-type: bad/type\0\0"); 539 "HTTP/1.1 200 OK\0Content-type: bad/type\0\0");
540 fetcher->set_response_headers(headers); 540 fetcher->set_response_headers(headers);
541 541
542 // Generate a callback with a valid http response, that was generated by 542 // Generate a callback with a valid http response, that was generated by
543 // a bad/wrong proxy. 543 // a bad/wrong proxy.
544 net::URLRequestStatus status; 544 net::URLRequestStatus status;
545 SendResponse(fetcher, status, 200, ""); 545 SendResponse(fetcher, status, 200, "");
546 546
547 // Verify that a new URLFetcher was started that bypasses the proxy. 547 // Verify that a new URLFetcher was started that bypasses the proxy.
548 fetcher = factory_.GetFetcherByID(0); 548 fetcher = factory_.GetFetcherByID(0);
549 ASSERT_TRUE(fetcher); 549 ASSERT_TRUE(fetcher);
550 EXPECT_TRUE((fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY) != 0); 550 EXPECT_TRUE((fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY) != 0);
551 EXPECT_EQ(original_url, fetcher->GetOriginalURL()); 551 EXPECT_EQ(original_url, fetcher->GetOriginalURL());
552 EXPECT_EQ(upload_data, fetcher->upload_data()); 552 EXPECT_EQ(upload_data, fetcher->upload_data());
553 } 553 }
554 554
555 } // namespace policy 555 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/net/gaia/gaia_oauth_fetcher_unittest.cc ('k') | chrome/browser/policy/testing_policy_url_fetcher_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698