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

Side by Side Diff: chrome/browser/supervised_user/permission_request_creator_apiary.cc

Issue 614053002: Supervised Users: Add tests for PermissionRequestCreatorApiary. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/supervised_user/permission_request_creator_apiary.h" 5 #include "chrome/browser/supervised_user/permission_request_creator_apiary.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 18 matching lines...) Expand all
29 using net::URLFetcher; 29 using net::URLFetcher;
30 30
31 const int kNumRetries = 1; 31 const int kNumRetries = 1;
32 const char kIdKey[] = "id"; 32 const char kIdKey[] = "id";
33 const char kNamespace[] = "CHROME"; 33 const char kNamespace[] = "CHROME";
34 const char kState[] = "PENDING"; 34 const char kState[] = "PENDING";
35 35
36 static const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s"; 36 static const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s";
37 37
38 struct PermissionRequestCreatorApiary::Request { 38 struct PermissionRequestCreatorApiary::Request {
39 Request(const GURL& url_requested, const base::Closure& callback); 39 Request(const GURL& url_requested,
40 const base::Closure& callback,
41 int url_fetcher_id);
40 ~Request(); 42 ~Request();
41 43
42 GURL url_requested; 44 GURL url_requested;
43 base::Closure callback; 45 base::Closure callback;
44 scoped_ptr<OAuth2TokenService::Request> access_token_request; 46 scoped_ptr<OAuth2TokenService::Request> access_token_request;
45 std::string access_token; 47 std::string access_token;
46 bool access_token_expired; 48 bool access_token_expired;
49 int url_fetcher_id;
47 scoped_ptr<net::URLFetcher> url_fetcher; 50 scoped_ptr<net::URLFetcher> url_fetcher;
48 }; 51 };
49 52
50 PermissionRequestCreatorApiary::Request::Request(const GURL& url_requested, 53 PermissionRequestCreatorApiary::Request::Request(const GURL& url_requested,
51 const base::Closure& callback) 54 const base::Closure& callback,
55 int url_fetcher_id)
52 : url_requested(url_requested), 56 : url_requested(url_requested),
53 callback(callback), 57 callback(callback),
54 access_token_expired(false) { 58 access_token_expired(false),
59 url_fetcher_id(url_fetcher_id) {
55 } 60 }
56 61
57 PermissionRequestCreatorApiary::Request::~Request() {} 62 PermissionRequestCreatorApiary::Request::~Request() {}
58 63
59 PermissionRequestCreatorApiary::PermissionRequestCreatorApiary( 64 PermissionRequestCreatorApiary::PermissionRequestCreatorApiary(
65 const GURL& api_url,
60 OAuth2TokenService* oauth2_token_service, 66 OAuth2TokenService* oauth2_token_service,
61 scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper, 67 scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper,
62 net::URLRequestContextGetter* context) 68 net::URLRequestContextGetter* context)
63 : OAuth2TokenService::Consumer("permissions_creator"), 69 : OAuth2TokenService::Consumer("permissions_creator"),
70 url_(api_url),
64 oauth2_token_service_(oauth2_token_service), 71 oauth2_token_service_(oauth2_token_service),
65 signin_wrapper_(signin_wrapper.Pass()), 72 signin_wrapper_(signin_wrapper.Pass()),
66 context_(context) {} 73 context_(context),
74 url_fetcher_id_(0) {
75 DCHECK(url_.is_valid());
76 }
67 77
68 PermissionRequestCreatorApiary::~PermissionRequestCreatorApiary() {} 78 PermissionRequestCreatorApiary::~PermissionRequestCreatorApiary() {}
69 79
70 // static 80 // static
71 scoped_ptr<PermissionRequestCreator> 81 scoped_ptr<PermissionRequestCreator>
72 PermissionRequestCreatorApiary::CreateWithProfile(Profile* profile) { 82 PermissionRequestCreatorApiary::CreateWithProfile(const GURL& api_url,
83 Profile* profile) {
73 ProfileOAuth2TokenService* token_service = 84 ProfileOAuth2TokenService* token_service =
74 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); 85 ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
75 SigninManagerBase* signin = SigninManagerFactory::GetForProfile(profile); 86 SigninManagerBase* signin = SigninManagerFactory::GetForProfile(profile);
76 scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper( 87 scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper(
77 new SupervisedUserSigninManagerWrapper(profile, signin)); 88 new SupervisedUserSigninManagerWrapper(profile, signin));
78 scoped_ptr<PermissionRequestCreator> creator( 89 scoped_ptr<PermissionRequestCreator> creator(
79 new PermissionRequestCreatorApiary( 90 new PermissionRequestCreatorApiary(api_url,
80 token_service, signin_wrapper.Pass(), profile->GetRequestContext())); 91 token_service,
92 signin_wrapper.Pass(),
93 profile->GetRequestContext()));
81 return creator.Pass(); 94 return creator.Pass();
82 } 95 }
83 96
84 void PermissionRequestCreatorApiary::CreatePermissionRequest( 97 void PermissionRequestCreatorApiary::CreatePermissionRequest(
85 const GURL& url_requested, 98 const GURL& url_requested,
86 const base::Closure& callback) { 99 const base::Closure& callback) {
87 requests_.push_back(new Request(url_requested, callback)); 100 requests_.push_back(new Request(url_requested, callback, url_fetcher_id_));
88 StartFetching(requests_.back()); 101 StartFetching(requests_.back());
89 } 102 }
90 103
91 std::string PermissionRequestCreatorApiary::GetApiScopeToUse() const { 104 std::string PermissionRequestCreatorApiary::GetApiScopeToUse() const {
92 if (CommandLine::ForCurrentProcess()->HasSwitch( 105 if (CommandLine::ForCurrentProcess()->HasSwitch(
93 switches::kPermissionRequestApiScope)) { 106 switches::kPermissionRequestApiScope)) {
94 return CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 107 return CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
95 switches::kPermissionRequestApiScope); 108 switches::kPermissionRequestApiScope);
96 } else { 109 } else {
97 return signin_wrapper_->GetSyncScopeToUse(); 110 return signin_wrapper_->GetSyncScopeToUse();
(...skipping 12 matching lines...) Expand all
110 const std::string& access_token, 123 const std::string& access_token,
111 const base::Time& expiration_time) { 124 const base::Time& expiration_time) {
112 RequestIterator it = requests_.begin(); 125 RequestIterator it = requests_.begin();
113 while (it != requests_.end()) { 126 while (it != requests_.end()) {
114 if (request == (*it)->access_token_request.get()) 127 if (request == (*it)->access_token_request.get())
115 break; 128 break;
116 ++it; 129 ++it;
117 } 130 }
118 DCHECK(it != requests_.end()); 131 DCHECK(it != requests_.end());
119 (*it)->access_token = access_token; 132 (*it)->access_token = access_token;
120 GURL url(CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
121 switches::kPermissionRequestApiUrl));
122 const int id = 0;
123 133
124 (*it)->url_fetcher.reset(URLFetcher::Create(id, url, URLFetcher::POST, this)); 134 (*it)->url_fetcher.reset(
135 URLFetcher::Create((*it)->url_fetcher_id, url_, URLFetcher::POST, this));
125 136
126 (*it)->url_fetcher->SetRequestContext(context_); 137 (*it)->url_fetcher->SetRequestContext(context_);
127 (*it)->url_fetcher->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | 138 (*it)->url_fetcher->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
128 net::LOAD_DO_NOT_SAVE_COOKIES); 139 net::LOAD_DO_NOT_SAVE_COOKIES);
129 (*it)->url_fetcher->SetAutomaticallyRetryOnNetworkChanges(kNumRetries); 140 (*it)->url_fetcher->SetAutomaticallyRetryOnNetworkChanges(kNumRetries);
130 (*it)->url_fetcher->AddExtraRequestHeader( 141 (*it)->url_fetcher->AddExtraRequestHeader(
131 base::StringPrintf(kAuthorizationHeaderFormat, access_token.c_str())); 142 base::StringPrintf(kAuthorizationHeaderFormat, access_token.c_str()));
132 143
133 base::DictionaryValue dict; 144 base::DictionaryValue dict;
134 dict.SetStringWithoutPathExpansion("namespace", kNamespace); 145 dict.SetStringWithoutPathExpansion("namespace", kNamespace);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 DispatchGoogleServiceAuthError( 222 DispatchGoogleServiceAuthError(
212 it, GoogleServiceAuthError::FromConnectionError(error_code)); 223 it, GoogleServiceAuthError::FromConnectionError(error_code));
213 } 224 }
214 225
215 void PermissionRequestCreatorApiary::DispatchGoogleServiceAuthError( 226 void PermissionRequestCreatorApiary::DispatchGoogleServiceAuthError(
216 RequestIterator it, 227 RequestIterator it,
217 const GoogleServiceAuthError& error) { 228 const GoogleServiceAuthError& error) {
218 (*it)->callback.Run(); 229 (*it)->callback.Run();
219 requests_.erase(it); 230 requests_.erase(it);
220 } 231 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698