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

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

Issue 12042096: Move page action manifest parsing out of Extension; the first multi-key manifest handler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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/extension.h" 11 #include "chrome/common/extensions/extension.h"
12 #include "chrome/common/extensions/extension_manifest_constants.h" 12 #include "chrome/common/extensions/extension_manifest_constants.h"
13 #include "chrome/common/extensions/features/base_feature_provider.h" 13 #include "chrome/common/extensions/features/base_feature_provider.h"
14 #include "chrome/common/extensions/features/feature.h" 14 #include "chrome/common/extensions/features/feature.h"
15 #include "extensions/common/error_utils.h" 15 #include "extensions/common/error_utils.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 namespace errors = extension_manifest_errors; 18 namespace errors = extension_manifest_errors;
19 19
20 namespace extensions { 20 namespace extensions {
21 21
22 TEST_F(ExtensionManifestTest, BackgroundPermission) { 22 TEST_F(ExtensionManifestTest, BackgroundPermission) {
23 LoadAndExpectError("background_permission.json", 23 LoadAndExpectError("background_permission.json",
24 errors::kBackgroundPermissionNeeded); 24 errors::kBackgroundPermissionNeeded);
25 } 25 }
26 26
27 TEST_F(ExtensionManifestTest, BackgroundScripts) { 27 TEST_F(ExtensionManifestTest, BackgroundScripts) {
28 std::string error; 28 std::string error;
29 scoped_ptr<DictionaryValue> manifest( 29 scoped_ptr<DictionaryValue> manifest(
30 LoadManifestFile("background_scripts.json", &error)); 30 LoadManifest("background_scripts.json", &error));
31 ASSERT_TRUE(manifest.get()); 31 ASSERT_TRUE(manifest.get());
32 32
33 scoped_refptr<Extension> extension( 33 scoped_refptr<Extension> extension(
34 LoadAndExpectSuccess(Manifest(manifest.get(), ""))); 34 LoadAndExpectSuccess(Manifest(manifest.get(), "")));
35 ASSERT_TRUE(extension); 35 ASSERT_TRUE(extension);
36 EXPECT_EQ(2u, extension->background_scripts().size()); 36 EXPECT_EQ(2u, extension->background_scripts().size());
37 EXPECT_EQ("foo.js", extension->background_scripts()[0u]); 37 EXPECT_EQ("foo.js", extension->background_scripts()[0u]);
38 EXPECT_EQ("bar/baz.js", extension->background_scripts()[1u]); 38 EXPECT_EQ("bar/baz.js", extension->background_scripts()[1u]);
39 39
40 EXPECT_TRUE(extension->has_background_page()); 40 EXPECT_TRUE(extension->has_background_page());
41 EXPECT_EQ(std::string("/") + 41 EXPECT_EQ(std::string("/") +
42 extension_filenames::kGeneratedBackgroundPageFilename, 42 extension_filenames::kGeneratedBackgroundPageFilename,
43 extension->GetBackgroundURL().path()); 43 extension->GetBackgroundURL().path());
44 44
45 manifest->SetString("background_page", "monkey.html"); 45 manifest->SetString("background_page", "monkey.html");
46 LoadAndExpectError(Manifest(manifest.get(), ""), 46 LoadAndExpectError(Manifest(manifest.get(), ""),
47 errors::kInvalidBackgroundCombination); 47 errors::kInvalidBackgroundCombination);
48 } 48 }
49 49
50 TEST_F(ExtensionManifestTest, BackgroundPage) { 50 TEST_F(ExtensionManifestTest, BackgroundPage) {
51 scoped_refptr<Extension> extension( 51 scoped_refptr<Extension> extension(
52 LoadAndExpectSuccess("background_page.json")); 52 LoadAndExpectSuccess("background_page.json"));
53 ASSERT_TRUE(extension); 53 ASSERT_TRUE(extension);
54 EXPECT_EQ("/foo.html", extension->GetBackgroundURL().path()); 54 EXPECT_EQ("/foo.html", extension->GetBackgroundURL().path());
55 EXPECT_TRUE(extension->allow_background_js_access()); 55 EXPECT_TRUE(extension->allow_background_js_access());
56 56
57 std::string error; 57 std::string error;
58 scoped_ptr<DictionaryValue> manifest( 58 scoped_ptr<DictionaryValue> manifest(
59 LoadManifestFile("background_page_legacy.json", &error)); 59 LoadManifest("background_page_legacy.json", &error));
60 ASSERT_TRUE(manifest.get()); 60 ASSERT_TRUE(manifest.get());
61 extension = LoadAndExpectSuccess(Manifest(manifest.get(), "")); 61 extension = LoadAndExpectSuccess(Manifest(manifest.get(), ""));
62 ASSERT_TRUE(extension); 62 ASSERT_TRUE(extension);
63 EXPECT_EQ("/foo.html", extension->GetBackgroundURL().path()); 63 EXPECT_EQ("/foo.html", extension->GetBackgroundURL().path());
64 64
65 manifest->SetInteger(keys::kManifestVersion, 2); 65 manifest->SetInteger(keys::kManifestVersion, 2);
66 LoadAndExpectWarning( 66 LoadAndExpectWarning(
67 Manifest(manifest.get(), ""), 67 Manifest(manifest.get(), ""),
68 "'background_page' requires manifest version of 1 or lower."); 68 "'background_page' requires manifest version of 1 or lower.");
69 } 69 }
(...skipping 10 matching lines...) Expand all
80 } 80 }
81 81
82 TEST_F(ExtensionManifestTest, BackgroundPageWebRequest) { 82 TEST_F(ExtensionManifestTest, BackgroundPageWebRequest) {
83 CommandLine::ForCurrentProcess()->AppendSwitch( 83 CommandLine::ForCurrentProcess()->AppendSwitch(
84 switches::kEnableExperimentalExtensionApis); 84 switches::kEnableExperimentalExtensionApis);
85 Feature::ScopedCurrentChannel current_channel( 85 Feature::ScopedCurrentChannel current_channel(
86 chrome::VersionInfo::CHANNEL_DEV); 86 chrome::VersionInfo::CHANNEL_DEV);
87 87
88 std::string error; 88 std::string error;
89 scoped_ptr<DictionaryValue> manifest( 89 scoped_ptr<DictionaryValue> manifest(
90 LoadManifestFile("background_page.json", &error)); 90 LoadManifest("background_page.json", &error));
91 ASSERT_TRUE(manifest.get()); 91 ASSERT_TRUE(manifest.get());
92 manifest->SetBoolean(keys::kBackgroundPersistent, false); 92 manifest->SetBoolean(keys::kBackgroundPersistent, false);
93 manifest->SetInteger(keys::kManifestVersion, 2); 93 manifest->SetInteger(keys::kManifestVersion, 2);
94 scoped_refptr<Extension> extension( 94 scoped_refptr<Extension> extension(
95 LoadAndExpectSuccess(Manifest(manifest.get(), ""))); 95 LoadAndExpectSuccess(Manifest(manifest.get(), "")));
96 ASSERT_TRUE(extension); 96 ASSERT_TRUE(extension);
97 EXPECT_TRUE(extension->has_lazy_background_page()); 97 EXPECT_TRUE(extension->has_lazy_background_page());
98 98
99 ListValue* permissions = new ListValue(); 99 ListValue* permissions = new ListValue();
100 permissions->Append(Value::CreateStringValue("webRequest")); 100 permissions->Append(Value::CreateStringValue("webRequest"));
101 manifest->Set(keys::kPermissions, permissions); 101 manifest->Set(keys::kPermissions, permissions);
102 LoadAndExpectError(Manifest(manifest.get(), ""), 102 LoadAndExpectError(Manifest(manifest.get(), ""),
103 errors::kWebRequestConflictsWithLazyBackground); 103 errors::kWebRequestConflictsWithLazyBackground);
104 } 104 }
105 105
106 } // namespace extensions 106 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698