| OLD | NEW |
| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" | 10 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 if (interceptor_) | 113 if (interceptor_) |
| 114 interceptor_->PushJobCallback(base::Bind(&ResponseJob)); | 114 interceptor_->PushJobCallback(base::Bind(&ResponseJob)); |
| 115 } | 115 } |
| 116 | 116 |
| 117 void PerformRegistration() { | 117 void PerformRegistration() { |
| 118 ExpectRequest(); | 118 ExpectRequest(); |
| 119 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 119 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
| 120 .WillOnce( | 120 .WillOnce( |
| 121 DoAll(Invoke(this, | 121 DoAll(Invoke(this, |
| 122 &DeviceManagementServiceIntegrationTest::RecordToken), | 122 &DeviceManagementServiceIntegrationTest::RecordToken), |
| 123 InvokeWithoutArgs(MessageLoop::current(), | 123 InvokeWithoutArgs(base::MessageLoop::current(), |
| 124 &MessageLoop::Quit))); | 124 &base::MessageLoop::Quit))); |
| 125 scoped_ptr<DeviceManagementRequestJob> job( | 125 scoped_ptr<DeviceManagementRequestJob> job( |
| 126 service_->CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)); | 126 service_->CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)); |
| 127 job->SetGaiaToken("gaia_auth_token"); | 127 job->SetGaiaToken("gaia_auth_token"); |
| 128 job->SetOAuthToken("oauth_token"); | 128 job->SetOAuthToken("oauth_token"); |
| 129 job->SetClientID("testid"); | 129 job->SetClientID("testid"); |
| 130 job->GetRequest()->mutable_register_request(); | 130 job->GetRequest()->mutable_register_request(); |
| 131 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 131 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
| 132 base::Unretained(this))); | 132 base::Unretained(this))); |
| 133 MessageLoop::current()->Run(); | 133 base::MessageLoop::current()->Run(); |
| 134 } | 134 } |
| 135 | 135 |
| 136 virtual void SetUpOnMainThread() OVERRIDE { | 136 virtual void SetUpOnMainThread() OVERRIDE { |
| 137 std::string service_url((this->*(GetParam()))()); | 137 std::string service_url((this->*(GetParam()))()); |
| 138 service_.reset(new DeviceManagementService(service_url)); | 138 service_.reset(new DeviceManagementService(service_url)); |
| 139 service_->ScheduleInitialization(0); | 139 service_->ScheduleInitialization(0); |
| 140 } | 140 } |
| 141 | 141 |
| 142 virtual void CleanUpOnMainThread() OVERRIDE { | 142 virtual void CleanUpOnMainThread() OVERRIDE { |
| 143 service_.reset(); | 143 service_.reset(); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 171 | 171 |
| 172 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, | 172 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, |
| 173 ApiAuthCodeFetch) { | 173 ApiAuthCodeFetch) { |
| 174 PerformRegistration(); | 174 PerformRegistration(); |
| 175 | 175 |
| 176 ExpectRequest(); | 176 ExpectRequest(); |
| 177 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 177 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
| 178 .WillOnce( | 178 .WillOnce( |
| 179 DoAll(Invoke(this, | 179 DoAll(Invoke(this, |
| 180 &DeviceManagementServiceIntegrationTest::RecordAuthCode), | 180 &DeviceManagementServiceIntegrationTest::RecordAuthCode), |
| 181 InvokeWithoutArgs(MessageLoop::current(), | 181 InvokeWithoutArgs(base::MessageLoop::current(), |
| 182 &MessageLoop::Quit))); | 182 &base::MessageLoop::Quit))); |
| 183 scoped_ptr<DeviceManagementRequestJob> job(service_->CreateJob( | 183 scoped_ptr<DeviceManagementRequestJob> job(service_->CreateJob( |
| 184 DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH)); | 184 DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH)); |
| 185 job->SetDMToken(token_); | 185 job->SetDMToken(token_); |
| 186 job->SetClientID("testid"); | 186 job->SetClientID("testid"); |
| 187 em::DeviceServiceApiAccessRequest* request = | 187 em::DeviceServiceApiAccessRequest* request = |
| 188 job->GetRequest()->mutable_service_api_access_request(); | 188 job->GetRequest()->mutable_service_api_access_request(); |
| 189 request->add_auth_scope("authScope4Test"); | 189 request->add_auth_scope("authScope4Test"); |
| 190 request->set_oauth2_client_id("oauth2ClientId4Test"); | 190 request->set_oauth2_client_id("oauth2ClientId4Test"); |
| 191 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 191 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
| 192 base::Unretained(this))); | 192 base::Unretained(this))); |
| 193 MessageLoop::current()->Run(); | 193 base::MessageLoop::current()->Run(); |
| 194 ASSERT_EQ("fake_auth_code", robot_auth_code_); | 194 ASSERT_EQ("fake_auth_code", robot_auth_code_); |
| 195 } | 195 } |
| 196 | 196 |
| 197 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) { | 197 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) { |
| 198 PerformRegistration(); | 198 PerformRegistration(); |
| 199 | 199 |
| 200 ExpectRequest(); | 200 ExpectRequest(); |
| 201 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 201 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
| 202 .WillOnce(InvokeWithoutArgs(MessageLoop::current(), &MessageLoop::Quit)); | 202 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), |
| 203 &base::MessageLoop::Quit)); |
| 203 scoped_ptr<DeviceManagementRequestJob> job( | 204 scoped_ptr<DeviceManagementRequestJob> job( |
| 204 service_->CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)); | 205 service_->CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)); |
| 205 job->SetDMToken(token_); | 206 job->SetDMToken(token_); |
| 206 job->SetUserAffiliation(USER_AFFILIATION_NONE); | 207 job->SetUserAffiliation(USER_AFFILIATION_NONE); |
| 207 job->SetClientID("testid"); | 208 job->SetClientID("testid"); |
| 208 em::DevicePolicyRequest* request = | 209 em::DevicePolicyRequest* request = |
| 209 job->GetRequest()->mutable_policy_request(); | 210 job->GetRequest()->mutable_policy_request(); |
| 210 request->add_request()->set_policy_type(dm_protocol::kChromeUserPolicyType); | 211 request->add_request()->set_policy_type(dm_protocol::kChromeUserPolicyType); |
| 211 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 212 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
| 212 base::Unretained(this))); | 213 base::Unretained(this))); |
| 213 MessageLoop::current()->Run(); | 214 base::MessageLoop::current()->Run(); |
| 214 } | 215 } |
| 215 | 216 |
| 216 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Unregistration) { | 217 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Unregistration) { |
| 217 PerformRegistration(); | 218 PerformRegistration(); |
| 218 | 219 |
| 219 ExpectRequest(); | 220 ExpectRequest(); |
| 220 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 221 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
| 221 .WillOnce(InvokeWithoutArgs(MessageLoop::current(), &MessageLoop::Quit)); | 222 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), |
| 223 &base::MessageLoop::Quit)); |
| 222 scoped_ptr<DeviceManagementRequestJob> job( | 224 scoped_ptr<DeviceManagementRequestJob> job( |
| 223 service_->CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION)); | 225 service_->CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION)); |
| 224 job->SetDMToken(token_); | 226 job->SetDMToken(token_); |
| 225 job->SetClientID("testid"); | 227 job->SetClientID("testid"); |
| 226 job->GetRequest()->mutable_unregister_request(); | 228 job->GetRequest()->mutable_unregister_request(); |
| 227 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 229 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
| 228 base::Unretained(this))); | 230 base::Unretained(this))); |
| 229 MessageLoop::current()->Run(); | 231 base::MessageLoop::current()->Run(); |
| 230 } | 232 } |
| 231 | 233 |
| 232 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, AutoEnrollment) { | 234 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, AutoEnrollment) { |
| 233 ExpectRequest(); | 235 ExpectRequest(); |
| 234 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 236 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
| 235 .WillOnce(InvokeWithoutArgs(MessageLoop::current(), &MessageLoop::Quit)); | 237 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), |
| 238 &base::MessageLoop::Quit)); |
| 236 scoped_ptr<DeviceManagementRequestJob> job( | 239 scoped_ptr<DeviceManagementRequestJob> job( |
| 237 service_->CreateJob(DeviceManagementRequestJob::TYPE_AUTO_ENROLLMENT)); | 240 service_->CreateJob(DeviceManagementRequestJob::TYPE_AUTO_ENROLLMENT)); |
| 238 job->SetClientID("testid"); | 241 job->SetClientID("testid"); |
| 239 job->GetRequest()->mutable_auto_enrollment_request()->set_remainder(0); | 242 job->GetRequest()->mutable_auto_enrollment_request()->set_remainder(0); |
| 240 job->GetRequest()->mutable_auto_enrollment_request()->set_modulus(1); | 243 job->GetRequest()->mutable_auto_enrollment_request()->set_modulus(1); |
| 241 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 244 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
| 242 base::Unretained(this))); | 245 base::Unretained(this))); |
| 243 MessageLoop::current()->Run(); | 246 base::MessageLoop::current()->Run(); |
| 244 } | 247 } |
| 245 | 248 |
| 246 INSTANTIATE_TEST_CASE_P( | 249 INSTANTIATE_TEST_CASE_P( |
| 247 DeviceManagementServiceIntegrationTestInstance, | 250 DeviceManagementServiceIntegrationTestInstance, |
| 248 DeviceManagementServiceIntegrationTest, | 251 DeviceManagementServiceIntegrationTest, |
| 249 testing::Values(&DeviceManagementServiceIntegrationTest::InitCannedResponse, | 252 testing::Values(&DeviceManagementServiceIntegrationTest::InitCannedResponse, |
| 250 &DeviceManagementServiceIntegrationTest::InitTestServer)); | 253 &DeviceManagementServiceIntegrationTest::InitTestServer)); |
| 251 | 254 |
| 252 } // namespace policy | 255 } // namespace policy |
| OLD | NEW |