- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / chromedriver / element_commands.h
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_TEST_CHROMEDRIVER_ELEMENT_COMMANDS_H_
6 #define CHROME_TEST_CHROMEDRIVER_ELEMENT_COMMANDS_H_
7
8 #include <string>
9
10 #include "base/callback_forward.h"
11 #include "base/memory/scoped_ptr.h"
12
13 namespace base {
14 class DictionaryValue;
15 class Value;
16 }
17
18 struct Session;
19 class Status;
20 class WebView;
21
22 typedef base::Callback<Status(
23     Session* session,
24     WebView* web_view,
25     const std::string&,
26     const base::DictionaryValue&,
27     scoped_ptr<base::Value>*)> ElementCommand;
28
29 // Execute a command on a specific element.
30 Status ExecuteElementCommand(
31     const ElementCommand& command,
32     Session* session,
33     WebView* web_view,
34     const base::DictionaryValue& params,
35     scoped_ptr<base::Value>* value);
36
37 // Search for an element on the page, starting from the given element.
38 Status ExecuteFindChildElement(
39     int interval_ms,
40     Session* session,
41     WebView* web_view,
42     const std::string& element_id,
43     const base::DictionaryValue& params,
44     scoped_ptr<base::Value>* value);
45
46 // Search for multiple elements on the page, starting from the given element.
47 Status ExecuteFindChildElements(
48     int interval_ms,
49     Session* session,
50     WebView* web_view,
51     const std::string& element_id,
52     const base::DictionaryValue& params,
53     scoped_ptr<base::Value>* value);
54
55 // Move the mouse to the given element.
56 Status ExecuteHoverOverElement(
57     Session* session,
58     WebView* web_view,
59     const std::string& element_id,
60     const base::DictionaryValue& params,
61     scoped_ptr<base::Value>* value);
62
63 // Click on the element.
64 Status ExecuteClickElement(
65     Session* session,
66     WebView* web_view,
67     const std::string& element_id,
68     const base::DictionaryValue& params,
69     scoped_ptr<base::Value>* value);
70
71 // Touch click on the element.
72 Status ExecuteTouchSingleTap(
73     Session* session,
74     WebView* web_view,
75     const std::string& element_id,
76     const base::DictionaryValue& params,
77     scoped_ptr<base::Value>* value);
78
79 // Clear a TEXTAREA or text INPUT element's value.
80 Status ExecuteClearElement(
81     Session* session,
82     WebView* web_view,
83     const std::string& element_id,
84     const base::DictionaryValue& params,
85     scoped_ptr<base::Value>* value);
86
87 // Send a sequence of key strokes to an element.
88 Status ExecuteSendKeysToElement(
89     Session* session,
90     WebView* web_view,
91     const std::string& element_id,
92     const base::DictionaryValue& params,
93     scoped_ptr<base::Value>* value);
94
95 // Submit a form element.
96 Status ExecuteSubmitElement(
97     Session* session,
98     WebView* web_view,
99     const std::string& element_id,
100     const base::DictionaryValue& params,
101     scoped_ptr<base::Value>* value);
102
103 // Returns the text of a given element.
104 Status ExecuteGetElementText(
105     Session* session,
106     WebView* web_view,
107     const std::string& element_id,
108     const base::DictionaryValue& params,
109     scoped_ptr<base::Value>* value);
110
111 // Returns the value of a given element.
112 Status ExecuteGetElementValue(
113     Session* session,
114     WebView* web_view,
115     const std::string& element_id,
116     const base::DictionaryValue& params,
117     scoped_ptr<base::Value>* value);
118
119 // Returns the lower case tag name of a given element.
120 Status ExecuteGetElementTagName(
121     Session* session,
122     WebView* web_view,
123     const std::string& element_id,
124     const base::DictionaryValue& params,
125     scoped_ptr<base::Value>* value);
126
127 Status ExecuteIsElementSelected(
128     Session* session,
129     WebView* web_view,
130     const std::string& element_id,
131     const base::DictionaryValue& params,
132     scoped_ptr<base::Value>* value);
133
134 Status ExecuteIsElementEnabled(
135     Session* session,
136     WebView* web_view,
137     const std::string& element_id,
138     const base::DictionaryValue& params,
139     scoped_ptr<base::Value>* value);
140
141 Status ExecuteIsElementDisplayed(
142     Session* session,
143     WebView* web_view,
144     const std::string& element_id,
145     const base::DictionaryValue& params,
146     scoped_ptr<base::Value>* value);
147
148 // Returns the location of a given element in page coordinates.
149 Status ExecuteGetElementLocation(
150     Session* session,
151     WebView* web_view,
152     const std::string& element_id,
153     const base::DictionaryValue& params,
154     scoped_ptr<base::Value>* value);
155
156 // Returns the location of a given element in client coordinates, after
157 // scrolling it into view.
158 Status ExecuteGetElementLocationOnceScrolledIntoView(
159     Session* session,
160     WebView* web_view,
161     const std::string& element_id,
162     const base::DictionaryValue& params,
163     scoped_ptr<base::Value>* value);
164
165 Status ExecuteGetElementSize(
166     Session* session,
167     WebView* web_view,
168     const std::string& element_id,
169     const base::DictionaryValue& params,
170     scoped_ptr<base::Value>* value);
171
172 Status ExecuteGetElementAttribute(
173     Session* session,
174     WebView* web_view,
175     const std::string& element_id,
176     const base::DictionaryValue& params,
177     scoped_ptr<base::Value>* value);
178
179 // Returns the effective style for a given property of the specified element.
180 Status ExecuteGetElementValueOfCSSProperty(
181     Session* session,
182     WebView* web_view,
183     const std::string& element_id,
184     const base::DictionaryValue& params,
185     scoped_ptr<base::Value>* value);
186
187 // Returns whether the two given elements are equivalent.
188 Status ExecuteElementEquals(
189     Session* session,
190     WebView* web_view,
191     const std::string& element_id,
192     const base::DictionaryValue& params,
193     scoped_ptr<base::Value>* value);
194
195 #endif  // CHROME_TEST_CHROMEDRIVER_ELEMENT_COMMANDS_H_