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

Side by Side Diff: chrome/test/webdriver/commands/target_locator_commands.cc

Issue 23526047: Delete old chromedriver code, and remove mongoose webserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 3 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/test/webdriver/commands/target_locator_commands.h"
6
7 #include "base/strings/string_number_conversions.h"
8 #include "base/values.h"
9 #include "chrome/test/webdriver/commands/response.h"
10 #include "chrome/test/webdriver/webdriver_element_id.h"
11 #include "chrome/test/webdriver/webdriver_error.h"
12 #include "chrome/test/webdriver/webdriver_session.h"
13 #include "chrome/test/webdriver/webdriver_util.h"
14
15 namespace webdriver {
16
17 WindowHandleCommand::WindowHandleCommand(
18 const std::vector<std::string>& path_segments,
19 base::DictionaryValue* parameters)
20 : WebDriverCommand(path_segments, parameters) {}
21
22 WindowHandleCommand::~WindowHandleCommand() {}
23
24 bool WindowHandleCommand::DoesGet() {
25 return true;
26 }
27
28 void WindowHandleCommand::ExecuteGet(Response* const response) {
29 response->SetValue(new base::StringValue(
30 WebViewIdToString(session_->current_target().view_id)));
31 }
32
33 WindowHandlesCommand::WindowHandlesCommand(
34 const std::vector<std::string>& path_segments,
35 base::DictionaryValue* parameters)
36 : WebDriverCommand(path_segments, parameters) {}
37
38 WindowHandlesCommand::~WindowHandlesCommand() {}
39
40 bool WindowHandlesCommand::DoesGet() {
41 return true;
42 }
43
44 void WindowHandlesCommand::ExecuteGet(Response* const response) {
45 std::vector<WebViewInfo> views;
46 Error* error = session_->GetViews(&views);
47 if (error) {
48 response->SetError(error);
49 return;
50 }
51 base::ListValue* id_list = new base::ListValue();
52 for (size_t i = 0; i < views.size(); ++i) {
53 if (!views[i].view_id.IsTab() &&
54 views[i].view_id.GetId().type() != AutomationId::kTypeAppShell)
55 continue;
56 id_list->Append(new base::StringValue(WebViewIdToString(views[i].view_id)));
57 }
58 response->SetValue(id_list);
59 }
60
61 WindowCommand::WindowCommand(
62 const std::vector<std::string>& path_segments,
63 base::DictionaryValue* parameters)
64 : WebDriverCommand(path_segments, parameters) {}
65
66 WindowCommand::~WindowCommand() {}
67
68 bool WindowCommand::DoesPost() {
69 return true;
70 }
71
72 bool WindowCommand::DoesDelete() {
73 return true;
74 }
75
76 void WindowCommand::ExecutePost(Response* const response) {
77 std::string name;
78 if (!GetStringParameter("name", &name)) {
79 response->SetError(new Error(
80 kBadRequest, "Missing or invalid 'name' parameter"));
81 return;
82 }
83
84 Error* error = session_->SwitchToView(name);
85 if (error)
86 response->SetError(error);
87 }
88
89 void WindowCommand::ExecuteDelete(Response* const response) {
90 Error* error = session_->CloseWindow();
91 if (error)
92 response->SetError(error);
93 }
94
95 bool WindowCommand::ShouldRunPreAndPostCommandHandlers() {
96 return false;
97 }
98
99 SwitchFrameCommand::SwitchFrameCommand(
100 const std::vector<std::string>& path_segments,
101 base::DictionaryValue* parameters)
102 : WebDriverCommand(path_segments, parameters) {}
103
104 SwitchFrameCommand::~SwitchFrameCommand() {}
105
106 bool SwitchFrameCommand::DoesPost() {
107 return true;
108 }
109
110 void SwitchFrameCommand::ExecutePost(Response* const response) {
111 std::string id;
112 int index = 0;
113 ElementId element;
114 Error* error = NULL;
115 if (GetStringParameter("id", &id)) {
116 error = session_->SwitchToFrameWithNameOrId(id);
117 } else if (GetIntegerParameter("id", &index)) {
118 error = session_->SwitchToFrameWithIndex(index);
119 } else if (GetWebElementParameter("id", &element)) {
120 error = session_->SwitchToFrameWithElement(element);
121 } else if (IsNullParameter("id") || !HasParameter("id")) {
122 // Treat null 'id' and no 'id' as the same.
123 // See http://code.google.com/p/selenium/issues/detail?id=1479.
124 session_->SwitchToTopFrame();
125 } else {
126 error = new Error(kBadRequest, "Invalid 'id' parameter");
127 }
128 if (error)
129 response->SetError(error);
130 }
131
132 bool SwitchFrameCommand::GetWebElementParameter(const std::string& key,
133 ElementId* out) const {
134 const base::DictionaryValue* value;
135 if (!GetDictionaryParameter(key, &value))
136 return false;
137
138 ElementId id(value);
139 if (!id.is_valid())
140 return false;
141
142 *out = id;
143 return true;
144 }
145
146 ActiveElementCommand::ActiveElementCommand(
147 const std::vector<std::string>& path_segments,
148 base::DictionaryValue* parameters)
149 : WebDriverCommand(path_segments, parameters) {}
150
151 ActiveElementCommand::~ActiveElementCommand() {}
152
153 bool ActiveElementCommand::DoesPost() {
154 return true;
155 }
156
157 void ActiveElementCommand::ExecutePost(Response* const response) {
158 base::ListValue args;
159 base::Value* result = NULL;
160 Error* error = session_->ExecuteScript(
161 "return document.activeElement || document.body", &args, &result);
162 if (error) {
163 response->SetError(error);
164 return;
165 }
166 response->SetValue(result);
167 }
168
169 } // namespace webdriver
OLDNEW
« no previous file with comments | « chrome/test/webdriver/commands/target_locator_commands.h ('k') | chrome/test/webdriver/commands/title_command.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698