| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "remoting/test/app_remoting_test_driver_environment.h" | 5 #include "remoting/test/app_remoting_test_driver_environment.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 if (!access_token_.empty()) { | 52 if (!access_token_.empty()) { |
| 53 return true; | 53 return true; |
| 54 } | 54 } |
| 55 | 55 |
| 56 if (!base::MessageLoop::current()) { | 56 if (!base::MessageLoop::current()) { |
| 57 message_loop_.reset(new base::MessageLoopForIO); | 57 message_loop_.reset(new base::MessageLoopForIO); |
| 58 } | 58 } |
| 59 | 59 |
| 60 // If a unit test has set |test_refresh_token_store_| then we should use it | 60 // If a unit test has set |test_refresh_token_store_| then we should use it |
| 61 // below. Note that we do not want to destroy the test object. | 61 // below. Note that we do not want to destroy the test object. |
| 62 scoped_ptr<RefreshTokenStore> temporary_refresh_token_store; | 62 std::unique_ptr<RefreshTokenStore> temporary_refresh_token_store; |
| 63 RefreshTokenStore* refresh_token_store = test_refresh_token_store_; | 63 RefreshTokenStore* refresh_token_store = test_refresh_token_store_; |
| 64 if (!refresh_token_store) { | 64 if (!refresh_token_store) { |
| 65 temporary_refresh_token_store = | 65 temporary_refresh_token_store = |
| 66 RefreshTokenStore::OnDisk(user_name_, refresh_token_file_path_); | 66 RefreshTokenStore::OnDisk(user_name_, refresh_token_file_path_); |
| 67 refresh_token_store = temporary_refresh_token_store.get(); | 67 refresh_token_store = temporary_refresh_token_store.get(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 // Check to see if we have a refresh token stored for this user. | 70 // Check to see if we have a refresh token stored for this user. |
| 71 refresh_token_ = refresh_token_store->FetchRefreshToken(); | 71 refresh_token_ = refresh_token_store->FetchRefreshToken(); |
| 72 if (refresh_token_.empty()) { | 72 if (refresh_token_.empty()) { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 | 111 |
| 112 base::RunLoop run_loop; | 112 base::RunLoop run_loop; |
| 113 | 113 |
| 114 RemoteHostInfoCallback remote_host_info_fetch_callback = base::Bind( | 114 RemoteHostInfoCallback remote_host_info_fetch_callback = base::Bind( |
| 115 &AppRemotingTestDriverEnvironment::OnRemoteHostInfoRetrieved, | 115 &AppRemotingTestDriverEnvironment::OnRemoteHostInfoRetrieved, |
| 116 base::Unretained(this), run_loop.QuitClosure(), remote_host_info); | 116 base::Unretained(this), run_loop.QuitClosure(), remote_host_info); |
| 117 | 117 |
| 118 // If a unit test has set |test_remote_host_info_fetcher_| then we should use | 118 // If a unit test has set |test_remote_host_info_fetcher_| then we should use |
| 119 // it below. Note that we do not want to destroy the test object at the end | 119 // it below. Note that we do not want to destroy the test object at the end |
| 120 // of the function which is why we have the dance below. | 120 // of the function which is why we have the dance below. |
| 121 scoped_ptr<RemoteHostInfoFetcher> temporary_remote_host_info_fetcher; | 121 std::unique_ptr<RemoteHostInfoFetcher> temporary_remote_host_info_fetcher; |
| 122 RemoteHostInfoFetcher* remote_host_info_fetcher = | 122 RemoteHostInfoFetcher* remote_host_info_fetcher = |
| 123 test_remote_host_info_fetcher_; | 123 test_remote_host_info_fetcher_; |
| 124 if (!remote_host_info_fetcher) { | 124 if (!remote_host_info_fetcher) { |
| 125 temporary_remote_host_info_fetcher.reset(new RemoteHostInfoFetcher()); | 125 temporary_remote_host_info_fetcher.reset(new RemoteHostInfoFetcher()); |
| 126 remote_host_info_fetcher = temporary_remote_host_info_fetcher.get(); | 126 remote_host_info_fetcher = temporary_remote_host_info_fetcher.get(); |
| 127 } | 127 } |
| 128 | 128 |
| 129 remote_host_info_fetcher->RetrieveRemoteHostInfo( | 129 remote_host_info_fetcher->RetrieveRemoteHostInfo( |
| 130 application_id, access_token_, service_environment_, | 130 application_id, access_token_, service_environment_, |
| 131 remote_host_info_fetch_callback); | 131 remote_host_info_fetch_callback); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 RemoteHostInfoFetcher* remote_host_info_fetcher) { | 221 RemoteHostInfoFetcher* remote_host_info_fetcher) { |
| 222 DCHECK(remote_host_info_fetcher); | 222 DCHECK(remote_host_info_fetcher); |
| 223 | 223 |
| 224 test_remote_host_info_fetcher_ = remote_host_info_fetcher; | 224 test_remote_host_info_fetcher_ = remote_host_info_fetcher; |
| 225 } | 225 } |
| 226 | 226 |
| 227 void AppRemotingTestDriverEnvironment::TearDown() { | 227 void AppRemotingTestDriverEnvironment::TearDown() { |
| 228 // If a unit test has set |test_app_remoting_report_issue_request_| then we | 228 // If a unit test has set |test_app_remoting_report_issue_request_| then we |
| 229 // should use it below. Note that we do not want to destroy the test object | 229 // should use it below. Note that we do not want to destroy the test object |
| 230 // at the end of the function which is why we have the dance below. | 230 // at the end of the function which is why we have the dance below. |
| 231 scoped_ptr<AppRemotingReportIssueRequest> temporary_report_issue_request; | 231 std::unique_ptr<AppRemotingReportIssueRequest> temporary_report_issue_request; |
| 232 AppRemotingReportIssueRequest* report_issue_request = | 232 AppRemotingReportIssueRequest* report_issue_request = |
| 233 test_app_remoting_report_issue_request_; | 233 test_app_remoting_report_issue_request_; |
| 234 if (!report_issue_request) { | 234 if (!report_issue_request) { |
| 235 temporary_report_issue_request.reset(new AppRemotingReportIssueRequest()); | 235 temporary_report_issue_request.reset(new AppRemotingReportIssueRequest()); |
| 236 report_issue_request = temporary_report_issue_request.get(); | 236 report_issue_request = temporary_report_issue_request.get(); |
| 237 } | 237 } |
| 238 | 238 |
| 239 for (const auto& kvp : host_ids_to_release_) { | 239 for (const auto& kvp : host_ids_to_release_) { |
| 240 std::string application_id = kvp.first; | 240 std::string application_id = kvp.first; |
| 241 VLOG(1) << "Releasing hosts for application: " << application_id; | 241 VLOG(1) << "Releasing hosts for application: " << application_id; |
| (...skipping 30 matching lines...) Expand all Loading... |
| 272 | 272 |
| 273 access_token_.clear(); | 273 access_token_.clear(); |
| 274 | 274 |
| 275 AccessTokenCallback access_token_callback = | 275 AccessTokenCallback access_token_callback = |
| 276 base::Bind(&AppRemotingTestDriverEnvironment::OnAccessTokenRetrieved, | 276 base::Bind(&AppRemotingTestDriverEnvironment::OnAccessTokenRetrieved, |
| 277 base::Unretained(this), run_loop.QuitClosure()); | 277 base::Unretained(this), run_loop.QuitClosure()); |
| 278 | 278 |
| 279 // If a unit test has set |test_access_token_fetcher_| then we should use it | 279 // If a unit test has set |test_access_token_fetcher_| then we should use it |
| 280 // below. Note that we do not want to destroy the test object at the end of | 280 // below. Note that we do not want to destroy the test object at the end of |
| 281 // the function which is why we have the dance below. | 281 // the function which is why we have the dance below. |
| 282 scoped_ptr<AccessTokenFetcher> temporary_access_token_fetcher; | 282 std::unique_ptr<AccessTokenFetcher> temporary_access_token_fetcher; |
| 283 AccessTokenFetcher* access_token_fetcher = test_access_token_fetcher_; | 283 AccessTokenFetcher* access_token_fetcher = test_access_token_fetcher_; |
| 284 if (!access_token_fetcher) { | 284 if (!access_token_fetcher) { |
| 285 temporary_access_token_fetcher.reset(new AccessTokenFetcher()); | 285 temporary_access_token_fetcher.reset(new AccessTokenFetcher()); |
| 286 access_token_fetcher = temporary_access_token_fetcher.get(); | 286 access_token_fetcher = temporary_access_token_fetcher.get(); |
| 287 } | 287 } |
| 288 | 288 |
| 289 if (!auth_code.empty()) { | 289 if (!auth_code.empty()) { |
| 290 // If the user passed in an authcode, then use it to retrieve an | 290 // If the user passed in an authcode, then use it to retrieve an |
| 291 // updated access/refresh token. | 291 // updated access/refresh token. |
| 292 access_token_fetcher->GetAccessTokenFromAuthCode(auth_code, | 292 access_token_fetcher->GetAccessTokenFromAuthCode(auth_code, |
| 293 access_token_callback); | 293 access_token_callback); |
| 294 } else { | 294 } else { |
| 295 DCHECK(!refresh_token_.empty()); | 295 DCHECK(!refresh_token_.empty()); |
| 296 | 296 |
| 297 access_token_fetcher->GetAccessTokenFromRefreshToken(refresh_token_, | 297 access_token_fetcher->GetAccessTokenFromRefreshToken(refresh_token_, |
| 298 access_token_callback); | 298 access_token_callback); |
| 299 } | 299 } |
| 300 | 300 |
| 301 run_loop.Run(); | 301 run_loop.Run(); |
| 302 | 302 |
| 303 // If we were using an auth_code and received a valid refresh token, | 303 // If we were using an auth_code and received a valid refresh token, |
| 304 // then we want to store it locally. If we had an auth code and did not | 304 // then we want to store it locally. If we had an auth code and did not |
| 305 // receive a refresh token, then we should let the user know and exit. | 305 // receive a refresh token, then we should let the user know and exit. |
| 306 if (!auth_code.empty()) { | 306 if (!auth_code.empty()) { |
| 307 if (!refresh_token_.empty()) { | 307 if (!refresh_token_.empty()) { |
| 308 // If a unit test has set |test_refresh_token_store_| then we should use | 308 // If a unit test has set |test_refresh_token_store_| then we should use |
| 309 // it below. Note that we do not want to destroy the test object. | 309 // it below. Note that we do not want to destroy the test object. |
| 310 scoped_ptr<RefreshTokenStore> temporary_refresh_token_store; | 310 std::unique_ptr<RefreshTokenStore> temporary_refresh_token_store; |
| 311 RefreshTokenStore* refresh_token_store = test_refresh_token_store_; | 311 RefreshTokenStore* refresh_token_store = test_refresh_token_store_; |
| 312 if (!refresh_token_store) { | 312 if (!refresh_token_store) { |
| 313 temporary_refresh_token_store = | 313 temporary_refresh_token_store = |
| 314 RefreshTokenStore::OnDisk(user_name_, refresh_token_file_path_); | 314 RefreshTokenStore::OnDisk(user_name_, refresh_token_file_path_); |
| 315 refresh_token_store = temporary_refresh_token_store.get(); | 315 refresh_token_store = temporary_refresh_token_store.get(); |
| 316 } | 316 } |
| 317 | 317 |
| 318 if (!refresh_token_store->StoreRefreshToken(refresh_token_)) { | 318 if (!refresh_token_store->StoreRefreshToken(refresh_token_)) { |
| 319 // If we failed to persist the refresh token, then we should let the | 319 // If we failed to persist the refresh token, then we should let the |
| 320 // user sort out the issue before continuing. | 320 // user sort out the issue before continuing. |
| (...skipping 30 matching lines...) Expand all Loading... |
| 351 const RemoteHostInfo& retrieved_remote_host_info) { | 351 const RemoteHostInfo& retrieved_remote_host_info) { |
| 352 DCHECK(remote_host_info); | 352 DCHECK(remote_host_info); |
| 353 | 353 |
| 354 *remote_host_info = retrieved_remote_host_info; | 354 *remote_host_info = retrieved_remote_host_info; |
| 355 | 355 |
| 356 done_closure.Run(); | 356 done_closure.Run(); |
| 357 } | 357 } |
| 358 | 358 |
| 359 } // namespace test | 359 } // namespace test |
| 360 } // namespace remoting | 360 } // namespace remoting |
| OLD | NEW |