Chromium Code Reviews| 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/log.h" |
| 9 #include "chrome/test/chromedriver/chrome/status.h" | 9 #include "chrome/test/chromedriver/chrome/status.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 354 TEST(ParseCapabilities, UseExistingBrowser) { | 354 TEST(ParseCapabilities, UseExistingBrowser) { |
| 355 Capabilities capabilities; | 355 Capabilities capabilities; |
| 356 base::DictionaryValue caps; | 356 base::DictionaryValue caps; |
| 357 caps.SetString("chromeOptions.debuggerAddress", "abc:123"); | 357 caps.SetString("chromeOptions.debuggerAddress", "abc:123"); |
| 358 Status status = capabilities.Parse(caps); | 358 Status status = capabilities.Parse(caps); |
| 359 ASSERT_TRUE(status.IsOk()); | 359 ASSERT_TRUE(status.IsOk()); |
| 360 ASSERT_TRUE(capabilities.IsExistingBrowser()); | 360 ASSERT_TRUE(capabilities.IsExistingBrowser()); |
| 361 ASSERT_EQ("abc", capabilities.debugger_address.host()); | 361 ASSERT_EQ("abc", capabilities.debugger_address.host()); |
| 362 ASSERT_EQ(123, capabilities.debugger_address.port()); | 362 ASSERT_EQ(123, capabilities.debugger_address.port()); |
| 363 } | 363 } |
| 364 | |
| 365 TEST(ParseCapabilities, MobileEmulationUserAgent) { | |
| 366 Capabilities capabilities; | |
| 367 base::DictionaryValue mobile_emulation; | |
| 368 mobile_emulation.SetString("userAgent", "Agent Smith"); | |
| 369 base::DictionaryValue caps; | |
| 370 caps.Set("chromeOptions.mobileEmulation", mobile_emulation.DeepCopy()); | |
| 371 Status status = capabilities.Parse(caps); | |
| 372 ASSERT_TRUE(status.IsOk()); | |
| 373 | |
| 374 ASSERT_EQ(1u, capabilities.switches.GetSize()); | |
| 375 ASSERT_TRUE(capabilities.switches.HasSwitch("user-agent")); | |
| 376 ASSERT_EQ("'Agent Smith'", | |
|
samuong
2014/05/16 22:56:21
Should be ASSERT_EQ("Agent Smith"
i.e. no single
sam.rawlins
2014/05/16 23:35:51
Done.
| |
| 377 capabilities.switches.GetSwitchValue("user-agent")); | |
| 378 } | |
| 379 | |
| 380 TEST(ParseCapabilities, MobileEmulationDeviceMetrics) { | |
| 381 Capabilities capabilities; | |
| 382 base::DictionaryValue mobile_emulation; | |
| 383 mobile_emulation.SetInteger("deviceMetrics.width", 360); | |
| 384 mobile_emulation.SetInteger("deviceMetrics.height", 640); | |
| 385 mobile_emulation.SetDouble("deviceMetrics.pixelRatio", 3.0); | |
| 386 base::DictionaryValue caps; | |
| 387 caps.Set("chromeOptions.mobileEmulation", mobile_emulation.DeepCopy()); | |
| 388 Status status = capabilities.Parse(caps); | |
| 389 ASSERT_TRUE(status.IsOk()); | |
| 390 | |
| 391 ASSERT_EQ(360, capabilities.device_metrics->width); | |
| 392 ASSERT_EQ(640, capabilities.device_metrics->height); | |
| 393 ASSERT_EQ(3.0, capabilities.device_metrics->device_scale_factor); | |
| 394 } | |
| 395 | |
| 396 TEST(ParseCapabilities, MobileEmulationDeviceName) { | |
| 397 Capabilities capabilities; | |
| 398 base::DictionaryValue mobile_emulation; | |
| 399 mobile_emulation.SetString("deviceName", "Google Nexus 5"); | |
| 400 base::DictionaryValue caps; | |
| 401 caps.Set("chromeOptions.mobileEmulation", mobile_emulation.DeepCopy()); | |
| 402 Status status = capabilities.Parse(caps); | |
| 403 ASSERT_TRUE(status.IsOk()); | |
| 404 | |
| 405 ASSERT_EQ(1u, capabilities.switches.GetSize()); | |
| 406 ASSERT_TRUE(capabilities.switches.HasSwitch("user-agent")); | |
| 407 ASSERT_EQ( | |
| 408 "'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWe" | |
| 409 "bKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.1" | |
| 410 "9'", | |
| 411 capabilities.switches.GetSwitchValue("user-agent")); | |
| 412 | |
| 413 ASSERT_EQ(360, capabilities.device_metrics->width); | |
| 414 ASSERT_EQ(640, capabilities.device_metrics->height); | |
| 415 ASSERT_EQ(3.0, capabilities.device_metrics->device_scale_factor); | |
| 416 } | |
| 417 | |
| 418 TEST(ParseCapabilities, MobileEmulationNotDict) { | |
| 419 Capabilities capabilities; | |
| 420 base::DictionaryValue caps; | |
| 421 caps.SetString("chromeOptions.mobileEmulation", "Google Nexus 5"); | |
| 422 Status status = capabilities.Parse(caps); | |
| 423 ASSERT_FALSE(status.IsOk()); | |
| 424 } | |
| 425 | |
| 426 TEST(ParseCapabilities, MobileEmulationDeviceMetricsNotDict) { | |
| 427 Capabilities capabilities; | |
| 428 base::DictionaryValue mobile_emulation; | |
| 429 mobile_emulation.SetInteger("deviceMetrics", 360); | |
| 430 base::DictionaryValue caps; | |
| 431 caps.Set("chromeOptions.mobileEmulation", mobile_emulation.DeepCopy()); | |
| 432 Status status = capabilities.Parse(caps); | |
| 433 ASSERT_FALSE(status.IsOk()); | |
| 434 } | |
| 435 | |
| 436 TEST(ParseCapabilities, MobileEmulationDeviceMetricsNotNumbers) { | |
| 437 Capabilities capabilities; | |
| 438 base::DictionaryValue mobile_emulation; | |
| 439 mobile_emulation.SetString("deviceMetrics.width", "360"); | |
| 440 mobile_emulation.SetString("deviceMetrics.height", "640"); | |
| 441 mobile_emulation.SetString("deviceMetrics.pixelRatio", "3.0"); | |
| 442 base::DictionaryValue caps; | |
| 443 caps.Set("chromeOptions.mobileEmulation", mobile_emulation.DeepCopy()); | |
| 444 Status status = capabilities.Parse(caps); | |
| 445 ASSERT_FALSE(status.IsOk()); | |
| 446 } | |
| 447 | |
| 448 TEST(ParseCapabilities, MobileEmulationBadDict) { | |
| 449 Capabilities capabilities; | |
| 450 base::DictionaryValue mobile_emulation; | |
| 451 mobile_emulation.SetString("deviceName", "Google Nexus 5"); | |
| 452 mobile_emulation.SetInteger("deviceMetrics.width", 360); | |
| 453 mobile_emulation.SetInteger("deviceMetrics.height", 640); | |
| 454 mobile_emulation.SetDouble("deviceMetrics.pixelRatio", 3.0); | |
| 455 base::DictionaryValue caps; | |
| 456 caps.Set("chromeOptions.mobileEmulation", mobile_emulation.DeepCopy()); | |
| 457 Status status = capabilities.Parse(caps); | |
| 458 ASSERT_FALSE(status.IsOk()); | |
| 459 } | |
| OLD | NEW |