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

Unified Diff: chrome/common/content_settings_pattern_parser_unittest.cc

Issue 9133002: Added support for file URI path wildcards in content settings (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 8 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/content_settings_pattern_parser_unittest.cc
===================================================================
--- chrome/common/content_settings_pattern_parser_unittest.cc (revision 118265)
+++ chrome/common/content_settings_pattern_parser_unittest.cc (working copy)
@@ -21,14 +21,26 @@
MOCK_METHOD1(WithHost, BuilderInterface*(const std::string& host));
MOCK_METHOD1(WithPort, BuilderInterface*(const std::string& port));
MOCK_METHOD1(WithPath, BuilderInterface*(const std::string& path));
+ MOCK_METHOD0(WithPathWildcard, BuilderInterface*());
MOCK_METHOD0(Invalid, BuilderInterface*());
MOCK_METHOD0(Build, ContentSettingsPattern());
};
TEST(ContentSettingsPatternParserTest, ParsePatterns) {
// Test valid patterns
- MockBuilder builder;
+ ::testing::StrictMock<MockBuilder> builder;
+ // WithPathWildcard() is not called for "*". (Need a strict Mock for this
+ // case.)
+ EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ content_settings::PatternParser::Parse("*", &builder);
+ ::testing::Mock::VerifyAndClear(&builder);
+
EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
::testing::Return(&builder));
EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce(
@@ -86,14 +98,6 @@
content_settings::PatternParser::Parse("http://127.0.0.1:8080", &builder);
::testing::Mock::VerifyAndClear(&builder);
- EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
- ::testing::Return(&builder));
- EXPECT_CALL(builder, WithPath("/foo/bar/test.html")).Times(1).WillOnce(
- ::testing::Return(&builder));
- content_settings::PatternParser::Parse(
- "file:///foo/bar/test.html", &builder);
- ::testing::Mock::VerifyAndClear(&builder);
-
// Test valid pattern short forms
EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
::testing::Return(&builder));
@@ -125,22 +129,85 @@
::testing::Mock::VerifyAndClear(&builder);
// Test invalid patterns
+ EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
::testing::Return(&builder));
content_settings::PatternParser::Parse("*youtube.com", &builder);
::testing::Mock::VerifyAndClear(&builder);
+ EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
::testing::Return(&builder));
content_settings::PatternParser::Parse("*.youtube.com", &builder);
::testing::Mock::VerifyAndClear(&builder);
+ EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
::testing::Return(&builder));
content_settings::PatternParser::Parse("www.youtube.com*", &builder);
::testing::Mock::VerifyAndClear(&builder);
}
+TEST(ContentSettingsPatternParserTest, ParseFilePatterns) {
+ ::testing::StrictMock<MockBuilder> builder;
+
+ EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithPath("/foo/bar/test.html")).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ content_settings::PatternParser::Parse(
+ "file:///foo/bar/test.html", &builder);
+ ::testing::Mock::VerifyAndClear(&builder);
+
+ EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ content_settings::PatternParser::Parse(
+ "file://*", &builder);
+ ::testing::Mock::VerifyAndClear(&builder);
+
+ EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithPath("/")).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ content_settings::PatternParser::Parse(
+ "file://*/", &builder);
+ ::testing::Mock::VerifyAndClear(&builder);
+
+ EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithPathWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ content_settings::PatternParser::Parse(
+ "file://*/*", &builder);
+ ::testing::Mock::VerifyAndClear(&builder);
+
+ EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, WithPathWildcard()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ content_settings::PatternParser::Parse(
+ "file:///*", &builder);
+ ::testing::Mock::VerifyAndClear(&builder);
+
+ // Invalid file patterns.
+ EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
+ ::testing::Return(&builder));
+ content_settings::PatternParser::Parse(
+ "file://**", &builder);
+ ::testing::Mock::VerifyAndClear(&builder);
+}
+
TEST(ContentSettingsPatternParserTest, SerializePatterns) {
ContentSettingsPattern::PatternParts parts;
parts.scheme = "http";
@@ -154,4 +221,11 @@
parts.path = "/foo/bar/test.html";
EXPECT_STREQ("file:///foo/bar/test.html",
content_settings::PatternParser::ToString(parts).c_str());
+
+ parts = ContentSettingsPattern::PatternParts();
+ parts.scheme = "file";
+ parts.path = "";
+ parts.is_path_wildcard = true;
+ EXPECT_STREQ("file:///*",
+ content_settings::PatternParser::ToString(parts).c_str());
}
« no previous file with comments | « chrome/common/content_settings_pattern_parser.cc ('k') | chrome/common/content_settings_pattern_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698