summaryrefslogtreecommitdiffstats
path: root/chrome/browser/invalidation/fake_invalidation_service.h
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-21 17:46:36 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-21 17:46:36 +0000
commitdd5e392a53c7aa927a9e6cd4ad6a46241b25cbaa (patch)
treeac02ba00655f523156fd95adc98e6661bab31a91 /chrome/browser/invalidation/fake_invalidation_service.h
parente0bc89ec46f87d8da3d6547f6198bf98546ce6ed (diff)
downloadchromium_src-dd5e392a53c7aa927a9e6cd4ad6a46241b25cbaa.zip
chromium_src-dd5e392a53c7aa927a9e6cd4ad6a46241b25cbaa.tar.gz
chromium_src-dd5e392a53c7aa927a9e6cd4ad6a46241b25cbaa.tar.bz2
Make invalidations work for Chrome OS Kiosk Apps.
Kiosk Apps don't have a user logged in, so SigninManager and ProfileOAuth2TokenService don't work. However, Kiosk Apps have access to a device-level robot account for identity. Wire this up with the invalidation code by breaking out the authentication-related pieces into a separate interface and providing implementations both for the regular Profile case as well as Kiosk Apps. The appropriate implementation gets selected by InvalidationServiceFactory. BUG=chromium:269455 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=258522 Review URL: https://codereview.chromium.org/179843002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258623 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/invalidation/fake_invalidation_service.h')
-rw-r--r--chrome/browser/invalidation/fake_invalidation_service.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/chrome/browser/invalidation/fake_invalidation_service.h b/chrome/browser/invalidation/fake_invalidation_service.h
index 5a9a4b7..661c9d0 100644
--- a/chrome/browser/invalidation/fake_invalidation_service.h
+++ b/chrome/browser/invalidation/fake_invalidation_service.h
@@ -10,7 +10,9 @@
#include "base/basictypes.h"
#include "base/callback_forward.h"
+#include "chrome/browser/invalidation/invalidation_auth_provider.h"
#include "chrome/browser/invalidation/invalidation_service.h"
+#include "chrome/browser/signin/fake_profile_oauth2_token_service.h"
#include "sync/notifier/invalidator_registrar.h"
#include "sync/notifier/mock_ack_handler.h"
@@ -26,6 +28,27 @@ namespace invalidation {
class InvalidationLogger;
+// Fake invalidation auth provider implementation.
+class FakeInvalidationAuthProvider : public InvalidationAuthProvider {
+ public:
+ FakeInvalidationAuthProvider();
+ virtual ~FakeInvalidationAuthProvider();
+
+ // InvalidationAuthProvider:
+ virtual OAuth2TokenService* GetTokenService() OVERRIDE;
+ virtual std::string GetAccountId() OVERRIDE;
+ virtual bool ShowLoginUI() OVERRIDE;
+
+ FakeProfileOAuth2TokenService* fake_token_service() {
+ return &token_service_;
+ }
+
+ private:
+ FakeProfileOAuth2TokenService token_service_;
+
+ DISALLOW_COPY_AND_ASSIGN(FakeInvalidationAuthProvider);
+};
+
// An InvalidationService that emits invalidations only when
// its EmitInvalidationForTest method is called.
class FakeInvalidationService : public InvalidationService {
@@ -48,6 +71,7 @@ class FakeInvalidationService : public InvalidationService {
virtual InvalidationLogger* GetInvalidationLogger() OVERRIDE;
virtual void RequestDetailedStatus(
base::Callback<void(const base::DictionaryValue&)> caller) OVERRIDE;
+ virtual InvalidationAuthProvider* GetInvalidationAuthProvider() OVERRIDE;
void SetInvalidatorState(syncer::InvalidatorState state);
@@ -65,6 +89,7 @@ class FakeInvalidationService : public InvalidationService {
std::string client_id_;
syncer::InvalidatorRegistrar invalidator_registrar_;
syncer::MockAckHandler mock_ack_handler_;
+ FakeInvalidationAuthProvider auth_provider_;
DISALLOW_COPY_AND_ASSIGN(FakeInvalidationService);
};