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

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

Issue 1827003004: [Chromedriver] Chromedriver should handle unexpected alert automatically. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: make ignore value as default & fix nits. Created 4 years, 1 month 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/session_commands.h" 5 #include "chrome/test/chromedriver/session_commands.h"
6 6
7 #include <list> 7 #include <list>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 device_manager(device_manager), 97 device_manager(device_manager),
98 port_server(port_server), 98 port_server(port_server),
99 port_manager(port_manager) {} 99 port_manager(port_manager) {}
100 100
101 InitSessionParams::InitSessionParams(const InitSessionParams& other) = default; 101 InitSessionParams::InitSessionParams(const InitSessionParams& other) = default;
102 102
103 InitSessionParams::~InitSessionParams() {} 103 InitSessionParams::~InitSessionParams() {}
104 104
105 namespace { 105 namespace {
106 106
107 std::unique_ptr<base::DictionaryValue> CreateCapabilities(Chrome* chrome) { 107 std::unique_ptr<base::DictionaryValue> CreateCapabilities(Chrome* chrome) {
samuong 2016/11/22 19:52:16 since capabilities belong to the session, i think
gmanikpure 2016/11/23 18:34:26 Done.Thank you!
108 std::unique_ptr<base::DictionaryValue> caps(new base::DictionaryValue()); 108 std::unique_ptr<base::DictionaryValue> caps(new base::DictionaryValue());
109 caps->SetString("browserName", "chrome"); 109 caps->SetString("browserName", "chrome");
110 caps->SetString("version", chrome->GetBrowserInfo()->browser_version); 110 caps->SetString("version", chrome->GetBrowserInfo()->browser_version);
111 caps->SetString("chrome.chromedriverVersion", kChromeDriverVersion); 111 caps->SetString("chrome.chromedriverVersion", kChromeDriverVersion);
112 caps->SetString("platform", chrome->GetOperatingSystemName()); 112 caps->SetString("platform", chrome->GetOperatingSystemName());
113 caps->SetString("pageLoadStrategy", chrome->page_load_strategy()); 113 caps->SetString("pageLoadStrategy", chrome->page_load_strategy());
114 caps->SetBoolean("javascriptEnabled", true); 114 caps->SetBoolean("javascriptEnabled", true);
115 caps->SetBoolean("takesScreenshot", true); 115 caps->SetBoolean("takesScreenshot", true);
116 caps->SetBoolean("takesHeapSnapshot", true); 116 caps->SetBoolean("takesHeapSnapshot", true);
117 caps->SetBoolean("handlesAlerts", true); 117 caps->SetBoolean("handlesAlerts", true);
118 caps->SetBoolean("databaseEnabled", false); 118 caps->SetBoolean("databaseEnabled", false);
119 caps->SetBoolean("locationContextEnabled", true); 119 caps->SetBoolean("locationContextEnabled", true);
120 caps->SetBoolean("mobileEmulationEnabled", 120 caps->SetBoolean("mobileEmulationEnabled",
121 chrome->IsMobileEmulationEnabled()); 121 chrome->IsMobileEmulationEnabled());
122 caps->SetBoolean("applicationCacheEnabled", false); 122 caps->SetBoolean("applicationCacheEnabled", false);
123 caps->SetBoolean("browserConnectionEnabled", false); 123 caps->SetBoolean("browserConnectionEnabled", false);
124 caps->SetBoolean("cssSelectorsEnabled", true); 124 caps->SetBoolean("cssSelectorsEnabled", true);
125 caps->SetBoolean("webStorageEnabled", true); 125 caps->SetBoolean("webStorageEnabled", true);
126 caps->SetBoolean("rotatable", false); 126 caps->SetBoolean("rotatable", false);
127 caps->SetBoolean("acceptSslCerts", true); 127 caps->SetBoolean("acceptSslCerts", true);
128 caps->SetBoolean("nativeEvents", true); 128 caps->SetBoolean("nativeEvents", true);
129 caps->SetBoolean("hasTouchScreen", chrome->HasTouchScreen()); 129 caps->SetBoolean("hasTouchScreen", chrome->HasTouchScreen());
130 130
131 Session* session = GetThreadLocalSession();
132 caps->SetString("unexpectedAlertBehaviour",
133 session->GetUnexpectedAlertBehaviour());
134
131 ChromeDesktopImpl* desktop = NULL; 135 ChromeDesktopImpl* desktop = NULL;
132 Status status = chrome->GetAsDesktop(&desktop); 136 Status status = chrome->GetAsDesktop(&desktop);
133 if (status.IsOk()) { 137 if (status.IsOk()) {
134 caps->SetString("chrome.userDataDir", 138 caps->SetString("chrome.userDataDir",
135 desktop->command().GetSwitchValueNative("user-data-dir")); 139 desktop->command().GetSwitchValueNative("user-data-dir"));
136 caps->SetBoolean("networkConnectionEnabled", 140 caps->SetBoolean("networkConnectionEnabled",
137 desktop->IsNetworkConnectionEnabled()); 141 desktop->IsNetworkConnectionEnabled());
138 } 142 }
139 143
140 return caps; 144 return caps;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 session->w3c_compliant = true; 184 session->w3c_compliant = true;
181 else if (!params.GetDictionary("desiredCapabilities", &desired_caps) && 185 else if (!params.GetDictionary("desiredCapabilities", &desired_caps) &&
182 !params.GetDictionary("capabilities.desiredCapabilities", &desired_caps)) 186 !params.GetDictionary("capabilities.desiredCapabilities", &desired_caps))
183 return Status(kUnknownError, "cannot find dict 'desiredCapabilities'"); 187 return Status(kUnknownError, "cannot find dict 'desiredCapabilities'");
184 188
185 Capabilities capabilities; 189 Capabilities capabilities;
186 Status status = capabilities.Parse(*desired_caps); 190 Status status = capabilities.Parse(*desired_caps);
187 if (status.IsError()) 191 if (status.IsError())
188 return status; 192 return status;
189 193
194 desired_caps->GetString("unexpectedAlertBehaviour",
195 &session->unexpected_alert_behaviour);
196
190 Log::Level driver_level = Log::kWarning; 197 Log::Level driver_level = Log::kWarning;
191 if (capabilities.logging_prefs.count(WebDriverLog::kDriverType)) 198 if (capabilities.logging_prefs.count(WebDriverLog::kDriverType))
192 driver_level = capabilities.logging_prefs[WebDriverLog::kDriverType]; 199 driver_level = capabilities.logging_prefs[WebDriverLog::kDriverType];
193 session->driver_log->set_min_level(driver_level); 200 session->driver_log->set_min_level(driver_level);
194 201
195 // Create Log's and DevToolsEventListener's for ones that are DevTools-based. 202 // Create Log's and DevToolsEventListener's for ones that are DevTools-based.
196 // Session will own the Log's, Chrome will own the listeners. 203 // Session will own the Log's, Chrome will own the listeners.
197 // Also create |CommandListener|s for the appropriate logs. 204 // Also create |CommandListener|s for the appropriate logs.
198 ScopedVector<DevToolsEventListener> devtools_event_listeners; 205 ScopedVector<DevToolsEventListener> devtools_event_listeners;
199 ScopedVector<CommandListener> command_listeners; 206 ScopedVector<CommandListener> command_listeners;
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 std::unique_ptr<base::Value>* value) { 881 std::unique_ptr<base::Value>* value) {
875 WebView* web_view = nullptr; 882 WebView* web_view = nullptr;
876 Status status = session->GetTargetWindow(&web_view); 883 Status status = session->GetTargetWindow(&web_view);
877 if (status.IsError()) 884 if (status.IsError())
878 return status; 885 return status;
879 status = web_view->DeleteScreenOrientation(); 886 status = web_view->DeleteScreenOrientation();
880 if (status.IsError()) 887 if (status.IsError())
881 return status; 888 return status;
882 return Status(kOk); 889 return Status(kOk);
883 } 890 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698