- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / extensions / extension_install_prompt_test_utils.mm
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 #import "chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils.h"
6
7 #include "base/file_util.h"
8 #include "base/files/file_path.h"
9 #include "base/json/json_file_value_serializer.h"
10 #include "base/path_service.h"
11 #include "chrome/common/chrome_paths.h"
12 #include "chrome/common/extensions/extension.h"
13
14 using extensions::Extension;
15
16 namespace chrome {
17
18 void MockExtensionInstallPromptDelegate::InstallUIProceed() {
19   ++proceed_count_;
20 }
21
22 void MockExtensionInstallPromptDelegate::InstallUIAbort(bool user_initiated) {
23   ++abort_count_;
24 }
25
26 scoped_refptr<Extension> LoadInstallPromptExtension() {
27   scoped_refptr<Extension> extension;
28
29   base::FilePath path;
30   PathService::Get(chrome::DIR_TEST_DATA, &path);
31   path = path.AppendASCII("extensions")
32              .AppendASCII("install_prompt")
33              .AppendASCII("extension.json");
34
35   std::string error;
36   JSONFileValueSerializer serializer(path);
37   scoped_ptr<DictionaryValue> value(static_cast<DictionaryValue*>(
38       serializer.Deserialize(NULL, &error)));
39   if (!value.get()) {
40     LOG(ERROR) << error;
41     return extension;
42   }
43
44   extension = Extension::Create(
45       path.DirName(), extensions::Manifest::INVALID_LOCATION, *value,
46       Extension::NO_FLAGS, &error);
47   if (!extension.get())
48     LOG(ERROR) << error;
49
50   return extension;
51 }
52
53 gfx::Image LoadInstallPromptIcon() {
54   base::FilePath path;
55   PathService::Get(chrome::DIR_TEST_DATA, &path);
56   path = path.AppendASCII("extensions")
57              .AppendASCII("install_prompt")
58              .AppendASCII("icon.png");
59
60   std::string file_contents;
61   base::ReadFileToString(path, &file_contents);
62
63   return gfx::Image::CreateFrom1xPNGBytes(
64       reinterpret_cast<const unsigned char*>(file_contents.c_str()),
65       file_contents.length());
66 }
67
68 ExtensionInstallPrompt::Prompt BuildExtensionInstallPrompt(
69     Extension* extension) {
70   ExtensionInstallPrompt::Prompt prompt(ExtensionInstallPrompt::INSTALL_PROMPT);
71   prompt.set_extension(extension);
72   prompt.set_icon(LoadInstallPromptIcon());
73   return prompt;
74 }
75
76 ExtensionInstallPrompt::Prompt BuildExtensionPostInstallPermissionsPrompt(
77     Extension* extension) {
78   ExtensionInstallPrompt::Prompt prompt(
79       ExtensionInstallPrompt::POST_INSTALL_PERMISSIONS_PROMPT);
80   prompt.set_extension(extension);
81   prompt.set_icon(LoadInstallPromptIcon());
82   return prompt;
83 }
84
85 }  // namespace chrome