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

Side by Side Diff: chrome/browser/content_settings/content_settings_pattern_parser_unittest.cc

Issue 7885006: Moving ContentSettingsPattern from chrome/browser/content_settings to chrome/common. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Keeping up to date with trunk. Created 9 years, 3 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
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/content_settings/content_settings_pattern.h"
6 #include "chrome/browser/content_settings/content_settings_pattern_parser.h"
7
8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace {
12 typedef ContentSettingsPattern::BuilderInterface BuilderInterface;
13 } // namespace
14
15 class MockBuilder : public ContentSettingsPattern::BuilderInterface {
16 public:
17 MOCK_METHOD0(WithSchemeWildcard, BuilderInterface*());
18 MOCK_METHOD0(WithDomainWildcard, BuilderInterface*());
19 MOCK_METHOD0(WithPortWildcard, BuilderInterface*());
20 MOCK_METHOD1(WithScheme, BuilderInterface*(const std::string& scheme));
21 MOCK_METHOD1(WithHost, BuilderInterface*(const std::string& host));
22 MOCK_METHOD1(WithPort, BuilderInterface*(const std::string& port));
23 MOCK_METHOD1(WithPath, BuilderInterface*(const std::string& path));
24 MOCK_METHOD0(Invalid, BuilderInterface*());
25 MOCK_METHOD0(Build, ContentSettingsPattern());
26 };
27
28 TEST(ContentSettingsPatternParserTest, ParsePatterns) {
29 // Test valid patterns
30 MockBuilder builder;
31
32 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
33 ::testing::Return(&builder));
34 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce(
35 ::testing::Return(&builder));
36 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce(
37 ::testing::Return(&builder));
38 content_settings::PatternParser::Parse(
39 "http://www.youtube.com:8080", &builder);
40 ::testing::Mock::VerifyAndClear(&builder);
41
42 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
43 ::testing::Return(&builder));
44 EXPECT_CALL(builder, WithHost("www.gmail.com")).Times(1).WillOnce(
45 ::testing::Return(&builder));
46 EXPECT_CALL(builder, WithPort("80")).Times(1).WillOnce(
47 ::testing::Return(&builder));
48 content_settings::PatternParser::Parse("*://www.gmail.com:80", &builder);
49 ::testing::Mock::VerifyAndClear(&builder);
50
51 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
52 ::testing::Return(&builder));
53 EXPECT_CALL(builder, WithHost("www.gmail.com")).Times(1).WillOnce(
54 ::testing::Return(&builder));
55 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce(
56 ::testing::Return(&builder));
57 content_settings::PatternParser::Parse("http://www.gmail.com:*", &builder);
58 ::testing::Mock::VerifyAndClear(&builder);
59
60 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
61 ::testing::Return(&builder));
62 EXPECT_CALL(builder, WithDomainWildcard()).WillOnce(
63 ::testing::Return(&builder));
64 EXPECT_CALL(builder, WithHost("google.com")).Times(1).WillOnce(
65 ::testing::Return(&builder));
66 EXPECT_CALL(builder, WithPort("80")).Times(1).WillOnce(
67 ::testing::Return(&builder));
68 content_settings::PatternParser::Parse("http://[*.]google.com:80", &builder);
69 ::testing::Mock::VerifyAndClear(&builder);
70
71 EXPECT_CALL(builder, WithScheme("https")).Times(1).WillOnce(
72 ::testing::Return(&builder));
73 EXPECT_CALL(builder, WithHost("[::1]")).Times(1).WillOnce(
74 ::testing::Return(&builder));
75 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce(
76 ::testing::Return(&builder));
77 content_settings::PatternParser::Parse("https://[::1]:8080", &builder);
78 ::testing::Mock::VerifyAndClear(&builder);
79
80 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
81 ::testing::Return(&builder));
82 EXPECT_CALL(builder, WithHost("127.0.0.1")).Times(1).WillOnce(
83 ::testing::Return(&builder));
84 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce(
85 ::testing::Return(&builder));
86 content_settings::PatternParser::Parse("http://127.0.0.1:8080", &builder);
87 ::testing::Mock::VerifyAndClear(&builder);
88
89 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
90 ::testing::Return(&builder));
91 EXPECT_CALL(builder, WithPath("/foo/bar/test.html")).Times(1).WillOnce(
92 ::testing::Return(&builder));
93 content_settings::PatternParser::Parse(
94 "file:///foo/bar/test.html", &builder);
95 ::testing::Mock::VerifyAndClear(&builder);
96
97 // Test valid pattern short forms
98 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
99 ::testing::Return(&builder));
100 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce(
101 ::testing::Return(&builder));
102 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce(
103 ::testing::Return(&builder));
104 content_settings::PatternParser::Parse("www.youtube.com:8080", &builder);
105 ::testing::Mock::VerifyAndClear(&builder);
106
107 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
108 ::testing::Return(&builder));
109 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce(
110 ::testing::Return(&builder));
111 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce(
112 ::testing::Return(&builder));
113 content_settings::PatternParser::Parse("www.youtube.com", &builder);
114 ::testing::Mock::VerifyAndClear(&builder);
115
116 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
117 ::testing::Return(&builder));
118 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
119 ::testing::Return(&builder));
120 EXPECT_CALL(builder, WithHost("youtube.com")).Times(1).WillOnce(
121 ::testing::Return(&builder));
122 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce(
123 ::testing::Return(&builder));
124 content_settings::PatternParser::Parse("[*.]youtube.com", &builder);
125 ::testing::Mock::VerifyAndClear(&builder);
126
127 // Test invalid patterns
128 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
129 ::testing::Return(&builder));
130 content_settings::PatternParser::Parse("*youtube.com", &builder);
131 ::testing::Mock::VerifyAndClear(&builder);
132
133 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
134 ::testing::Return(&builder));
135 content_settings::PatternParser::Parse("*.youtube.com", &builder);
136 ::testing::Mock::VerifyAndClear(&builder);
137
138 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
139 ::testing::Return(&builder));
140 content_settings::PatternParser::Parse("www.youtube.com*", &builder);
141 ::testing::Mock::VerifyAndClear(&builder);
142 }
143
144 TEST(ContentSettingsPatternParserTest, SerializePatterns) {
145 ContentSettingsPattern::PatternParts parts;
146 parts.scheme = "http";
147 parts.host = "www.youtube.com";
148 parts.port = "8080";
149 EXPECT_STREQ("http://www.youtube.com:8080",
150 content_settings::PatternParser::ToString(parts).c_str());
151
152 parts = ContentSettingsPattern::PatternParts();
153 parts.scheme = "file";
154 parts.path = "/foo/bar/test.html";
155 EXPECT_STREQ("file:///foo/bar/test.html",
156 content_settings::PatternParser::ToString(parts).c_str());
157 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698