blob: 4d0867bf0be74d2a71f1f4fe8b0feebb4d73016c [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_BROWSER_GEOLOCATION_FAKE_ACCESS_TOKEN_STORE_H_
#define CONTENT_BROWSER_GEOLOCATION_FAKE_ACCESS_TOKEN_STORE_H_
#include "base/message_loop/message_loop_proxy.h"
#include "content/public/browser/access_token_store.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
// A fake (non-persisted) access token store instance useful for testing.
class FakeAccessTokenStore : public AccessTokenStore {
public:
FakeAccessTokenStore();
void NotifyDelegateTokensLoaded();
// AccessTokenStore
MOCK_METHOD1(LoadAccessTokens,
void(const LoadAccessTokensCallbackType& callback));
MOCK_METHOD2(SaveAccessToken,
void(const GURL& server_url, const string16& access_token));
void DefaultLoadAccessTokens(const LoadAccessTokensCallbackType& callback);
void DefaultSaveAccessToken(const GURL& server_url,
const string16& access_token);
AccessTokenSet access_token_set_;
LoadAccessTokensCallbackType callback_;
protected:
// Protected instead of private so we can have NiceMocks.
virtual ~FakeAccessTokenStore();
private:
// In some tests, NotifyDelegateTokensLoaded() is called on a thread
// other than the originating thread, in which case we must post
// back to it.
base::MessageLoopProxy* originating_message_loop_;
DISALLOW_COPY_AND_ASSIGN(FakeAccessTokenStore);
};
} // namespace content
#endif // CONTENT_BROWSER_GEOLOCATION_FAKE_ACCESS_TOKEN_STORE_H_