| 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 24 matching lines...) Expand all  Loading... | 
| 35 // DeviceManagementResponse to |response_data|. | 35 // DeviceManagementResponse to |response_data|. | 
| 36 void ConstructResponse(const char* request_data, | 36 void ConstructResponse(const char* request_data, | 
| 37                        uint64 request_data_length, | 37                        uint64 request_data_length, | 
| 38                        std::string* response_data) { | 38                        std::string* response_data) { | 
| 39   em::DeviceManagementRequest request; | 39   em::DeviceManagementRequest request; | 
| 40   ASSERT_TRUE(request.ParseFromArray(request_data, request_data_length)); | 40   ASSERT_TRUE(request.ParseFromArray(request_data, request_data_length)); | 
| 41   em::DeviceManagementResponse response; | 41   em::DeviceManagementResponse response; | 
| 42   if (request.has_register_request()) { | 42   if (request.has_register_request()) { | 
| 43     response.mutable_register_response()->set_device_management_token( | 43     response.mutable_register_response()->set_device_management_token( | 
| 44         "fake_token"); | 44         "fake_token"); | 
|  | 45   } else if (request.has_service_api_access_request()) { | 
|  | 46     response.mutable_service_api_access_response()->set_auth_code( | 
|  | 47         "fake_auth_code"); | 
| 45   } else if (request.has_unregister_request()) { | 48   } else if (request.has_unregister_request()) { | 
| 46     response.mutable_unregister_response(); | 49     response.mutable_unregister_response(); | 
| 47   } else if (request.has_policy_request()) { | 50   } else if (request.has_policy_request()) { | 
| 48     response.mutable_policy_response()->add_response(); | 51     response.mutable_policy_response()->add_response(); | 
| 49   } else if (request.has_auto_enrollment_request()) { | 52   } else if (request.has_auto_enrollment_request()) { | 
| 50     response.mutable_auto_enrollment_response(); | 53     response.mutable_auto_enrollment_response(); | 
| 51   } else { | 54   } else { | 
| 52     FAIL() << "Failed to parse request."; | 55     FAIL() << "Failed to parse request."; | 
| 53   } | 56   } | 
| 54   ASSERT_TRUE(response.SerializeToString(response_data)); | 57   ASSERT_TRUE(response.SerializeToString(response_data)); | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 92   std::string InitCannedResponse() { | 95   std::string InitCannedResponse() { | 
| 93     interceptor_.reset(new TestRequestInterceptor("localhost")); | 96     interceptor_.reset(new TestRequestInterceptor("localhost")); | 
| 94     return "http://localhost"; | 97     return "http://localhost"; | 
| 95   } | 98   } | 
| 96 | 99 | 
| 97   std::string InitTestServer() { | 100   std::string InitTestServer() { | 
| 98     StartTestServer(); | 101     StartTestServer(); | 
| 99     return test_server_->GetServiceURL().spec(); | 102     return test_server_->GetServiceURL().spec(); | 
| 100   } | 103   } | 
| 101 | 104 | 
|  | 105   void RecordAuthCode(DeviceManagementStatus status, | 
|  | 106                       const em::DeviceManagementResponse& response) { | 
|  | 107     robot_auth_code_ = response.service_api_access_response().auth_code(); | 
|  | 108   } | 
|  | 109 | 
| 102  protected: | 110  protected: | 
| 103   void ExpectRequest() { | 111   void ExpectRequest() { | 
| 104     if (interceptor_) | 112     if (interceptor_) | 
| 105       interceptor_->PushJobCallback(base::Bind(&ResponseJob)); | 113       interceptor_->PushJobCallback(base::Bind(&ResponseJob)); | 
| 106   } | 114   } | 
| 107 | 115 | 
| 108   void PerformRegistration() { | 116   void PerformRegistration() { | 
| 109     ExpectRequest(); | 117     ExpectRequest(); | 
| 110     EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _)) | 118     EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _)) | 
| 111         .WillOnce( | 119         .WillOnce( | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 141         new LocalPolicyTestServer("device_management_service_browsertest")); | 149         new LocalPolicyTestServer("device_management_service_browsertest")); | 
| 142     ASSERT_TRUE(test_server_->Start()); | 150     ASSERT_TRUE(test_server_->Start()); | 
| 143   } | 151   } | 
| 144 | 152 | 
| 145   void RecordToken(DeviceManagementStatus status, | 153   void RecordToken(DeviceManagementStatus status, | 
| 146                    const em::DeviceManagementResponse& response) { | 154                    const em::DeviceManagementResponse& response) { | 
| 147     token_ = response.register_response().device_management_token(); | 155     token_ = response.register_response().device_management_token(); | 
| 148   } | 156   } | 
| 149 | 157 | 
| 150   std::string token_; | 158   std::string token_; | 
|  | 159   std::string robot_auth_code_; | 
| 151   scoped_ptr<DeviceManagementService> service_; | 160   scoped_ptr<DeviceManagementService> service_; | 
| 152   scoped_ptr<LocalPolicyTestServer> test_server_; | 161   scoped_ptr<LocalPolicyTestServer> test_server_; | 
| 153   scoped_ptr<TestRequestInterceptor> interceptor_; | 162   scoped_ptr<TestRequestInterceptor> interceptor_; | 
| 154 }; | 163 }; | 
| 155 | 164 | 
| 156 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Registration) { | 165 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Registration) { | 
| 157   PerformRegistration(); | 166   PerformRegistration(); | 
| 158   EXPECT_FALSE(token_.empty()); | 167   EXPECT_FALSE(token_.empty()); | 
| 159 } | 168 } | 
| 160 | 169 | 
|  | 170 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, | 
|  | 171                        ApiAuthCodeFetch) { | 
|  | 172   PerformRegistration(); | 
|  | 173 | 
|  | 174   ExpectRequest(); | 
|  | 175   EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _)) | 
|  | 176       .WillOnce( | 
|  | 177           DoAll(Invoke(this, | 
|  | 178                        &DeviceManagementServiceIntegrationTest::RecordAuthCode), | 
|  | 179                 InvokeWithoutArgs(MessageLoop::current(), | 
|  | 180                                   &MessageLoop::Quit))); | 
|  | 181   scoped_ptr<DeviceManagementRequestJob> job(service_->CreateJob( | 
|  | 182       DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH)); | 
|  | 183   job->SetDMToken(token_); | 
|  | 184   job->SetClientID("testid"); | 
|  | 185   em::DeviceServiceApiAccessRequest* request = | 
|  | 186       job->GetRequest()->mutable_service_api_access_request(); | 
|  | 187   request->add_auth_scope("authScope4Test"); | 
|  | 188   request->set_oauth2_client_id("oauth2ClientId4Test"); | 
|  | 189   job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 
|  | 190                         base::Unretained(this))); | 
|  | 191   MessageLoop::current()->Run(); | 
|  | 192   ASSERT_EQ("fake_auth_code", robot_auth_code_); | 
|  | 193 } | 
|  | 194 | 
| 161 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) { | 195 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) { | 
| 162   PerformRegistration(); | 196   PerformRegistration(); | 
| 163 | 197 | 
| 164   ExpectRequest(); | 198   ExpectRequest(); | 
| 165   EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _)) | 199   EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _)) | 
| 166       .WillOnce(InvokeWithoutArgs(MessageLoop::current(), &MessageLoop::Quit)); | 200       .WillOnce(InvokeWithoutArgs(MessageLoop::current(), &MessageLoop::Quit)); | 
| 167   scoped_ptr<DeviceManagementRequestJob> job( | 201   scoped_ptr<DeviceManagementRequestJob> job( | 
| 168       service_->CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)); | 202       service_->CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)); | 
| 169   job->SetDMToken(token_); | 203   job->SetDMToken(token_); | 
| 170   job->SetUserAffiliation(USER_AFFILIATION_NONE); | 204   job->SetUserAffiliation(USER_AFFILIATION_NONE); | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 207   MessageLoop::current()->Run(); | 241   MessageLoop::current()->Run(); | 
| 208 } | 242 } | 
| 209 | 243 | 
| 210 INSTANTIATE_TEST_CASE_P( | 244 INSTANTIATE_TEST_CASE_P( | 
| 211     DeviceManagementServiceIntegrationTestInstance, | 245     DeviceManagementServiceIntegrationTestInstance, | 
| 212     DeviceManagementServiceIntegrationTest, | 246     DeviceManagementServiceIntegrationTest, | 
| 213     testing::Values(&DeviceManagementServiceIntegrationTest::InitCannedResponse, | 247     testing::Values(&DeviceManagementServiceIntegrationTest::InitCannedResponse, | 
| 214                     &DeviceManagementServiceIntegrationTest::InitTestServer)); | 248                     &DeviceManagementServiceIntegrationTest::InitTestServer)); | 
| 215 | 249 | 
| 216 }  // namespace policy | 250 }  // namespace policy | 
| OLD | NEW | 
|---|