- add sources.
[platform/framework/web/crosswalk.git] / src / content / browser / geolocation / fake_access_token_store.cc
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
12 using base::MessageLoopProxy;
13 using testing::_;
14 using testing::Invoke;
15
16 namespace content {
17
18 FakeAccessTokenStore::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
28 void 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
41 void FakeAccessTokenStore::DefaultLoadAccessTokens(
42     const LoadAccessTokensCallbackType& callback) {
43   originating_message_loop_ = MessageLoopProxy::current().get();
44   callback_ = callback;
45 }
46
47 void FakeAccessTokenStore::DefaultSaveAccessToken(
48     const GURL& server_url, const string16& access_token) {
49   DCHECK(server_url.is_valid());
50   access_token_set_[server_url] = access_token;
51 }
52
53 FakeAccessTokenStore::~FakeAccessTokenStore() {}
54
55 }  // namespace content