OLD | NEW |
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" |
(...skipping 19 matching lines...) Expand all Loading... |
30 } | 30 } |
31 | 31 |
32 TEST_F(ExtensionManifestBackgroundTest, BackgroundScripts) { | 32 TEST_F(ExtensionManifestBackgroundTest, BackgroundScripts) { |
33 std::string error; | 33 std::string error; |
34 scoped_ptr<base::DictionaryValue> manifest( | 34 scoped_ptr<base::DictionaryValue> manifest( |
35 LoadManifest("background_scripts.json", &error)); | 35 LoadManifest("background_scripts.json", &error)); |
36 ASSERT_TRUE(manifest.get()); | 36 ASSERT_TRUE(manifest.get()); |
37 | 37 |
38 scoped_refptr<Extension> extension( | 38 scoped_refptr<Extension> extension( |
39 LoadAndExpectSuccess(Manifest(manifest.get(), ""))); | 39 LoadAndExpectSuccess(Manifest(manifest.get(), ""))); |
40 ASSERT_TRUE(extension); | 40 ASSERT_TRUE(extension.get()); |
41 const std::vector<std::string>& background_scripts = | 41 const std::vector<std::string>& background_scripts = |
42 BackgroundInfo::GetBackgroundScripts(extension); | 42 BackgroundInfo::GetBackgroundScripts(extension.get()); |
43 ASSERT_EQ(2u, background_scripts.size()); | 43 ASSERT_EQ(2u, background_scripts.size()); |
44 EXPECT_EQ("foo.js", background_scripts[0u]); | 44 EXPECT_EQ("foo.js", background_scripts[0u]); |
45 EXPECT_EQ("bar/baz.js", background_scripts[1u]); | 45 EXPECT_EQ("bar/baz.js", background_scripts[1u]); |
46 | 46 |
47 EXPECT_TRUE(BackgroundInfo::HasBackgroundPage(extension)); | 47 EXPECT_TRUE(BackgroundInfo::HasBackgroundPage(extension.get())); |
48 EXPECT_EQ(std::string("/") + | 48 EXPECT_EQ( |
49 extension_filenames::kGeneratedBackgroundPageFilename, | 49 std::string("/") + extension_filenames::kGeneratedBackgroundPageFilename, |
50 BackgroundInfo::GetBackgroundURL(extension).path()); | 50 BackgroundInfo::GetBackgroundURL(extension.get()).path()); |
51 | 51 |
52 manifest->SetString("background_page", "monkey.html"); | 52 manifest->SetString("background_page", "monkey.html"); |
53 LoadAndExpectError(Manifest(manifest.get(), ""), | 53 LoadAndExpectError(Manifest(manifest.get(), ""), |
54 errors::kInvalidBackgroundCombination); | 54 errors::kInvalidBackgroundCombination); |
55 } | 55 } |
56 | 56 |
57 TEST_F(ExtensionManifestBackgroundTest, BackgroundPage) { | 57 TEST_F(ExtensionManifestBackgroundTest, BackgroundPage) { |
58 scoped_refptr<Extension> extension( | 58 scoped_refptr<Extension> extension( |
59 LoadAndExpectSuccess("background_page.json")); | 59 LoadAndExpectSuccess("background_page.json")); |
60 ASSERT_TRUE(extension); | 60 ASSERT_TRUE(extension.get()); |
61 EXPECT_EQ("/foo.html", BackgroundInfo::GetBackgroundURL(extension).path()); | 61 EXPECT_EQ("/foo.html", |
62 EXPECT_TRUE(BackgroundInfo::AllowJSAccess(extension)); | 62 BackgroundInfo::GetBackgroundURL(extension.get()).path()); |
| 63 EXPECT_TRUE(BackgroundInfo::AllowJSAccess(extension.get())); |
63 | 64 |
64 std::string error; | 65 std::string error; |
65 scoped_ptr<base::DictionaryValue> manifest( | 66 scoped_ptr<base::DictionaryValue> manifest( |
66 LoadManifest("background_page_legacy.json", &error)); | 67 LoadManifest("background_page_legacy.json", &error)); |
67 ASSERT_TRUE(manifest.get()); | 68 ASSERT_TRUE(manifest.get()); |
68 extension = LoadAndExpectSuccess(Manifest(manifest.get(), "")); | 69 extension = LoadAndExpectSuccess(Manifest(manifest.get(), "")); |
69 ASSERT_TRUE(extension); | 70 ASSERT_TRUE(extension.get()); |
70 EXPECT_EQ("/foo.html", BackgroundInfo::GetBackgroundURL(extension).path()); | 71 EXPECT_EQ("/foo.html", |
| 72 BackgroundInfo::GetBackgroundURL(extension.get()).path()); |
71 | 73 |
72 manifest->SetInteger(keys::kManifestVersion, 2); | 74 manifest->SetInteger(keys::kManifestVersion, 2); |
73 LoadAndExpectWarning( | 75 LoadAndExpectWarning( |
74 Manifest(manifest.get(), ""), | 76 Manifest(manifest.get(), ""), |
75 "'background_page' requires manifest version of 1 or lower."); | 77 "'background_page' requires manifest version of 1 or lower."); |
76 } | 78 } |
77 | 79 |
78 TEST_F(ExtensionManifestBackgroundTest, BackgroundAllowNoJsAccess) { | 80 TEST_F(ExtensionManifestBackgroundTest, BackgroundAllowNoJsAccess) { |
79 scoped_refptr<Extension> extension; | 81 scoped_refptr<Extension> extension; |
80 extension = LoadAndExpectSuccess("background_allow_no_js_access.json"); | 82 extension = LoadAndExpectSuccess("background_allow_no_js_access.json"); |
81 ASSERT_TRUE(extension); | 83 ASSERT_TRUE(extension.get()); |
82 EXPECT_FALSE(BackgroundInfo::AllowJSAccess(extension)); | 84 EXPECT_FALSE(BackgroundInfo::AllowJSAccess(extension.get())); |
83 | 85 |
84 extension = LoadAndExpectSuccess("background_allow_no_js_access2.json"); | 86 extension = LoadAndExpectSuccess("background_allow_no_js_access2.json"); |
85 ASSERT_TRUE(extension); | 87 ASSERT_TRUE(extension.get()); |
86 EXPECT_FALSE(BackgroundInfo::AllowJSAccess(extension)); | 88 EXPECT_FALSE(BackgroundInfo::AllowJSAccess(extension.get())); |
87 } | 89 } |
88 | 90 |
89 TEST_F(ExtensionManifestBackgroundTest, BackgroundPageWebRequest) { | 91 TEST_F(ExtensionManifestBackgroundTest, BackgroundPageWebRequest) { |
90 CommandLine::ForCurrentProcess()->AppendSwitch( | 92 CommandLine::ForCurrentProcess()->AppendSwitch( |
91 switches::kEnableExperimentalExtensionApis); | 93 switches::kEnableExperimentalExtensionApis); |
92 Feature::ScopedCurrentChannel current_channel( | 94 Feature::ScopedCurrentChannel current_channel( |
93 chrome::VersionInfo::CHANNEL_DEV); | 95 chrome::VersionInfo::CHANNEL_DEV); |
94 | 96 |
95 std::string error; | 97 std::string error; |
96 scoped_ptr<base::DictionaryValue> manifest( | 98 scoped_ptr<base::DictionaryValue> manifest( |
97 LoadManifest("background_page.json", &error)); | 99 LoadManifest("background_page.json", &error)); |
98 ASSERT_TRUE(manifest.get()); | 100 ASSERT_TRUE(manifest.get()); |
99 manifest->SetBoolean(keys::kBackgroundPersistent, false); | 101 manifest->SetBoolean(keys::kBackgroundPersistent, false); |
100 manifest->SetInteger(keys::kManifestVersion, 2); | 102 manifest->SetInteger(keys::kManifestVersion, 2); |
101 scoped_refptr<Extension> extension( | 103 scoped_refptr<Extension> extension( |
102 LoadAndExpectSuccess(Manifest(manifest.get(), ""))); | 104 LoadAndExpectSuccess(Manifest(manifest.get(), ""))); |
103 ASSERT_TRUE(extension); | 105 ASSERT_TRUE(extension.get()); |
104 EXPECT_TRUE(BackgroundInfo::HasLazyBackgroundPage(extension)); | 106 EXPECT_TRUE(BackgroundInfo::HasLazyBackgroundPage(extension.get())); |
105 | 107 |
106 base::ListValue* permissions = new base::ListValue(); | 108 base::ListValue* permissions = new base::ListValue(); |
107 permissions->Append(new base::StringValue("webRequest")); | 109 permissions->Append(new base::StringValue("webRequest")); |
108 manifest->Set(keys::kPermissions, permissions); | 110 manifest->Set(keys::kPermissions, permissions); |
109 LoadAndExpectError(Manifest(manifest.get(), ""), | 111 LoadAndExpectError(Manifest(manifest.get(), ""), |
110 errors::kWebRequestConflictsWithLazyBackground); | 112 errors::kWebRequestConflictsWithLazyBackground); |
111 } | 113 } |
112 | 114 |
113 } // namespace extensions | 115 } // namespace extensions |
OLD | NEW |