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

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

Issue 12538009: Public Sessions: fetch device robot api token during enterprise enrollment. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase Created 7 years, 7 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
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/strings/string_split.h" 10 #include "base/strings/string_split.h"
(...skipping 24 matching lines...) Expand all
35 // Encoded empty response messages for testing the error code paths. 35 // Encoded empty response messages for testing the error code paths.
36 const char kResponseEmpty[] = "\x08\x00"; 36 const char kResponseEmpty[] = "\x08\x00";
37 37
38 #define PROTO_STRING(name) (std::string(name, arraysize(name) - 1)) 38 #define PROTO_STRING(name) (std::string(name, arraysize(name) - 1))
39 39
40 // Some helper constants. 40 // Some helper constants.
41 const char kGaiaAuthToken[] = "gaia-auth-token"; 41 const char kGaiaAuthToken[] = "gaia-auth-token";
42 const char kOAuthToken[] = "oauth-token"; 42 const char kOAuthToken[] = "oauth-token";
43 const char kDMToken[] = "device-management-token"; 43 const char kDMToken[] = "device-management-token";
44 const char kClientID[] = "device-id"; 44 const char kClientID[] = "device-id";
45 const char kRobotAuthCode[] = "robot-oauth-auth-code";
45 46
46 // Unit tests for the device management policy service. The tests are run 47 // Unit tests for the device management policy service. The tests are run
47 // against a TestURLFetcherFactory that is used to short-circuit the request 48 // against a TestURLFetcherFactory that is used to short-circuit the request
48 // without calling into the actual network stack. 49 // without calling into the actual network stack.
49 class DeviceManagementServiceTestBase : public testing::Test { 50 class DeviceManagementServiceTestBase : public testing::Test {
50 protected: 51 protected:
51 DeviceManagementServiceTestBase() 52 DeviceManagementServiceTestBase()
52 : ui_thread_(BrowserThread::UI, &loop_), 53 : ui_thread_(BrowserThread::UI, &loop_),
53 io_thread_(BrowserThread::IO, &loop_) { 54 io_thread_(BrowserThread::IO, &loop_) {
54 ResetService(); 55 ResetService();
(...skipping 25 matching lines...) Expand all
80 job->SetOAuthToken(kOAuthToken); 81 job->SetOAuthToken(kOAuthToken);
81 job->SetClientID(kClientID); 82 job->SetClientID(kClientID);
82 job->GetRequest()->mutable_register_request(); 83 job->GetRequest()->mutable_register_request();
83 job->SetRetryCallback(base::Bind( 84 job->SetRetryCallback(base::Bind(
84 &DeviceManagementServiceTestBase::OnJobRetry, base::Unretained(this))); 85 &DeviceManagementServiceTestBase::OnJobRetry, base::Unretained(this)));
85 job->Start(base::Bind(&DeviceManagementServiceTestBase::OnJobDone, 86 job->Start(base::Bind(&DeviceManagementServiceTestBase::OnJobDone,
86 base::Unretained(this))); 87 base::Unretained(this)));
87 return job; 88 return job;
88 } 89 }
89 90
91 DeviceManagementRequestJob* StartApiAuthCodeFetchJob() {
92 DeviceManagementRequestJob* job = service_->CreateJob(
93 DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH);
94 job->SetGaiaToken(kGaiaAuthToken);
95 job->SetOAuthToken(kOAuthToken);
96 job->SetClientID(kClientID);
97 job->GetRequest()->mutable_service_api_access_request();
98 job->SetRetryCallback(base::Bind(
99 &DeviceManagementServiceTestBase::OnJobRetry, base::Unretained(this)));
100 job->Start(base::Bind(&DeviceManagementServiceTestBase::OnJobDone,
101 base::Unretained(this)));
102 return job;
103 }
104
90 DeviceManagementRequestJob* StartUnregistrationJob() { 105 DeviceManagementRequestJob* StartUnregistrationJob() {
91 DeviceManagementRequestJob* job = 106 DeviceManagementRequestJob* job =
92 service_->CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION); 107 service_->CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION);
93 job->SetDMToken(kDMToken); 108 job->SetDMToken(kDMToken);
94 job->SetClientID(kClientID); 109 job->SetClientID(kClientID);
95 job->GetRequest()->mutable_unregister_request(); 110 job->GetRequest()->mutable_unregister_request();
96 job->SetRetryCallback(base::Bind( 111 job->SetRetryCallback(base::Bind(
97 &DeviceManagementServiceTestBase::OnJobRetry, base::Unretained(this))); 112 &DeviceManagementServiceTestBase::OnJobRetry, base::Unretained(this)));
98 job->Start(base::Bind(&DeviceManagementServiceTestBase::OnJobDone, 113 job->Start(base::Bind(&DeviceManagementServiceTestBase::OnJobDone,
99 base::Unretained(this))); 114 base::Unretained(this)));
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _)); 204 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
190 EXPECT_CALL(*this, OnJobRetry(_)).Times(0); 205 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
191 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 206 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
192 net::TestURLFetcher* fetcher = GetFetcher(); 207 net::TestURLFetcher* fetcher = GetFetcher();
193 ASSERT_TRUE(fetcher); 208 ASSERT_TRUE(fetcher);
194 209
195 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_, 210 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_,
196 GetParam().response_); 211 GetParam().response_);
197 } 212 }
198 213
214 TEST_P(DeviceManagementServiceFailedRequestTest, ApiAuthCodeFetchRequest) {
215 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
216 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
217 scoped_ptr<DeviceManagementRequestJob> request_job(
218 StartApiAuthCodeFetchJob());
219 net::TestURLFetcher* fetcher = GetFetcher();
220 ASSERT_TRUE(fetcher);
221
222 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_,
223 GetParam().response_);
224 }
225
199 TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) { 226 TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) {
200 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _)); 227 EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
201 EXPECT_CALL(*this, OnJobRetry(_)).Times(0); 228 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
202 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob()); 229 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob());
203 net::TestURLFetcher* fetcher = GetFetcher(); 230 net::TestURLFetcher* fetcher = GetFetcher();
204 ASSERT_TRUE(fetcher); 231 ASSERT_TRUE(fetcher);
205 232
206 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_, 233 SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_,
207 GetParam().response_); 234 GetParam().response_);
208 } 235 }
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data)); 410 ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
384 EXPECT_EQ(expected_data, fetcher->upload_data()); 411 EXPECT_EQ(expected_data, fetcher->upload_data());
385 412
386 // Generate the response. 413 // Generate the response.
387 std::string response_data; 414 std::string response_data;
388 ASSERT_TRUE(expected_response.SerializeToString(&response_data)); 415 ASSERT_TRUE(expected_response.SerializeToString(&response_data));
389 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); 416 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0);
390 SendResponse(fetcher, status, 200, response_data); 417 SendResponse(fetcher, status, 200, response_data);
391 } 418 }
392 419
420 TEST_F(DeviceManagementServiceTest, ApiAuthCodeFetchRequest) {
421 em::DeviceManagementResponse expected_response;
422 expected_response.mutable_service_api_access_response()->set_auth_code(
423 kRobotAuthCode);
424 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS,
425 MessageEquals(expected_response)));
426 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
427 scoped_ptr<DeviceManagementRequestJob> request_job(
428 StartApiAuthCodeFetchJob());
429 net::TestURLFetcher* fetcher = GetFetcher();
430 ASSERT_TRUE(fetcher);
431
432 CheckURLAndQueryParams(fetcher->GetOriginalURL(),
433 dm_protocol::kValueRequestApiAuthorization,
434 kClientID);
435
436 std::string expected_data;
437 ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
438 EXPECT_EQ(expected_data, fetcher->upload_data());
439
440 // Generate the response.
441 std::string response_data;
442 ASSERT_TRUE(expected_response.SerializeToString(&response_data));
443 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0);
444 SendResponse(fetcher, status, 200, response_data);
445 }
446
393 TEST_F(DeviceManagementServiceTest, UnregisterRequest) { 447 TEST_F(DeviceManagementServiceTest, UnregisterRequest) {
394 em::DeviceManagementResponse expected_response; 448 em::DeviceManagementResponse expected_response;
395 expected_response.mutable_unregister_response(); 449 expected_response.mutable_unregister_response();
396 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, 450 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS,
397 MessageEquals(expected_response))); 451 MessageEquals(expected_response)));
398 EXPECT_CALL(*this, OnJobRetry(_)).Times(0); 452 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
399 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob()); 453 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob());
400 net::TestURLFetcher* fetcher = GetFetcher(); 454 net::TestURLFetcher* fetcher = GetFetcher();
401 ASSERT_TRUE(fetcher); 455 ASSERT_TRUE(fetcher);
402 456
(...skipping 24 matching lines...) Expand all
427 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0); 481 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
428 EXPECT_CALL(*this, OnJobRetry(_)).Times(0); 482 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
429 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob()); 483 scoped_ptr<DeviceManagementRequestJob> request_job(StartRegistrationJob());
430 net::TestURLFetcher* fetcher = GetFetcher(); 484 net::TestURLFetcher* fetcher = GetFetcher();
431 ASSERT_TRUE(fetcher); 485 ASSERT_TRUE(fetcher);
432 486
433 // There shouldn't be any callbacks. 487 // There shouldn't be any callbacks.
434 request_job.reset(); 488 request_job.reset();
435 } 489 }
436 490
491 TEST_F(DeviceManagementServiceTest, CancelApiAuthCodeFetch) {
492 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
493 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
494 scoped_ptr<DeviceManagementRequestJob> request_job(
495 StartApiAuthCodeFetchJob());
496 net::TestURLFetcher* fetcher = GetFetcher();
497 ASSERT_TRUE(fetcher);
498
499 // There shouldn't be any callbacks.
500 request_job.reset();
501 }
502
437 TEST_F(DeviceManagementServiceTest, CancelUnregisterRequest) { 503 TEST_F(DeviceManagementServiceTest, CancelUnregisterRequest) {
438 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0); 504 EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
439 EXPECT_CALL(*this, OnJobRetry(_)).Times(0); 505 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
440 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob()); 506 scoped_ptr<DeviceManagementRequestJob> request_job(StartUnregistrationJob());
441 net::TestURLFetcher* fetcher = GetFetcher(); 507 net::TestURLFetcher* fetcher = GetFetcher();
442 ASSERT_TRUE(fetcher); 508 ASSERT_TRUE(fetcher);
443 509
444 // There shouldn't be any callbacks. 510 // There shouldn't be any callbacks.
445 request_job.reset(); 511 request_job.reset();
446 } 512 }
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 EXPECT_CALL(*this, OnJobDone(DM_STATUS_REQUEST_FAILED, _)); 691 EXPECT_CALL(*this, OnJobDone(DM_STATUS_REQUEST_FAILED, _));
626 EXPECT_CALL(*this, OnJobRetry(_)).Times(0); 692 EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
627 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::FAILED, 693 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::FAILED,
628 net::ERR_NETWORK_CHANGED)); 694 net::ERR_NETWORK_CHANGED));
629 fetcher->set_url(GURL(kServiceUrl)); 695 fetcher->set_url(GURL(kServiceUrl));
630 fetcher->delegate()->OnURLFetchComplete(fetcher); 696 fetcher->delegate()->OnURLFetchComplete(fetcher);
631 Mock::VerifyAndClearExpectations(this); 697 Mock::VerifyAndClearExpectations(this);
632 } 698 }
633 699
634 } // namespace policy 700 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/cloud/device_management_service_browsertest.cc ('k') | chrome/browser/policy/cloud/enterprise_metrics.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698