1// Copyright (c) 2011 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#include "content/browser/geolocation/fake_access_token_store.h" 6 7#include "base/bind.h" 8#include "base/location.h" 9#include "base/logging.h" 10#include "base/message_loop/message_loop_proxy.h" 11 12using base::MessageLoopProxy; 13using testing::_; 14using testing::Invoke; 15 16namespace content { 17 18FakeAccessTokenStore::FakeAccessTokenStore() 19 : originating_message_loop_(NULL) { 20 ON_CALL(*this, LoadAccessTokens(_)) 21 .WillByDefault(Invoke(this, 22 &FakeAccessTokenStore::DefaultLoadAccessTokens)); 23 ON_CALL(*this, SaveAccessToken(_, _)) 24 .WillByDefault(Invoke(this, 25 &FakeAccessTokenStore::DefaultSaveAccessToken)); 26} 27 28void FakeAccessTokenStore::NotifyDelegateTokensLoaded() { 29 DCHECK(originating_message_loop_); 30 if (!originating_message_loop_->BelongsToCurrentThread()) { 31 originating_message_loop_->PostTask( 32 FROM_HERE, 33 base::Bind(&FakeAccessTokenStore::NotifyDelegateTokensLoaded, this)); 34 return; 35 } 36 37 net::URLRequestContextGetter* context_getter = NULL; 38 callback_.Run(access_token_set_, context_getter); 39} 40 41void FakeAccessTokenStore::DefaultLoadAccessTokens( 42 const LoadAccessTokensCallbackType& callback) { 43 originating_message_loop_ = MessageLoopProxy::current().get(); 44 callback_ = callback; 45} 46 47void FakeAccessTokenStore::DefaultSaveAccessToken( 48 const GURL& server_url, const base::string16& access_token) { 49 DCHECK(server_url.is_valid()); 50 access_token_set_[server_url] = access_token; 51} 52 53FakeAccessTokenStore::~FakeAccessTokenStore() {} 54 55} // namespace content 56