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

Side by Side Diff: chrome/browser/services/gcm/gcm_account_tracker_unittest.cc

Issue 631343002: [GCM] Fetching OAuth2 tokens periodically in account tracker (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mapper-in-driver
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/services/gcm/gcm_account_tracker.h" 5 #include "chrome/browser/services/gcm/gcm_account_tracker.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/message_loop/message_loop.h" 11 #include "chrome/test/base/testing_pref_service_syncable.h"
12 #include "base/run_loop.h"
13 #include "components/gcm_driver/fake_gcm_driver.h" 12 #include "components/gcm_driver/fake_gcm_driver.h"
14 #include "google_apis/gaia/fake_identity_provider.h" 13 #include "google_apis/gaia/fake_identity_provider.h"
15 #include "google_apis/gaia/fake_oauth2_token_service.h" 14 #include "google_apis/gaia/fake_oauth2_token_service.h"
16 #include "google_apis/gaia/google_service_auth_error.h" 15 #include "google_apis/gaia/google_service_auth_error.h"
17 #include "net/http/http_status_code.h" 16 #include "net/http/http_status_code.h"
18 #include "net/url_request/test_url_fetcher_factory.h" 17 #include "net/url_request/test_url_fetcher_factory.h"
19 #include "net/url_request/url_request_test_util.h" 18 #include "net/url_request/url_request_test_util.h"
20 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
21 20
22 namespace gcm { 21 namespace gcm {
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 CustomFakeGCMDriver* driver() { return &driver_; } 162 CustomFakeGCMDriver* driver() { return &driver_; }
164 163
165 private: 164 private:
166 CustomFakeGCMDriver driver_; 165 CustomFakeGCMDriver driver_;
167 166
168 base::MessageLoop message_loop_; 167 base::MessageLoop message_loop_;
169 net::TestURLFetcherFactory test_fetcher_factory_; 168 net::TestURLFetcherFactory test_fetcher_factory_;
170 scoped_ptr<FakeOAuth2TokenService> fake_token_service_; 169 scoped_ptr<FakeOAuth2TokenService> fake_token_service_;
171 scoped_ptr<FakeIdentityProvider> fake_identity_provider_; 170 scoped_ptr<FakeIdentityProvider> fake_identity_provider_;
172 scoped_ptr<GCMAccountTracker> tracker_; 171 scoped_ptr<GCMAccountTracker> tracker_;
172 scoped_ptr<TestingPrefServiceSyncable> pref_service_;
173 }; 173 };
174 174
175 GCMAccountTrackerTest::GCMAccountTrackerTest() { 175 GCMAccountTrackerTest::GCMAccountTrackerTest() {
176 fake_token_service_.reset(new FakeOAuth2TokenService()); 176 fake_token_service_.reset(new FakeOAuth2TokenService());
177 177
178 fake_identity_provider_.reset( 178 fake_identity_provider_.reset(
179 new FakeIdentityProvider(fake_token_service_.get())); 179 new FakeIdentityProvider(fake_token_service_.get()));
180 180
181 scoped_ptr<gaia::AccountTracker> gaia_account_tracker( 181 scoped_ptr<gaia::AccountTracker> gaia_account_tracker(
182 new gaia::AccountTracker(fake_identity_provider_.get(), 182 new gaia::AccountTracker(fake_identity_provider_.get(),
183 new net::TestURLRequestContextGetter( 183 new net::TestURLRequestContextGetter(
184 message_loop_.message_loop_proxy()))); 184 message_loop_.message_loop_proxy())));
185 185
186 tracker_.reset(new GCMAccountTracker(gaia_account_tracker.Pass(), &driver_)); 186 pref_service_.reset(new TestingPrefServiceSyncable);
187 pref_service_->registry()->RegisterInt64Pref(
188 "gcm.last_token_fetching_ts",
189 0L,
190 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
191
192 tracker_.reset(new GCMAccountTracker(
193 gaia_account_tracker.Pass(), &driver_, pref_service_.get()));
187 } 194 }
188 195
189 GCMAccountTrackerTest::~GCMAccountTrackerTest() { 196 GCMAccountTrackerTest::~GCMAccountTrackerTest() {
190 if (tracker_) 197 if (tracker_)
191 tracker_->Shutdown(); 198 tracker_->Shutdown();
192 } 199 }
193 200
194 void GCMAccountTrackerTest::StartAccountSignIn(const std::string& account_key) { 201 void GCMAccountTrackerTest::StartAccountSignIn(const std::string& account_key) {
195 fake_identity_provider_->LogIn(account_key); 202 fake_identity_provider_->LogIn(account_key);
196 fake_token_service_->AddAccount(account_key); 203 fake_token_service_->AddAccount(account_key);
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 // clean it up before the SetAccessToken is called. This also means a new 423 // clean it up before the SetAccessToken is called. This also means a new
417 // token request will be issued 424 // token request will be issued
418 EXPECT_FALSE(driver()->update_accounts_called()); 425 EXPECT_FALSE(driver()->update_accounts_called());
419 EXPECT_EQ(1UL, tracker()->get_pending_token_request_count()); 426 EXPECT_EQ(1UL, tracker()->get_pending_token_request_count());
420 } 427 }
421 428
422 // TODO(fgorski): Add test for adding account after removal >> make sure it does 429 // TODO(fgorski): Add test for adding account after removal >> make sure it does
423 // not mark removal. 430 // not mark removal.
424 431
425 } // namespace gcm 432 } // namespace gcm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698