| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/memory/ptr_util.h" |
| 9 #include "base/pickle.h" | 10 #include "base/pickle.h" |
| 10 #include "extensions/common/user_script.h" | 11 #include "extensions/common/user_script.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 12 #include "url/gurl.h" | 13 #include "url/gurl.h" |
| 13 | 14 |
| 14 namespace extensions { | 15 namespace extensions { |
| 15 | 16 |
| 16 static const int kAllSchemes = | 17 static const int kAllSchemes = |
| 17 URLPattern::SCHEME_HTTP | | 18 URLPattern::SCHEME_HTTP | |
| 18 URLPattern::SCHEME_HTTPS | | 19 URLPattern::SCHEME_HTTPS | |
| 19 URLPattern::SCHEME_FILE | | 20 URLPattern::SCHEME_FILE | |
| 20 URLPattern::SCHEME_FTP | | 21 URLPattern::SCHEME_FTP | |
| 21 URLPattern::SCHEME_CHROMEUI; | 22 URLPattern::SCHEME_CHROMEUI; |
| 22 | 23 |
| 23 TEST(ExtensionUserScriptTest, Glob_HostString) { | 24 TEST(ExtensionUserScriptTest, Glob_HostString) { |
| 24 UserScript script; | 25 ScriptMetadata script; |
| 25 script.add_glob("*mail.google.com*"); | 26 script.add_glob("*mail.google.com*"); |
| 26 script.add_glob("*mail.yahoo.com*"); | 27 script.add_glob("*mail.yahoo.com*"); |
| 27 script.add_glob("*mail.msn.com*"); | 28 script.add_glob("*mail.msn.com*"); |
| 28 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com"))); | 29 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com"))); |
| 29 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com/foo"))); | 30 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com/foo"))); |
| 30 EXPECT_TRUE(script.MatchesURL(GURL("https://mail.google.com/foo"))); | 31 EXPECT_TRUE(script.MatchesURL(GURL("https://mail.google.com/foo"))); |
| 31 EXPECT_TRUE(script.MatchesURL(GURL("ftp://mail.google.com/foo"))); | 32 EXPECT_TRUE(script.MatchesURL(GURL("ftp://mail.google.com/foo"))); |
| 32 EXPECT_TRUE(script.MatchesURL(GURL("http://woo.mail.google.com/foo"))); | 33 EXPECT_TRUE(script.MatchesURL(GURL("http://woo.mail.google.com/foo"))); |
| 33 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.yahoo.com/bar"))); | 34 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.yahoo.com/bar"))); |
| 34 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.msn.com/baz"))); | 35 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.msn.com/baz"))); |
| 35 EXPECT_FALSE(script.MatchesURL(GURL("http://www.hotmail.com"))); | 36 EXPECT_FALSE(script.MatchesURL(GURL("http://www.hotmail.com"))); |
| 36 | 37 |
| 37 script.add_exclude_glob("*foo*"); | 38 script.add_exclude_glob("*foo*"); |
| 38 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com"))); | 39 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com"))); |
| 39 EXPECT_FALSE(script.MatchesURL(GURL("http://mail.google.com/foo"))); | 40 EXPECT_FALSE(script.MatchesURL(GURL("http://mail.google.com/foo"))); |
| 40 } | 41 } |
| 41 | 42 |
| 42 TEST(ExtensionUserScriptTest, Glob_TrailingSlash) { | 43 TEST(ExtensionUserScriptTest, Glob_TrailingSlash) { |
| 43 UserScript script; | 44 ScriptMetadata script; |
| 44 script.add_glob("*mail.google.com/"); | 45 script.add_glob("*mail.google.com/"); |
| 45 // GURL normalizes the URL to have a trailing "/" | 46 // GURL normalizes the URL to have a trailing "/" |
| 46 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com"))); | 47 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com"))); |
| 47 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com/"))); | 48 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com/"))); |
| 48 EXPECT_FALSE(script.MatchesURL(GURL("http://mail.google.com/foo"))); | 49 EXPECT_FALSE(script.MatchesURL(GURL("http://mail.google.com/foo"))); |
| 49 } | 50 } |
| 50 | 51 |
| 51 TEST(ExtensionUserScriptTest, Glob_TrailingSlashStar) { | 52 TEST(ExtensionUserScriptTest, Glob_TrailingSlashStar) { |
| 52 UserScript script; | 53 ScriptMetadata script; |
| 53 script.add_glob("http://mail.google.com/*"); | 54 script.add_glob("http://mail.google.com/*"); |
| 54 // GURL normalizes the URL to have a trailing "/" | 55 // GURL normalizes the URL to have a trailing "/" |
| 55 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com"))); | 56 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com"))); |
| 56 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com/foo"))); | 57 EXPECT_TRUE(script.MatchesURL(GURL("http://mail.google.com/foo"))); |
| 57 EXPECT_FALSE(script.MatchesURL(GURL("https://mail.google.com/foo"))); | 58 EXPECT_FALSE(script.MatchesURL(GURL("https://mail.google.com/foo"))); |
| 58 } | 59 } |
| 59 | 60 |
| 60 TEST(ExtensionUserScriptTest, Glob_Star) { | 61 TEST(ExtensionUserScriptTest, Glob_Star) { |
| 61 UserScript script; | 62 ScriptMetadata script; |
| 62 script.add_glob("*"); | 63 script.add_glob("*"); |
| 63 EXPECT_TRUE(script.MatchesURL(GURL("http://foo.com/bar"))); | 64 EXPECT_TRUE(script.MatchesURL(GURL("http://foo.com/bar"))); |
| 64 EXPECT_TRUE(script.MatchesURL(GURL("http://hot.com/dog"))); | 65 EXPECT_TRUE(script.MatchesURL(GURL("http://hot.com/dog"))); |
| 65 EXPECT_TRUE(script.MatchesURL(GURL("https://hot.com/dog"))); | 66 EXPECT_TRUE(script.MatchesURL(GURL("https://hot.com/dog"))); |
| 66 EXPECT_TRUE(script.MatchesURL(GURL("file:///foo/bar"))); | 67 EXPECT_TRUE(script.MatchesURL(GURL("file:///foo/bar"))); |
| 67 EXPECT_TRUE(script.MatchesURL(GURL("file://localhost/foo/bar"))); | 68 EXPECT_TRUE(script.MatchesURL(GURL("file://localhost/foo/bar"))); |
| 68 } | 69 } |
| 69 | 70 |
| 70 TEST(ExtensionUserScriptTest, Glob_StringAnywhere) { | 71 TEST(ExtensionUserScriptTest, Glob_StringAnywhere) { |
| 71 UserScript script; | 72 ScriptMetadata script; |
| 72 script.add_glob("*foo*"); | 73 script.add_glob("*foo*"); |
| 73 EXPECT_TRUE(script.MatchesURL(GURL("http://foo.com/bar"))); | 74 EXPECT_TRUE(script.MatchesURL(GURL("http://foo.com/bar"))); |
| 74 EXPECT_TRUE(script.MatchesURL(GURL("http://baz.org/foo/bar"))); | 75 EXPECT_TRUE(script.MatchesURL(GURL("http://baz.org/foo/bar"))); |
| 75 EXPECT_FALSE(script.MatchesURL(GURL("http://baz.org"))); | 76 EXPECT_FALSE(script.MatchesURL(GURL("http://baz.org"))); |
| 76 } | 77 } |
| 77 | 78 |
| 78 TEST(ExtensionUserScriptTest, UrlPattern) { | 79 TEST(ExtensionUserScriptTest, UrlPattern) { |
| 79 URLPattern pattern(kAllSchemes); | 80 URLPattern pattern(kAllSchemes); |
| 80 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*/foo*")); | 81 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*/foo*")); |
| 81 | 82 |
| 82 UserScript script; | 83 ScriptMetadata script; |
| 83 script.add_url_pattern(pattern); | 84 script.add_url_pattern(pattern); |
| 84 EXPECT_TRUE(script.MatchesURL(GURL("http://monkey.com/foobar"))); | 85 EXPECT_TRUE(script.MatchesURL(GURL("http://monkey.com/foobar"))); |
| 85 EXPECT_FALSE(script.MatchesURL(GURL("http://monkey.com/hotdog"))); | 86 EXPECT_FALSE(script.MatchesURL(GURL("http://monkey.com/hotdog"))); |
| 86 | 87 |
| 87 // NOTE: URLPattern is tested more extensively in url_pattern_unittest.cc. | 88 // NOTE: URLPattern is tested more extensively in url_pattern_unittest.cc. |
| 88 } | 89 } |
| 89 | 90 |
| 90 TEST(ExtensionUserScriptTest, ExcludeUrlPattern) { | 91 TEST(ExtensionUserScriptTest, ExcludeUrlPattern) { |
| 91 UserScript script; | 92 ScriptMetadata script; |
| 92 | 93 |
| 93 URLPattern pattern(kAllSchemes); | 94 URLPattern pattern(kAllSchemes); |
| 94 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.nytimes.com/*")); | 95 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.nytimes.com/*")); |
| 95 script.add_url_pattern(pattern); | 96 script.add_url_pattern(pattern); |
| 96 | 97 |
| 97 URLPattern exclude(kAllSchemes); | 98 URLPattern exclude(kAllSchemes); |
| 98 ASSERT_EQ(URLPattern::PARSE_SUCCESS, exclude.Parse("*://*/*business*")); | 99 ASSERT_EQ(URLPattern::PARSE_SUCCESS, exclude.Parse("*://*/*business*")); |
| 99 script.add_exclude_url_pattern(exclude); | 100 script.add_exclude_url_pattern(exclude); |
| 100 | 101 |
| 101 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/health"))); | 102 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/health"))); |
| 102 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/business"))); | 103 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/business"))); |
| 103 EXPECT_TRUE(script.MatchesURL(GURL("http://business.nytimes.com"))); | 104 EXPECT_TRUE(script.MatchesURL(GURL("http://business.nytimes.com"))); |
| 104 } | 105 } |
| 105 | 106 |
| 106 TEST(ExtensionUserScriptTest, UrlPatternAndIncludeGlobs) { | 107 TEST(ExtensionUserScriptTest, UrlPatternAndIncludeGlobs) { |
| 107 UserScript script; | 108 ScriptMetadata script; |
| 108 | 109 |
| 109 URLPattern pattern(kAllSchemes); | 110 URLPattern pattern(kAllSchemes); |
| 110 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.nytimes.com/*")); | 111 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.nytimes.com/*")); |
| 111 script.add_url_pattern(pattern); | 112 script.add_url_pattern(pattern); |
| 112 | 113 |
| 113 script.add_glob("*nytimes.com/???s/*"); | 114 script.add_glob("*nytimes.com/???s/*"); |
| 114 | 115 |
| 115 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/arts/1.html"))); | 116 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/arts/1.html"))); |
| 116 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/jobs/1.html"))); | 117 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/jobs/1.html"))); |
| 117 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/sports/1.html"))); | 118 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/sports/1.html"))); |
| 118 } | 119 } |
| 119 | 120 |
| 120 TEST(ExtensionUserScriptTest, UrlPatternAndExcludeGlobs) { | 121 TEST(ExtensionUserScriptTest, UrlPatternAndExcludeGlobs) { |
| 121 UserScript script; | 122 ScriptMetadata script; |
| 122 | 123 |
| 123 URLPattern pattern(kAllSchemes); | 124 URLPattern pattern(kAllSchemes); |
| 124 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.nytimes.com/*")); | 125 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.nytimes.com/*")); |
| 125 script.add_url_pattern(pattern); | 126 script.add_url_pattern(pattern); |
| 126 | 127 |
| 127 script.add_exclude_glob("*science*"); | 128 script.add_exclude_glob("*science*"); |
| 128 | 129 |
| 129 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com"))); | 130 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com"))); |
| 130 EXPECT_FALSE(script.MatchesURL(GURL("http://science.nytimes.com"))); | 131 EXPECT_FALSE(script.MatchesURL(GURL("http://science.nytimes.com"))); |
| 131 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/science"))); | 132 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/science"))); |
| 132 } | 133 } |
| 133 | 134 |
| 134 TEST(ExtensionUserScriptTest, UrlPatternGlobInteraction) { | 135 TEST(ExtensionUserScriptTest, UrlPatternGlobInteraction) { |
| 135 // If there are both, match intersection(union(globs), union(urlpatterns)). | 136 // If there are both, match intersection(union(globs), union(urlpatterns)). |
| 136 UserScript script; | 137 ScriptMetadata script; |
| 137 | 138 |
| 138 URLPattern pattern(kAllSchemes); | 139 URLPattern pattern(kAllSchemes); |
| 139 ASSERT_EQ(URLPattern::PARSE_SUCCESS, | 140 ASSERT_EQ(URLPattern::PARSE_SUCCESS, |
| 140 pattern.Parse("http://www.google.com/*")); | 141 pattern.Parse("http://www.google.com/*")); |
| 141 script.add_url_pattern(pattern); | 142 script.add_url_pattern(pattern); |
| 142 | 143 |
| 143 script.add_glob("*bar*"); | 144 script.add_glob("*bar*"); |
| 144 | 145 |
| 145 // No match, because it doesn't match the glob. | 146 // No match, because it doesn't match the glob. |
| 146 EXPECT_FALSE(script.MatchesURL(GURL("http://www.google.com/foo"))); | 147 EXPECT_FALSE(script.MatchesURL(GURL("http://www.google.com/foo"))); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 165 TEST(ExtensionUserScriptTest, Pickle) { | 166 TEST(ExtensionUserScriptTest, Pickle) { |
| 166 URLPattern pattern1(kAllSchemes); | 167 URLPattern pattern1(kAllSchemes); |
| 167 URLPattern pattern2(kAllSchemes); | 168 URLPattern pattern2(kAllSchemes); |
| 168 URLPattern exclude1(kAllSchemes); | 169 URLPattern exclude1(kAllSchemes); |
| 169 URLPattern exclude2(kAllSchemes); | 170 URLPattern exclude2(kAllSchemes); |
| 170 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern1.Parse("http://*/foo*")); | 171 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern1.Parse("http://*/foo*")); |
| 171 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern2.Parse("http://bar/baz*")); | 172 ASSERT_EQ(URLPattern::PARSE_SUCCESS, pattern2.Parse("http://bar/baz*")); |
| 172 ASSERT_EQ(URLPattern::PARSE_SUCCESS, exclude1.Parse("*://*/*bar")); | 173 ASSERT_EQ(URLPattern::PARSE_SUCCESS, exclude1.Parse("*://*/*bar")); |
| 173 ASSERT_EQ(URLPattern::PARSE_SUCCESS, exclude2.Parse("https://*/*")); | 174 ASSERT_EQ(URLPattern::PARSE_SUCCESS, exclude2.Parse("https://*/*")); |
| 174 | 175 |
| 175 UserScript script1; | 176 ScriptMetadata script1; |
| 176 script1.js_scripts().push_back(UserScript::File( | 177 script1.js_scripts().push_back(base::WrapUnique( |
| 177 base::FilePath(FILE_PATH_LITERAL("c:\\foo\\")), | 178 new UserScriptFileInfo(base::FilePath(FILE_PATH_LITERAL("c:\\foo\\")), |
| 178 base::FilePath(FILE_PATH_LITERAL("foo.user.js")), | 179 base::FilePath(FILE_PATH_LITERAL("foo.user.js")), |
| 179 GURL("chrome-extension://abc/foo.user.js"))); | 180 GURL("chrome-extension://abc/foo.user.js")))); |
| 180 script1.css_scripts().push_back(UserScript::File( | 181 script1.css_scripts().push_back(base::WrapUnique( |
| 181 base::FilePath(FILE_PATH_LITERAL("c:\\foo\\")), | 182 new UserScriptFileInfo(base::FilePath(FILE_PATH_LITERAL("c:\\foo\\")), |
| 182 base::FilePath(FILE_PATH_LITERAL("foo.user.css")), | 183 base::FilePath(FILE_PATH_LITERAL("foo.user.css")), |
| 183 GURL("chrome-extension://abc/foo.user.css"))); | 184 GURL("chrome-extension://abc/foo.user.css")))); |
| 184 script1.css_scripts().push_back(UserScript::File( | 185 script1.css_scripts().push_back(base::WrapUnique( |
| 185 base::FilePath(FILE_PATH_LITERAL("c:\\foo\\")), | 186 new UserScriptFileInfo(base::FilePath(FILE_PATH_LITERAL("c:\\foo\\")), |
| 186 base::FilePath(FILE_PATH_LITERAL("foo2.user.css")), | 187 base::FilePath(FILE_PATH_LITERAL("foo2.user.css")), |
| 187 GURL("chrome-extension://abc/foo2.user.css"))); | 188 GURL("chrome-extension://abc/foo2.user.css")))); |
| 188 script1.set_run_location(UserScript::DOCUMENT_START); | 189 script1.set_run_location(UserScript::DOCUMENT_START); |
| 189 | 190 |
| 190 script1.add_url_pattern(pattern1); | 191 script1.add_url_pattern(pattern1); |
| 191 script1.add_url_pattern(pattern2); | 192 script1.add_url_pattern(pattern2); |
| 192 script1.add_exclude_url_pattern(exclude1); | 193 script1.add_exclude_url_pattern(exclude1); |
| 193 script1.add_exclude_url_pattern(exclude2); | 194 script1.add_exclude_url_pattern(exclude2); |
| 194 | 195 |
| 195 const int64_t kId = 12; | 196 const int64_t kId = 12; |
| 196 script1.set_id(kId); | 197 script1.set_id(kId); |
| 197 const std::string kExtensionId = "foo"; | 198 const std::string kExtensionId = "foo"; |
| 198 HostID id(HostID::EXTENSIONS, kExtensionId); | 199 HostID id(HostID::EXTENSIONS, kExtensionId); |
| 199 script1.set_host_id(id); | 200 script1.set_host_id(id); |
| 200 | 201 |
| 201 base::Pickle pickle; | 202 base::Pickle pickle; |
| 202 script1.Pickle(&pickle); | 203 // Pickle script. |
| 204 { |
| 205 // Only browser/ side (BrowserUserScript) and renderer/ side |
| 206 // (RendererUserScript) implementation of user script is (de)serializable, |
| 207 // ScriptMetadata is common/, so pickle it manually. |
| 208 static_cast<UserScriptInfo*>(&script1)->Pickle(&pickle); |
| 209 static_cast<UserScriptFiles<UserScriptFileInfo>*>(&script1)->PickleFiles( |
| 210 &pickle); |
| 211 } |
| 203 | 212 |
| 204 base::PickleIterator iter(pickle); | 213 base::PickleIterator iter(pickle); |
| 205 UserScript script2; | 214 ScriptMetadata script2; |
| 206 script2.Unpickle(pickle, &iter); | 215 { |
| 216 // Same as Pickle step above, unpickle this manually. |
| 217 static_cast<UserScriptInfo*>(&script2)->Unpickle(pickle, &iter); |
| 218 static_cast<UserScriptFiles<UserScriptFileInfo>*>(&script2)->UnpickleFiles( |
| 219 pickle, &iter); |
| 220 } |
| 207 | 221 |
| 208 EXPECT_EQ(1U, script2.js_scripts().size()); | 222 EXPECT_EQ(1U, script2.js_scripts().size()); |
| 209 EXPECT_EQ(script1.js_scripts()[0].url(), script2.js_scripts()[0].url()); | 223 EXPECT_EQ(script1.js_scripts()[0]->url(), script2.js_scripts()[0]->url()); |
| 210 | 224 |
| 211 EXPECT_EQ(2U, script2.css_scripts().size()); | 225 EXPECT_EQ(2U, script2.css_scripts().size()); |
| 212 for (size_t i = 0; i < script2.js_scripts().size(); ++i) { | 226 for (size_t i = 0; i < script2.js_scripts().size(); ++i) { |
| 213 EXPECT_EQ(script1.css_scripts()[i].url(), script2.css_scripts()[i].url()); | 227 EXPECT_EQ(script1.css_scripts()[i]->url(), script2.css_scripts()[i]->url()); |
| 214 } | 228 } |
| 215 | 229 |
| 216 ASSERT_EQ(script1.globs().size(), script2.globs().size()); | 230 ASSERT_EQ(script1.globs().size(), script2.globs().size()); |
| 217 for (size_t i = 0; i < script1.globs().size(); ++i) { | 231 for (size_t i = 0; i < script1.globs().size(); ++i) { |
| 218 EXPECT_EQ(script1.globs()[i], script2.globs()[i]); | 232 EXPECT_EQ(script1.globs()[i], script2.globs()[i]); |
| 219 } | 233 } |
| 220 | 234 |
| 221 ASSERT_EQ(script1.url_patterns(), script2.url_patterns()); | 235 ASSERT_EQ(script1.url_patterns(), script2.url_patterns()); |
| 222 ASSERT_EQ(script1.exclude_url_patterns(), script2.exclude_url_patterns()); | 236 ASSERT_EQ(script1.exclude_url_patterns(), script2.exclude_url_patterns()); |
| 223 | 237 |
| 224 EXPECT_EQ(kExtensionId, script2.extension_id()); | 238 EXPECT_EQ(kExtensionId, script2.extension_id()); |
| 225 EXPECT_EQ(kId, script2.id()); | 239 EXPECT_EQ(kId, script2.id()); |
| 226 } | 240 } |
| 227 | 241 |
| 228 TEST(ExtensionUserScriptTest, Defaults) { | 242 TEST(ExtensionUserScriptTest, Defaults) { |
| 229 UserScript script; | 243 ScriptMetadata script; |
| 230 ASSERT_EQ(UserScript::DOCUMENT_IDLE, script.run_location()); | 244 ASSERT_EQ(UserScript::DOCUMENT_IDLE, script.run_location()); |
| 231 } | 245 } |
| 232 | 246 |
| 233 } // namespace extensions | 247 } // namespace extensions |
| OLD | NEW |