From 44ec2b86db9ab39d9e5ea6b072b3c105aeabf30b Mon Sep 17 00:00:00 2001 From: "msw@chromium.org" Date: Tue, 21 Aug 2012 19:37:02 +0000 Subject: Integrate invalidation API into ChromeToMobileService. Update chrome/browser/DEPS with new dependencies: (google/cacheinvalidation and sync/notifier) Observe Sync Notifier invalidation notifications: (depend on this service for mobile list updates) (refresh the device list on cloud print invalidation) Remove RequestMobileListUpdate, timestamp, & account info: (no longer needed with invalidation integration) (just set command state and icon visibility w/HasMobiles) Lazily init the access token, queue search/send operations: (only get an access token as needed, add |task_queue_|) Allow concurrent cloud print device search requests: (handle user-triggered updates while fetching the list) Misc cleanup (CloudPrintUrl handling, tests, etc.) TODO(followup): Additional logging, tests, invalidation ack. BUG=102709,137086 Review URL: https://chromiumcodereview.appspot.com/10834203 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152609 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/chrome_to_mobile_service_unittest.cc | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'chrome/browser/chrome_to_mobile_service_unittest.cc') diff --git a/chrome/browser/chrome_to_mobile_service_unittest.cc b/chrome/browser/chrome_to_mobile_service_unittest.cc index d1e6d41..8cff191 100644 --- a/chrome/browser/chrome_to_mobile_service_unittest.cc +++ b/chrome/browser/chrome_to_mobile_service_unittest.cc @@ -17,7 +17,6 @@ const char kDummyString[] = "dummy"; class DummyNotificationSource {}; -// A mock ChromeToMobileService with a mocked out RequestAccessToken method. class MockChromeToMobileService : public ChromeToMobileService { public: MockChromeToMobileService(); @@ -50,29 +49,37 @@ ChromeToMobileServiceTest::ChromeToMobileServiceTest() {} ChromeToMobileServiceTest::~ChromeToMobileServiceTest() {} -// Ensure that RequestAccessToken is not called for irrelevant notifications. +// Ensure that irrelevant notifications do not invalidate the access token. TEST_F(ChromeToMobileServiceTest, IgnoreIrrelevantNotifications) { EXPECT_CALL(service_, RequestAccessToken()).Times(0); - // Send dummy service/token details (should not refresh token). + service_.SetAccessTokenForTest(kDummyString); + ASSERT_FALSE(service_.GetAccessTokenForTest().empty()); + + // Send dummy service/token details (should not request token). DummyNotificationSource dummy_source; TokenService::TokenAvailableDetails dummy_details(kDummyString, kDummyString); service_.Observe(chrome::NOTIFICATION_TOKEN_AVAILABLE, content::Source(&dummy_source), content::Details(&dummy_details)); + EXPECT_FALSE(service_.GetAccessTokenForTest().empty()); } -// Ensure that RequestAccessToken is called on the proper notification. +// Ensure that proper notifications invalidate the access token. TEST_F(ChromeToMobileServiceTest, AuthenticateOnTokenAvailable) { - EXPECT_CALL(service_, RequestAccessToken()).Times(1); + EXPECT_CALL(service_, RequestAccessToken()).Times(0); + + service_.SetAccessTokenForTest(kDummyString); + ASSERT_FALSE(service_.GetAccessTokenForTest().empty()); - // Send a Gaia OAuth2 Login service dummy token (should refresh token). + // Send a Gaia OAuth2 Login service dummy token (should request token). DummyNotificationSource dummy_source; TokenService::TokenAvailableDetails login_details( GaiaConstants::kGaiaOAuth2LoginRefreshToken, kDummyString); service_.Observe(chrome::NOTIFICATION_TOKEN_AVAILABLE, content::Source(&dummy_source), content::Details(&login_details)); + EXPECT_TRUE(service_.GetAccessTokenForTest().empty()); } } // namespace -- cgit v1.1