Chromium Code Reviews| Index: chrome/common/content_settings_pattern_parser_unittest.cc |
| diff --git a/chrome/common/content_settings_pattern_parser_unittest.cc b/chrome/common/content_settings_pattern_parser_unittest.cc |
| index ed32f59cf226e20119b6343e16115ac7874ddcd8..f4b8aabbd77b9b7a5422ee154e388d36c3098e6f 100644 |
| --- a/chrome/common/content_settings_pattern_parser_unittest.cc |
| +++ b/chrome/common/content_settings_pattern_parser_unittest.cc |
| @@ -21,13 +21,25 @@ class MockBuilder : public ContentSettingsPattern::BuilderInterface { |
| 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)); |
| @@ -86,14 +98,6 @@ TEST(ContentSettingsPatternParserTest, ParsePatterns) { |
| 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 @@ TEST(ContentSettingsPatternParserTest, ParsePatterns) { |
| ::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 @@ TEST(ContentSettingsPatternParserTest, SerializePatterns) { |
| 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:///*", |
|
Bernhard Bauer
2012/01/19 17:37:15
Nit: you can use EXPECT_EQ directly on the string
markusheintz_
2012/01/19 17:59:26
Done.
|
| + content_settings::PatternParser::ToString(parts).c_str()); |
| } |