1 // Copyright 2014 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.
5 #include "chrome/browser/extensions/updater/extension_cache_fake.h"
8 #include "base/stl_util.h"
9 #include "content/public/browser/browser_thread.h"
11 namespace extensions
{
13 ExtensionCacheFake::ExtensionCacheFake() {
14 ExtensionCache::SetForTesting(this);
17 ExtensionCacheFake::~ExtensionCacheFake() {
18 ExtensionCache::SetForTesting(NULL
);
21 void ExtensionCacheFake::Start(const base::Closure
& callback
) {
22 content::BrowserThread::PostTask(
23 content::BrowserThread::UI
,
28 void ExtensionCacheFake::Shutdown(const base::Closure
& callback
) {
29 content::BrowserThread::PostTask(
30 content::BrowserThread::UI
,
35 void ExtensionCacheFake::AllowCaching(const std::string
& id
) {
36 allowed_extensions_
.insert(id
);
39 bool ExtensionCacheFake::GetExtension(const std::string
& id
,
40 base::FilePath
* file_path
,
41 std::string
* version
) {
42 Map::iterator it
= cache_
.find(id
);
43 if (it
== cache_
.end()) {
47 *version
= it
->second
.first
;
49 *file_path
= it
->second
.second
;
54 void ExtensionCacheFake::PutExtension(const std::string
& id
,
55 const base::FilePath
& file_path
,
56 const std::string
& version
,
57 const PutExtensionCallback
& callback
) {
58 if (ContainsKey(allowed_extensions_
, id
)) {
59 cache_
[id
].first
= version
;
60 cache_
[id
].second
= file_path
;
61 content::BrowserThread::PostTask(
62 content::BrowserThread::UI
,
64 base::Bind(callback
, file_path
, false));
66 callback
.Run(file_path
, true);
70 } // namespace extensions