| Index: chrome/test/chromedriver/capabilities_unittest.cc
|
| diff --git a/chrome/test/chromedriver/capabilities_unittest.cc b/chrome/test/chromedriver/capabilities_unittest.cc
|
| index 7f77fb10bce53dc85c40cbdf984c29222ddb8825..e687802626a0e86d8e8aa7553e2a4bc6c159288a 100644
|
| --- a/chrome/test/chromedriver/capabilities_unittest.cc
|
| +++ b/chrome/test/chromedriver/capabilities_unittest.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/values.h"
|
| #include "chrome/test/chromedriver/chrome/log.h"
|
| #include "chrome/test/chromedriver/chrome/status.h"
|
| +#include "chrome/test/chromedriver/logging.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| TEST(Switches, Empty) {
|
| @@ -336,6 +337,92 @@ TEST(ParseCapabilities, LoggingPrefsNotDict) {
|
| ASSERT_FALSE(status.IsOk());
|
| }
|
|
|
| +TEST(ParseCapabilities, PerfLoggingPrefsInspectorDomainStatus) {
|
| + Capabilities capabilities;
|
| + // Perf log must be enabled if performance log preferences are specified.
|
| + base::DictionaryValue logging_prefs;
|
| + logging_prefs.SetString(WebDriverLog::kPerformanceType, "INFO");
|
| + base::DictionaryValue desired_caps;
|
| + desired_caps.Set("loggingPrefs", logging_prefs.DeepCopy());
|
| + ASSERT_EQ(PerfLoggingPrefs::InspectorDomainStatus::kDefaultEnabled,
|
| + capabilities.perf_logging_prefs.network);
|
| + ASSERT_EQ(PerfLoggingPrefs::InspectorDomainStatus::kDefaultEnabled,
|
| + capabilities.perf_logging_prefs.page);
|
| + ASSERT_EQ(PerfLoggingPrefs::InspectorDomainStatus::kDefaultEnabled,
|
| + capabilities.perf_logging_prefs.timeline);
|
| + base::DictionaryValue perf_logging_prefs;
|
| + perf_logging_prefs.SetBoolean("enableNetwork", true);
|
| + perf_logging_prefs.SetBoolean("enablePage", false);
|
| + desired_caps.Set("chromeOptions.perfLoggingPrefs",
|
| + perf_logging_prefs.DeepCopy());
|
| + Status status = capabilities.Parse(desired_caps);
|
| + ASSERT_TRUE(status.IsOk());
|
| + ASSERT_EQ(PerfLoggingPrefs::InspectorDomainStatus::kExplicitlyEnabled,
|
| + capabilities.perf_logging_prefs.network);
|
| + ASSERT_EQ(PerfLoggingPrefs::InspectorDomainStatus::kExplicitlyDisabled,
|
| + capabilities.perf_logging_prefs.page);
|
| + ASSERT_EQ(PerfLoggingPrefs::InspectorDomainStatus::kDefaultEnabled,
|
| + capabilities.perf_logging_prefs.timeline);
|
| +}
|
| +
|
| +TEST(ParseCapabilities, PerfLoggingPrefsTraceCategories) {
|
| + Capabilities capabilities;
|
| + // Perf log must be enabled if performance log preferences are specified.
|
| + base::DictionaryValue logging_prefs;
|
| + logging_prefs.SetString(WebDriverLog::kPerformanceType, "INFO");
|
| + base::DictionaryValue desired_caps;
|
| + desired_caps.Set("loggingPrefs", logging_prefs.DeepCopy());
|
| + ASSERT_EQ("", capabilities.perf_logging_prefs.trace_categories);
|
| + base::DictionaryValue perf_logging_prefs;
|
| + perf_logging_prefs.SetString("traceCategories", "benchmark,webkit.console");
|
| + desired_caps.Set("chromeOptions.perfLoggingPrefs",
|
| + perf_logging_prefs.DeepCopy());
|
| + Status status = capabilities.Parse(desired_caps);
|
| + ASSERT_TRUE(status.IsOk());
|
| + ASSERT_EQ("benchmark,webkit.console",
|
| + capabilities.perf_logging_prefs.trace_categories);
|
| +}
|
| +
|
| +TEST(ParseCapabilities, PerfLoggingPrefsNotDict) {
|
| + Capabilities capabilities;
|
| + // Perf log must be enabled if performance log preferences are specified.
|
| + base::DictionaryValue logging_prefs;
|
| + logging_prefs.SetString(WebDriverLog::kPerformanceType, "INFO");
|
| + base::DictionaryValue desired_caps;
|
| + desired_caps.Set("loggingPrefs", logging_prefs.DeepCopy());
|
| + desired_caps.SetString("chromeOptions.perfLoggingPrefs", "traceCategories");
|
| + Status status = capabilities.Parse(desired_caps);
|
| + ASSERT_FALSE(status.IsOk());
|
| +}
|
| +
|
| +TEST(ParseCapabilities, PerfLoggingPrefsNoPerfLogLevel) {
|
| + Capabilities capabilities;
|
| + base::DictionaryValue desired_caps;
|
| + base::DictionaryValue perf_logging_prefs;
|
| + perf_logging_prefs.SetBoolean("enableNetwork", true);
|
| + desired_caps.Set("chromeOptions.perfLoggingPrefs",
|
| + perf_logging_prefs.DeepCopy());
|
| + // Should fail because perf log must be enabled if perf log prefs specified.
|
| + Status status = capabilities.Parse(desired_caps);
|
| + ASSERT_FALSE(status.IsOk());
|
| +}
|
| +
|
| +TEST(ParseCapabilities, PerfLoggingPrefsPerfLogOff) {
|
| + Capabilities capabilities;
|
| + base::DictionaryValue logging_prefs;
|
| + // Disable performance log by setting logging level to OFF.
|
| + logging_prefs.SetString(WebDriverLog::kPerformanceType, "OFF");
|
| + base::DictionaryValue desired_caps;
|
| + desired_caps.Set("loggingPrefs", logging_prefs.DeepCopy());
|
| + base::DictionaryValue perf_logging_prefs;
|
| + perf_logging_prefs.SetBoolean("enableNetwork", true);
|
| + desired_caps.Set("chromeOptions.perfLoggingPrefs",
|
| + perf_logging_prefs.DeepCopy());
|
| + // Should fail because perf log must be enabled if perf log prefs specified.
|
| + Status status = capabilities.Parse(desired_caps);
|
| + ASSERT_FALSE(status.IsOk());
|
| +}
|
| +
|
| TEST(ParseCapabilities, ExcludeSwitches) {
|
| Capabilities capabilities;
|
| base::ListValue exclude_switches;
|
|
|