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

Side by Side Diff: chrome/test/chromedriver/capabilities_unittest.cc

Issue 251933005: [ChromeDriver] Support mobile emulation on desktop Chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleaning up DeviceMetrics architecture; adding a test Created 6 years, 7 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
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698