Home | History | Annotate | Download | only in geolocation
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CONTENT_BROWSER_GEOLOCATION_FAKE_ACCESS_TOKEN_STORE_H_
      6 #define CONTENT_BROWSER_GEOLOCATION_FAKE_ACCESS_TOKEN_STORE_H_
      7 
      8 #include "base/message_loop/message_loop_proxy.h"
      9 #include "content/public/browser/access_token_store.h"
     10 #include "testing/gmock/include/gmock/gmock.h"
     11 #include "testing/gtest/include/gtest/gtest.h"
     12 
     13 namespace content {
     14 
     15 // A fake (non-persisted) access token store instance useful for testing.
     16 class FakeAccessTokenStore : public AccessTokenStore {
     17  public:
     18   FakeAccessTokenStore();
     19 
     20   void NotifyDelegateTokensLoaded();
     21 
     22   // AccessTokenStore
     23   MOCK_METHOD1(LoadAccessTokens,
     24                void(const LoadAccessTokensCallbackType& callback));
     25   MOCK_METHOD2(SaveAccessToken,
     26                void(const GURL& server_url, const string16& access_token));
     27 
     28   void DefaultLoadAccessTokens(const LoadAccessTokensCallbackType& callback);
     29 
     30   void DefaultSaveAccessToken(const GURL& server_url,
     31                               const string16& access_token);
     32 
     33   AccessTokenSet access_token_set_;
     34   LoadAccessTokensCallbackType callback_;
     35 
     36  protected:
     37   // Protected instead of private so we can have NiceMocks.
     38   virtual ~FakeAccessTokenStore();
     39 
     40  private:
     41   // In some tests, NotifyDelegateTokensLoaded() is called on a thread
     42   // other than the originating thread, in which case we must post
     43   // back to it.
     44   base::MessageLoopProxy* originating_message_loop_;
     45 
     46   DISALLOW_COPY_AND_ASSIGN(FakeAccessTokenStore);
     47 };
     48 
     49 }  // namespace content
     50 
     51 #endif  // CONTENT_BROWSER_GEOLOCATION_FAKE_ACCESS_TOKEN_STORE_H_
     52