OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "chrome/test/chromedriver/capabilities.h" | 5 #include "chrome/test/chromedriver/capabilities.h" |
6 | 6 |
7 #include "base/values.h" | 7 #include "base/values.h" |
| 8 #include "chrome/test/chromedriver/chrome/log.h" |
8 #include "chrome/test/chromedriver/chrome/status.h" | 9 #include "chrome/test/chromedriver/chrome/status.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
10 | 11 |
11 TEST(ParseCapabilities, WithAndroidPackage) { | 12 TEST(ParseCapabilities, WithAndroidPackage) { |
12 Capabilities capabilities; | 13 Capabilities capabilities; |
13 base::DictionaryValue caps; | 14 base::DictionaryValue caps; |
14 caps.SetString("chromeOptions.androidPackage", "abc"); | 15 caps.SetString("chromeOptions.androidPackage", "abc"); |
15 Status status = capabilities.Parse(caps); | 16 Logger log(Log::kError); |
| 17 Status status = capabilities.Parse(caps, &log); |
16 ASSERT_TRUE(status.IsOk()); | 18 ASSERT_TRUE(status.IsOk()); |
17 ASSERT_TRUE(capabilities.IsAndroid()); | 19 ASSERT_TRUE(capabilities.IsAndroid()); |
18 ASSERT_EQ("abc", capabilities.android_package); | 20 ASSERT_EQ("abc", capabilities.android_package); |
19 } | 21 } |
20 | 22 |
21 TEST(ParseCapabilities, EmptyAndroidPackage) { | 23 TEST(ParseCapabilities, EmptyAndroidPackage) { |
22 Capabilities capabilities; | 24 Capabilities capabilities; |
23 base::DictionaryValue caps; | 25 base::DictionaryValue caps; |
24 caps.SetString("chromeOptions.androidPackage", std::string()); | 26 caps.SetString("chromeOptions.androidPackage", std::string()); |
25 Status status = capabilities.Parse(caps); | 27 Logger log(Log::kError); |
| 28 Status status = capabilities.Parse(caps, &log); |
26 ASSERT_FALSE(status.IsOk()); | 29 ASSERT_FALSE(status.IsOk()); |
27 } | 30 } |
28 | 31 |
29 TEST(ParseCapabilities, IllegalAndroidPackage) { | 32 TEST(ParseCapabilities, IllegalAndroidPackage) { |
30 Capabilities capabilities; | 33 Capabilities capabilities; |
31 base::DictionaryValue caps; | 34 base::DictionaryValue caps; |
32 caps.SetInteger("chromeOptions.androidPackage", 123); | 35 caps.SetInteger("chromeOptions.androidPackage", 123); |
33 Status status = capabilities.Parse(caps); | 36 Logger log(Log::kError); |
| 37 Status status = capabilities.Parse(caps, &log); |
34 ASSERT_FALSE(status.IsOk()); | 38 ASSERT_FALSE(status.IsOk()); |
35 } | 39 } |
36 | 40 |
37 TEST(ParseCapabilities, LogPath) { | 41 TEST(ParseCapabilities, LogPath) { |
38 Capabilities capabilities; | 42 Capabilities capabilities; |
39 base::DictionaryValue caps; | 43 base::DictionaryValue caps; |
40 caps.SetString("chromeOptions.logPath", "path/to/logfile"); | 44 caps.SetString("chromeOptions.logPath", "path/to/logfile"); |
41 Status status = capabilities.Parse(caps); | 45 Logger log(Log::kError); |
| 46 Status status = capabilities.Parse(caps, &log); |
42 ASSERT_TRUE(status.IsOk()); | 47 ASSERT_TRUE(status.IsOk()); |
43 ASSERT_STREQ("path/to/logfile", capabilities.log_path.c_str()); | 48 ASSERT_STREQ("path/to/logfile", capabilities.log_path.c_str()); |
44 } | 49 } |
45 | 50 |
46 TEST(ParseCapabilities, NoArgs) { | 51 TEST(ParseCapabilities, NoArgs) { |
47 Capabilities capabilities; | 52 Capabilities capabilities; |
48 base::ListValue args; | 53 base::ListValue args; |
49 ASSERT_TRUE(args.empty()); | 54 ASSERT_TRUE(args.empty()); |
50 base::DictionaryValue caps; | 55 base::DictionaryValue caps; |
51 caps.Set("chromeOptions.args", args.DeepCopy()); | 56 caps.Set("chromeOptions.args", args.DeepCopy()); |
52 Status status = capabilities.Parse(caps); | 57 Logger log(Log::kError); |
| 58 Status status = capabilities.Parse(caps, &log); |
53 ASSERT_TRUE(status.IsOk()); | 59 ASSERT_TRUE(status.IsOk()); |
54 ASSERT_TRUE(capabilities.command.GetSwitches().empty()); | 60 ASSERT_TRUE(capabilities.command.GetSwitches().empty()); |
55 } | 61 } |
56 | 62 |
57 TEST(ParseCapabilities, SingleArgWithoutValue) { | 63 TEST(ParseCapabilities, SingleArgWithoutValue) { |
58 Capabilities capabilities; | 64 Capabilities capabilities; |
59 base::ListValue args; | 65 base::ListValue args; |
60 args.AppendString("enable-nacl"); | 66 args.AppendString("enable-nacl"); |
61 ASSERT_EQ(1u, args.GetSize()); | 67 ASSERT_EQ(1u, args.GetSize()); |
62 base::DictionaryValue caps; | 68 base::DictionaryValue caps; |
63 caps.Set("chromeOptions.args", args.DeepCopy()); | 69 caps.Set("chromeOptions.args", args.DeepCopy()); |
64 Status status = capabilities.Parse(caps); | 70 Logger log(Log::kError); |
| 71 Status status = capabilities.Parse(caps, &log); |
65 ASSERT_TRUE(status.IsOk()); | 72 ASSERT_TRUE(status.IsOk()); |
66 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); | 73 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); |
67 ASSERT_TRUE(capabilities.command.HasSwitch("enable-nacl")); | 74 ASSERT_TRUE(capabilities.command.HasSwitch("enable-nacl")); |
68 } | 75 } |
69 | 76 |
70 TEST(ParseCapabilities, SingleArgWithValue) { | 77 TEST(ParseCapabilities, SingleArgWithValue) { |
71 Capabilities capabilities; | 78 Capabilities capabilities; |
72 base::ListValue args; | 79 base::ListValue args; |
73 args.AppendString("load-extension=/test/extension"); | 80 args.AppendString("load-extension=/test/extension"); |
74 ASSERT_EQ(1u, args.GetSize()); | 81 ASSERT_EQ(1u, args.GetSize()); |
75 base::DictionaryValue caps; | 82 base::DictionaryValue caps; |
76 caps.Set("chromeOptions.args", args.DeepCopy()); | 83 caps.Set("chromeOptions.args", args.DeepCopy()); |
77 Status status = capabilities.Parse(caps); | 84 Logger log(Log::kError); |
| 85 Status status = capabilities.Parse(caps, &log); |
78 ASSERT_TRUE(status.IsOk()); | 86 ASSERT_TRUE(status.IsOk()); |
79 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); | 87 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); |
80 ASSERT_TRUE(capabilities.command.HasSwitch("load-extension")); | 88 ASSERT_TRUE(capabilities.command.HasSwitch("load-extension")); |
81 ASSERT_STREQ( | 89 ASSERT_STREQ( |
82 "/test/extension", | 90 "/test/extension", |
83 capabilities.command.GetSwitchValueASCII("load-extension").c_str()); | 91 capabilities.command.GetSwitchValueASCII("load-extension").c_str()); |
84 } | 92 } |
85 | 93 |
86 TEST(ParseCapabilities, MultipleArgs) { | 94 TEST(ParseCapabilities, MultipleArgs) { |
87 Capabilities capabilities; | 95 Capabilities capabilities; |
88 base::ListValue args; | 96 base::ListValue args; |
89 args.AppendString("arg1"); | 97 args.AppendString("arg1"); |
90 args.AppendString("arg2=val"); | 98 args.AppendString("arg2=val"); |
91 args.AppendString("arg3='a space'"); | 99 args.AppendString("arg3='a space'"); |
92 ASSERT_EQ(3u, args.GetSize()); | 100 ASSERT_EQ(3u, args.GetSize()); |
93 base::DictionaryValue caps; | 101 base::DictionaryValue caps; |
94 caps.Set("chromeOptions.args", args.DeepCopy()); | 102 caps.Set("chromeOptions.args", args.DeepCopy()); |
95 Status status = capabilities.Parse(caps); | 103 Logger log(Log::kError); |
| 104 Status status = capabilities.Parse(caps, &log); |
96 ASSERT_TRUE(status.IsOk()); | 105 ASSERT_TRUE(status.IsOk()); |
97 ASSERT_EQ(3u, capabilities.command.GetSwitches().size()); | 106 ASSERT_EQ(3u, capabilities.command.GetSwitches().size()); |
98 ASSERT_TRUE(capabilities.command.HasSwitch("arg1")); | 107 ASSERT_TRUE(capabilities.command.HasSwitch("arg1")); |
99 ASSERT_TRUE(capabilities.command.HasSwitch("arg2")); | 108 ASSERT_TRUE(capabilities.command.HasSwitch("arg2")); |
100 ASSERT_STREQ("val", capabilities.command.GetSwitchValueASCII("arg2").c_str()); | 109 ASSERT_STREQ("val", capabilities.command.GetSwitchValueASCII("arg2").c_str()); |
101 ASSERT_TRUE(capabilities.command.HasSwitch("arg3")); | 110 ASSERT_TRUE(capabilities.command.HasSwitch("arg3")); |
102 ASSERT_STREQ("'a space'", | 111 ASSERT_STREQ("'a space'", |
103 capabilities.command.GetSwitchValueASCII("arg3").c_str()); | 112 capabilities.command.GetSwitchValueASCII("arg3").c_str()); |
104 } | 113 } |
105 | 114 |
106 TEST(ParseCapabilities, Prefs) { | 115 TEST(ParseCapabilities, Prefs) { |
107 Capabilities capabilities; | 116 Capabilities capabilities; |
108 base::DictionaryValue prefs; | 117 base::DictionaryValue prefs; |
109 prefs.SetString("key1", "value1"); | 118 prefs.SetString("key1", "value1"); |
110 prefs.SetString("key2.k", "value2"); | 119 prefs.SetString("key2.k", "value2"); |
111 base::DictionaryValue caps; | 120 base::DictionaryValue caps; |
112 caps.Set("chromeOptions.prefs", prefs.DeepCopy()); | 121 caps.Set("chromeOptions.prefs", prefs.DeepCopy()); |
113 Status status = capabilities.Parse(caps); | 122 Logger log(Log::kError); |
| 123 Status status = capabilities.Parse(caps, &log); |
114 ASSERT_TRUE(status.IsOk()); | 124 ASSERT_TRUE(status.IsOk()); |
115 ASSERT_TRUE(capabilities.prefs->Equals(&prefs)); | 125 ASSERT_TRUE(capabilities.prefs->Equals(&prefs)); |
116 } | 126 } |
117 | 127 |
118 TEST(ParseCapabilities, LocalState) { | 128 TEST(ParseCapabilities, LocalState) { |
119 Capabilities capabilities; | 129 Capabilities capabilities; |
120 base::DictionaryValue local_state; | 130 base::DictionaryValue local_state; |
121 local_state.SetString("s1", "v1"); | 131 local_state.SetString("s1", "v1"); |
122 local_state.SetString("s2.s", "v2"); | 132 local_state.SetString("s2.s", "v2"); |
123 base::DictionaryValue caps; | 133 base::DictionaryValue caps; |
124 caps.Set("chromeOptions.localState", local_state.DeepCopy()); | 134 caps.Set("chromeOptions.localState", local_state.DeepCopy()); |
125 Status status = capabilities.Parse(caps); | 135 Logger log(Log::kError); |
| 136 Status status = capabilities.Parse(caps, &log); |
126 ASSERT_TRUE(status.IsOk()); | 137 ASSERT_TRUE(status.IsOk()); |
127 ASSERT_TRUE(capabilities.local_state->Equals(&local_state)); | 138 ASSERT_TRUE(capabilities.local_state->Equals(&local_state)); |
128 } | 139 } |
129 | 140 |
130 TEST(ParseCapabilities, Extensions) { | 141 TEST(ParseCapabilities, Extensions) { |
131 Capabilities capabilities; | 142 Capabilities capabilities; |
132 base::ListValue extensions; | 143 base::ListValue extensions; |
133 extensions.AppendString("ext1"); | 144 extensions.AppendString("ext1"); |
134 extensions.AppendString("ext2"); | 145 extensions.AppendString("ext2"); |
135 base::DictionaryValue caps; | 146 base::DictionaryValue caps; |
136 caps.Set("chromeOptions.extensions", extensions.DeepCopy()); | 147 caps.Set("chromeOptions.extensions", extensions.DeepCopy()); |
137 Status status = capabilities.Parse(caps); | 148 Logger log(Log::kError); |
| 149 Status status = capabilities.Parse(caps, &log); |
138 ASSERT_TRUE(status.IsOk()); | 150 ASSERT_TRUE(status.IsOk()); |
139 ASSERT_EQ(2u, capabilities.extensions.size()); | 151 ASSERT_EQ(2u, capabilities.extensions.size()); |
140 ASSERT_EQ("ext1", capabilities.extensions[0]); | 152 ASSERT_EQ("ext1", capabilities.extensions[0]); |
141 ASSERT_EQ("ext2", capabilities.extensions[1]); | 153 ASSERT_EQ("ext2", capabilities.extensions[1]); |
142 } | 154 } |
143 | 155 |
144 TEST(ParseCapabilities, UnrecognizedProxyType) { | 156 TEST(ParseCapabilities, UnrecognizedProxyType) { |
145 Capabilities capabilities; | 157 Capabilities capabilities; |
146 base::DictionaryValue proxy; | 158 base::DictionaryValue proxy; |
147 proxy.SetString("proxyType", "unknown proxy type"); | 159 proxy.SetString("proxyType", "unknown proxy type"); |
148 base::DictionaryValue caps; | 160 base::DictionaryValue caps; |
149 caps.Set("proxy", proxy.DeepCopy()); | 161 caps.Set("proxy", proxy.DeepCopy()); |
150 Status status = capabilities.Parse(caps); | 162 Logger log(Log::kError); |
| 163 Status status = capabilities.Parse(caps, &log); |
151 ASSERT_FALSE(status.IsOk()); | 164 ASSERT_FALSE(status.IsOk()); |
152 } | 165 } |
153 | 166 |
154 TEST(ParseCapabilities, IllegalProxyType) { | 167 TEST(ParseCapabilities, IllegalProxyType) { |
155 Capabilities capabilities; | 168 Capabilities capabilities; |
156 base::DictionaryValue proxy; | 169 base::DictionaryValue proxy; |
157 proxy.SetInteger("proxyType", 123); | 170 proxy.SetInteger("proxyType", 123); |
158 base::DictionaryValue caps; | 171 base::DictionaryValue caps; |
159 caps.Set("proxy", proxy.DeepCopy()); | 172 caps.Set("proxy", proxy.DeepCopy()); |
160 Status status = capabilities.Parse(caps); | 173 Logger log(Log::kError); |
| 174 Status status = capabilities.Parse(caps, &log); |
161 ASSERT_FALSE(status.IsOk()); | 175 ASSERT_FALSE(status.IsOk()); |
162 } | 176 } |
163 | 177 |
164 TEST(ParseCapabilities, DirectProxy) { | 178 TEST(ParseCapabilities, DirectProxy) { |
165 Capabilities capabilities; | 179 Capabilities capabilities; |
166 base::DictionaryValue proxy; | 180 base::DictionaryValue proxy; |
167 proxy.SetString("proxyType", "DIRECT"); | 181 proxy.SetString("proxyType", "DIRECT"); |
168 base::DictionaryValue caps; | 182 base::DictionaryValue caps; |
169 caps.Set("proxy", proxy.DeepCopy()); | 183 caps.Set("proxy", proxy.DeepCopy()); |
170 Status status = capabilities.Parse(caps); | 184 Logger log(Log::kError); |
| 185 Status status = capabilities.Parse(caps, &log); |
171 ASSERT_TRUE(status.IsOk()); | 186 ASSERT_TRUE(status.IsOk()); |
172 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); | 187 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); |
173 ASSERT_TRUE(capabilities.command.HasSwitch("no-proxy-server")); | 188 ASSERT_TRUE(capabilities.command.HasSwitch("no-proxy-server")); |
174 } | 189 } |
175 | 190 |
176 TEST(ParseCapabilities, SystemProxy) { | 191 TEST(ParseCapabilities, SystemProxy) { |
177 Capabilities capabilities; | 192 Capabilities capabilities; |
178 base::DictionaryValue proxy; | 193 base::DictionaryValue proxy; |
179 proxy.SetString("proxyType", "system"); | 194 proxy.SetString("proxyType", "system"); |
180 base::DictionaryValue caps; | 195 base::DictionaryValue caps; |
181 caps.Set("proxy", proxy.DeepCopy()); | 196 caps.Set("proxy", proxy.DeepCopy()); |
182 Status status = capabilities.Parse(caps); | 197 Logger log(Log::kError); |
| 198 Status status = capabilities.Parse(caps, &log); |
183 ASSERT_TRUE(status.IsOk()); | 199 ASSERT_TRUE(status.IsOk()); |
184 ASSERT_TRUE(capabilities.command.GetSwitches().empty()); | 200 ASSERT_TRUE(capabilities.command.GetSwitches().empty()); |
185 } | 201 } |
186 | 202 |
187 TEST(ParseCapabilities, PacProxy) { | 203 TEST(ParseCapabilities, PacProxy) { |
188 Capabilities capabilities; | 204 Capabilities capabilities; |
189 base::DictionaryValue proxy; | 205 base::DictionaryValue proxy; |
190 proxy.SetString("proxyType", "PAC"); | 206 proxy.SetString("proxyType", "PAC"); |
191 proxy.SetString("proxyAutoconfigUrl", "test.wpad"); | 207 proxy.SetString("proxyAutoconfigUrl", "test.wpad"); |
192 base::DictionaryValue caps; | 208 base::DictionaryValue caps; |
193 caps.Set("proxy", proxy.DeepCopy()); | 209 caps.Set("proxy", proxy.DeepCopy()); |
194 Status status = capabilities.Parse(caps); | 210 Logger log(Log::kError); |
| 211 Status status = capabilities.Parse(caps, &log); |
195 ASSERT_TRUE(status.IsOk()); | 212 ASSERT_TRUE(status.IsOk()); |
196 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); | 213 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); |
197 ASSERT_STREQ( | 214 ASSERT_STREQ( |
198 "test.wpad", | 215 "test.wpad", |
199 capabilities.command.GetSwitchValueASCII("proxy-pac-url").c_str()); | 216 capabilities.command.GetSwitchValueASCII("proxy-pac-url").c_str()); |
200 } | 217 } |
201 | 218 |
202 TEST(ParseCapabilities, MissingProxyAutoconfigUrl) { | 219 TEST(ParseCapabilities, MissingProxyAutoconfigUrl) { |
203 Capabilities capabilities; | 220 Capabilities capabilities; |
204 base::DictionaryValue proxy; | 221 base::DictionaryValue proxy; |
205 proxy.SetString("proxyType", "PAC"); | 222 proxy.SetString("proxyType", "PAC"); |
206 proxy.SetString("httpProxy", "http://localhost:8001"); | 223 proxy.SetString("httpProxy", "http://localhost:8001"); |
207 base::DictionaryValue caps; | 224 base::DictionaryValue caps; |
208 caps.Set("proxy", proxy.DeepCopy()); | 225 caps.Set("proxy", proxy.DeepCopy()); |
209 Status status = capabilities.Parse(caps); | 226 Logger log(Log::kError); |
| 227 Status status = capabilities.Parse(caps, &log); |
210 ASSERT_FALSE(status.IsOk()); | 228 ASSERT_FALSE(status.IsOk()); |
211 } | 229 } |
212 | 230 |
213 TEST(ParseCapabilities, AutodetectProxy) { | 231 TEST(ParseCapabilities, AutodetectProxy) { |
214 Capabilities capabilities; | 232 Capabilities capabilities; |
215 base::DictionaryValue proxy; | 233 base::DictionaryValue proxy; |
216 proxy.SetString("proxyType", "autodetect"); | 234 proxy.SetString("proxyType", "autodetect"); |
217 base::DictionaryValue caps; | 235 base::DictionaryValue caps; |
218 caps.Set("proxy", proxy.DeepCopy()); | 236 caps.Set("proxy", proxy.DeepCopy()); |
219 Status status = capabilities.Parse(caps); | 237 Logger log(Log::kError); |
| 238 Status status = capabilities.Parse(caps, &log); |
220 ASSERT_TRUE(status.IsOk()); | 239 ASSERT_TRUE(status.IsOk()); |
221 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); | 240 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); |
222 ASSERT_TRUE(capabilities.command.HasSwitch("proxy-auto-detect")); | 241 ASSERT_TRUE(capabilities.command.HasSwitch("proxy-auto-detect")); |
223 } | 242 } |
224 | 243 |
225 TEST(ParseCapabilities, ManualProxy) { | 244 TEST(ParseCapabilities, ManualProxy) { |
226 Capabilities capabilities; | 245 Capabilities capabilities; |
227 base::DictionaryValue proxy; | 246 base::DictionaryValue proxy; |
228 proxy.SetString("proxyType", "manual"); | 247 proxy.SetString("proxyType", "manual"); |
229 proxy.SetString("ftpProxy", "localhost:9001"); | 248 proxy.SetString("ftpProxy", "localhost:9001"); |
230 proxy.SetString("httpProxy", "localhost:8001"); | 249 proxy.SetString("httpProxy", "localhost:8001"); |
231 proxy.SetString("sslProxy", "localhost:10001"); | 250 proxy.SetString("sslProxy", "localhost:10001"); |
232 proxy.SetString("noProxy", "google.com, youtube.com"); | 251 proxy.SetString("noProxy", "google.com, youtube.com"); |
233 base::DictionaryValue caps; | 252 base::DictionaryValue caps; |
234 caps.Set("proxy", proxy.DeepCopy()); | 253 caps.Set("proxy", proxy.DeepCopy()); |
235 Status status = capabilities.Parse(caps); | 254 Logger log(Log::kError); |
| 255 Status status = capabilities.Parse(caps, &log); |
236 ASSERT_TRUE(status.IsOk()); | 256 ASSERT_TRUE(status.IsOk()); |
237 ASSERT_EQ(2u, capabilities.command.GetSwitches().size()); | 257 ASSERT_EQ(2u, capabilities.command.GetSwitches().size()); |
238 ASSERT_STREQ( | 258 ASSERT_STREQ( |
239 "ftp=localhost:9001;http=localhost:8001;https=localhost:10001", | 259 "ftp=localhost:9001;http=localhost:8001;https=localhost:10001", |
240 capabilities.command.GetSwitchValueASCII("proxy-server").c_str()); | 260 capabilities.command.GetSwitchValueASCII("proxy-server").c_str()); |
241 ASSERT_STREQ( | 261 ASSERT_STREQ( |
242 "google.com, youtube.com", | 262 "google.com, youtube.com", |
243 capabilities.command.GetSwitchValueASCII("proxy-bypass-list").c_str()); | 263 capabilities.command.GetSwitchValueASCII("proxy-bypass-list").c_str()); |
244 } | 264 } |
245 | 265 |
246 TEST(ParseCapabilities, MissingSettingForManualProxy) { | 266 TEST(ParseCapabilities, MissingSettingForManualProxy) { |
247 Capabilities capabilities; | 267 Capabilities capabilities; |
248 base::DictionaryValue proxy; | 268 base::DictionaryValue proxy; |
249 proxy.SetString("proxyType", "manual"); | 269 proxy.SetString("proxyType", "manual"); |
250 base::DictionaryValue caps; | 270 base::DictionaryValue caps; |
251 caps.Set("proxy", proxy.DeepCopy()); | 271 caps.Set("proxy", proxy.DeepCopy()); |
252 Status status = capabilities.Parse(caps); | 272 Logger log(Log::kError); |
| 273 Status status = capabilities.Parse(caps, &log); |
253 ASSERT_FALSE(status.IsOk()); | 274 ASSERT_FALSE(status.IsOk()); |
254 } | 275 } |
255 | 276 |
256 TEST(ParseCapabilities, IgnoreNullValueForManualProxy) { | 277 TEST(ParseCapabilities, IgnoreNullValueForManualProxy) { |
257 Capabilities capabilities; | 278 Capabilities capabilities; |
258 base::DictionaryValue proxy; | 279 base::DictionaryValue proxy; |
259 proxy.SetString("proxyType", "manual"); | 280 proxy.SetString("proxyType", "manual"); |
260 proxy.SetString("ftpProxy", "localhost:9001"); | 281 proxy.SetString("ftpProxy", "localhost:9001"); |
261 proxy.Set("sslProxy", base::Value::CreateNullValue()); | 282 proxy.Set("sslProxy", base::Value::CreateNullValue()); |
262 proxy.Set("noProxy", base::Value::CreateNullValue()); | 283 proxy.Set("noProxy", base::Value::CreateNullValue()); |
263 base::DictionaryValue caps; | 284 base::DictionaryValue caps; |
264 caps.Set("proxy", proxy.DeepCopy()); | 285 caps.Set("proxy", proxy.DeepCopy()); |
265 Status status = capabilities.Parse(caps); | 286 Logger log(Log::kError); |
| 287 Status status = capabilities.Parse(caps, &log); |
266 ASSERT_TRUE(status.IsOk()); | 288 ASSERT_TRUE(status.IsOk()); |
267 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); | 289 ASSERT_EQ(1u, capabilities.command.GetSwitches().size()); |
268 ASSERT_TRUE(capabilities.command.HasSwitch("proxy-server")); | 290 ASSERT_TRUE(capabilities.command.HasSwitch("proxy-server")); |
269 ASSERT_STREQ( | 291 ASSERT_STREQ( |
270 "ftp=localhost:9001", | 292 "ftp=localhost:9001", |
271 capabilities.command.GetSwitchValueASCII("proxy-server").c_str()); | 293 capabilities.command.GetSwitchValueASCII("proxy-server").c_str()); |
272 } | 294 } |
273 | 295 |
274 TEST(ParseCapabilities, LoggingPrefsOk) { | 296 TEST(ParseCapabilities, LoggingPrefsOk) { |
275 Capabilities capabilities; | 297 Capabilities capabilities; |
276 base::DictionaryValue logging_prefs; | 298 base::DictionaryValue logging_prefs; |
277 logging_prefs.SetString("Network", "INFO"); | 299 logging_prefs.SetString("Network", "INFO"); |
278 base::DictionaryValue caps; | 300 base::DictionaryValue caps; |
279 caps.Set("loggingPrefs", logging_prefs.DeepCopy()); | 301 caps.Set("loggingPrefs", logging_prefs.DeepCopy()); |
280 Status status = capabilities.Parse(caps); | 302 Logger log(Log::kError); |
| 303 Status status = capabilities.Parse(caps, &log); |
281 ASSERT_TRUE(status.IsOk()); | 304 ASSERT_TRUE(status.IsOk()); |
282 ASSERT_TRUE(capabilities.logging_prefs.get()); | 305 ASSERT_TRUE(capabilities.logging_prefs.get()); |
283 ASSERT_EQ(1u, capabilities.logging_prefs->size()); | 306 ASSERT_EQ(1u, capabilities.logging_prefs->size()); |
284 std::string log_level; | 307 std::string log_level; |
285 ASSERT_TRUE(capabilities.logging_prefs->GetString("Network", &log_level)); | 308 ASSERT_TRUE(capabilities.logging_prefs->GetString("Network", &log_level)); |
286 ASSERT_STREQ("INFO", log_level.c_str()); | 309 ASSERT_STREQ("INFO", log_level.c_str()); |
287 } | 310 } |
288 | 311 |
289 TEST(ParseCapabilities, LoggingPrefsNotDict) { | 312 TEST(ParseCapabilities, LoggingPrefsNotDict) { |
290 Capabilities capabilities; | 313 Capabilities capabilities; |
291 base::DictionaryValue caps; | 314 base::DictionaryValue caps; |
292 caps.SetString("loggingPrefs", "INFO"); | 315 caps.SetString("loggingPrefs", "INFO"); |
293 Status status = capabilities.Parse(caps); | 316 Logger log(Log::kError); |
| 317 Status status = capabilities.Parse(caps, &log); |
294 ASSERT_FALSE(status.IsOk()); | 318 ASSERT_FALSE(status.IsOk()); |
295 } | 319 } |
OLD | NEW |