// Copyright (c) 2011 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. #include "content/browser/geolocation/fake_access_token_store.h" #include "base/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/message_loop/message_loop_proxy.h" using base::MessageLoopProxy; using testing::_; using testing::Invoke; namespace content { FakeAccessTokenStore::FakeAccessTokenStore() : originating_message_loop_(NULL) { ON_CALL(*this, LoadAccessTokens(_)) .WillByDefault(Invoke(this, &FakeAccessTokenStore::DefaultLoadAccessTokens)); ON_CALL(*this, SaveAccessToken(_, _)) .WillByDefault(Invoke(this, &FakeAccessTokenStore::DefaultSaveAccessToken)); } void FakeAccessTokenStore::NotifyDelegateTokensLoaded() { DCHECK(originating_message_loop_); if (!originating_message_loop_->BelongsToCurrentThread()) { originating_message_loop_->PostTask( FROM_HERE, base::Bind(&FakeAccessTokenStore::NotifyDelegateTokensLoaded, this)); return; } net::URLRequestContextGetter* context_getter = NULL; callback_.Run(access_token_set_, context_getter); } void FakeAccessTokenStore::DefaultLoadAccessTokens( const LoadAccessTokensCallbackType& callback) { originating_message_loop_ = MessageLoopProxy::current().get(); callback_ = callback; } void FakeAccessTokenStore::DefaultSaveAccessToken( const GURL& server_url, const base::string16& access_token) { DCHECK(server_url.is_valid()); access_token_set_[server_url] = access_token; } FakeAccessTokenStore::~FakeAccessTokenStore() {} } // namespace content