| 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 |