Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: chrome/common/extensions/manifest_tests/extension_manifests_background_unittest.cc

Issue 12253022: Manifest handler for all keys background-related. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" 5 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/common/chrome_switches.h" 10 #include "chrome/common/chrome_switches.h"
11 #include "chrome/common/extensions/background_info.h"
11 #include "chrome/common/extensions/extension.h" 12 #include "chrome/common/extensions/extension.h"
12 #include "chrome/common/extensions/extension_manifest_constants.h" 13 #include "chrome/common/extensions/extension_manifest_constants.h"
13 #include "chrome/common/extensions/features/base_feature_provider.h" 14 #include "chrome/common/extensions/features/base_feature_provider.h"
14 #include "chrome/common/extensions/features/feature.h" 15 #include "chrome/common/extensions/features/feature.h"
16 #include "chrome/common/extensions/manifest_handler.h"
15 #include "extensions/common/error_utils.h" 17 #include "extensions/common/error_utils.h"
16 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
17 19
18 namespace errors = extension_manifest_errors; 20 namespace errors = extension_manifest_errors;
19 namespace keys = extension_manifest_keys; 21 namespace keys = extension_manifest_keys;
20 22
21 namespace extensions { 23 namespace extensions {
22 24
23 TEST_F(ExtensionManifestTest, BackgroundPermission) { 25 class ExtensionManifestBackgroundTest : public ExtensionManifestTest {
26 virtual void SetUp() OVERRIDE {
27 ExtensionManifestTest::SetUp();
28 (new BackgroundManifestHandler)->Register();
29 }
30 };
31
32 TEST_F(ExtensionManifestBackgroundTest, BackgroundPermission) {
24 LoadAndExpectError("background_permission.json", 33 LoadAndExpectError("background_permission.json",
25 errors::kBackgroundPermissionNeeded); 34 errors::kBackgroundPermissionNeeded);
26 } 35 }
27 36
28 TEST_F(ExtensionManifestTest, BackgroundScripts) { 37 TEST_F(ExtensionManifestBackgroundTest, BackgroundScripts) {
29 std::string error; 38 std::string error;
30 scoped_ptr<base::DictionaryValue> manifest( 39 scoped_ptr<base::DictionaryValue> manifest(
31 LoadManifest("background_scripts.json", &error)); 40 LoadManifest("background_scripts.json", &error));
32 ASSERT_TRUE(manifest.get()); 41 ASSERT_TRUE(manifest.get());
33 42
34 scoped_refptr<Extension> extension( 43 scoped_refptr<Extension> extension(
35 LoadAndExpectSuccess(Manifest(manifest.get(), ""))); 44 LoadAndExpectSuccess(Manifest(manifest.get(), "")));
36 ASSERT_TRUE(extension); 45 ASSERT_TRUE(extension);
37 EXPECT_EQ(2u, extension->background_scripts().size()); 46 const std::vector<std::string>& background_scripts =
38 EXPECT_EQ("foo.js", extension->background_scripts()[0u]); 47 BackgroundInfo::GetBackgroundScripts(extension);
39 EXPECT_EQ("bar/baz.js", extension->background_scripts()[1u]); 48 ASSERT_EQ(2u, background_scripts.size());
49 EXPECT_EQ("foo.js", background_scripts[0u]);
50 EXPECT_EQ("bar/baz.js", background_scripts[1u]);
40 51
41 EXPECT_TRUE(extension->has_background_page()); 52 EXPECT_TRUE(BackgroundInfo::HasBackgroundPage(extension));
42 EXPECT_EQ(std::string("/") + 53 EXPECT_EQ(std::string("/") +
43 extension_filenames::kGeneratedBackgroundPageFilename, 54 extension_filenames::kGeneratedBackgroundPageFilename,
44 extension->GetBackgroundURL().path()); 55 BackgroundInfo::GetBackgroundURL(extension).path());
45 56
46 manifest->SetString("background_page", "monkey.html"); 57 manifest->SetString("background_page", "monkey.html");
47 LoadAndExpectError(Manifest(manifest.get(), ""), 58 LoadAndExpectError(Manifest(manifest.get(), ""),
48 errors::kInvalidBackgroundCombination); 59 errors::kInvalidBackgroundCombination);
49 } 60 }
50 61
51 TEST_F(ExtensionManifestTest, BackgroundPage) { 62 TEST_F(ExtensionManifestBackgroundTest, BackgroundPage) {
52 scoped_refptr<Extension> extension( 63 scoped_refptr<Extension> extension(
53 LoadAndExpectSuccess("background_page.json")); 64 LoadAndExpectSuccess("background_page.json"));
54 ASSERT_TRUE(extension); 65 ASSERT_TRUE(extension);
55 EXPECT_EQ("/foo.html", extension->GetBackgroundURL().path()); 66 EXPECT_EQ("/foo.html", BackgroundInfo::GetBackgroundURL(extension).path());
56 EXPECT_TRUE(extension->allow_background_js_access()); 67 EXPECT_TRUE(BackgroundInfo::AllowJSAccess(extension));
57 68
58 std::string error; 69 std::string error;
59 scoped_ptr<base::DictionaryValue> manifest( 70 scoped_ptr<base::DictionaryValue> manifest(
60 LoadManifest("background_page_legacy.json", &error)); 71 LoadManifest("background_page_legacy.json", &error));
61 ASSERT_TRUE(manifest.get()); 72 ASSERT_TRUE(manifest.get());
62 extension = LoadAndExpectSuccess(Manifest(manifest.get(), "")); 73 extension = LoadAndExpectSuccess(Manifest(manifest.get(), ""));
63 ASSERT_TRUE(extension); 74 ASSERT_TRUE(extension);
64 EXPECT_EQ("/foo.html", extension->GetBackgroundURL().path()); 75 EXPECT_EQ("/foo.html", BackgroundInfo::GetBackgroundURL(extension).path());
65 76
66 manifest->SetInteger(keys::kManifestVersion, 2); 77 manifest->SetInteger(keys::kManifestVersion, 2);
67 LoadAndExpectWarning( 78 LoadAndExpectWarning(
68 Manifest(manifest.get(), ""), 79 Manifest(manifest.get(), ""),
69 "'background_page' requires manifest version of 1 or lower."); 80 "'background_page' requires manifest version of 1 or lower.");
70 } 81 }
71 82
72 TEST_F(ExtensionManifestTest, BackgroundAllowNoJsAccess) { 83 TEST_F(ExtensionManifestBackgroundTest, BackgroundAllowNoJsAccess) {
73 scoped_refptr<Extension> extension; 84 scoped_refptr<Extension> extension;
74 extension = LoadAndExpectSuccess("background_allow_no_js_access.json"); 85 extension = LoadAndExpectSuccess("background_allow_no_js_access.json");
75 ASSERT_TRUE(extension); 86 ASSERT_TRUE(extension);
76 EXPECT_FALSE(extension->allow_background_js_access()); 87 EXPECT_FALSE(BackgroundInfo::AllowJSAccess(extension));
77 88
78 extension = LoadAndExpectSuccess("background_allow_no_js_access2.json"); 89 extension = LoadAndExpectSuccess("background_allow_no_js_access2.json");
79 ASSERT_TRUE(extension); 90 ASSERT_TRUE(extension);
80 EXPECT_FALSE(extension->allow_background_js_access()); 91 EXPECT_FALSE(BackgroundInfo::AllowJSAccess(extension));
81 } 92 }
82 93
83 TEST_F(ExtensionManifestTest, BackgroundPageWebRequest) { 94 TEST_F(ExtensionManifestBackgroundTest, BackgroundPageWebRequest) {
84 CommandLine::ForCurrentProcess()->AppendSwitch( 95 CommandLine::ForCurrentProcess()->AppendSwitch(
85 switches::kEnableExperimentalExtensionApis); 96 switches::kEnableExperimentalExtensionApis);
86 Feature::ScopedCurrentChannel current_channel( 97 Feature::ScopedCurrentChannel current_channel(
87 chrome::VersionInfo::CHANNEL_DEV); 98 chrome::VersionInfo::CHANNEL_DEV);
88 99
89 std::string error; 100 std::string error;
90 scoped_ptr<base::DictionaryValue> manifest( 101 scoped_ptr<base::DictionaryValue> manifest(
91 LoadManifest("background_page.json", &error)); 102 LoadManifest("background_page.json", &error));
92 ASSERT_TRUE(manifest.get()); 103 ASSERT_TRUE(manifest.get());
93 manifest->SetBoolean(keys::kBackgroundPersistent, false); 104 manifest->SetBoolean(keys::kBackgroundPersistent, false);
94 manifest->SetInteger(keys::kManifestVersion, 2); 105 manifest->SetInteger(keys::kManifestVersion, 2);
95 scoped_refptr<Extension> extension( 106 scoped_refptr<Extension> extension(
96 LoadAndExpectSuccess(Manifest(manifest.get(), ""))); 107 LoadAndExpectSuccess(Manifest(manifest.get(), "")));
97 ASSERT_TRUE(extension); 108 ASSERT_TRUE(extension);
98 EXPECT_TRUE(extension->has_lazy_background_page()); 109 EXPECT_TRUE(BackgroundInfo::HasLazyBackgroundPage(extension));
99 110
100 base::ListValue* permissions = new base::ListValue(); 111 base::ListValue* permissions = new base::ListValue();
101 permissions->Append(new base::StringValue("webRequest")); 112 permissions->Append(new base::StringValue("webRequest"));
102 manifest->Set(keys::kPermissions, permissions); 113 manifest->Set(keys::kPermissions, permissions);
103 LoadAndExpectError(Manifest(manifest.get(), ""), 114 LoadAndExpectError(Manifest(manifest.get(), ""),
104 errors::kWebRequestConflictsWithLazyBackground); 115 errors::kWebRequestConflictsWithLazyBackground);
105 } 116 }
106 117
107 } // namespace extensions 118 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698