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_SESSION_COMMANDS_H_
6#define CHROME_TEST_CHROMEDRIVER_SESSION_COMMANDS_H_
7
8#include <string>
9
10#include "base/callback_forward.h"
11#include "base/memory/scoped_ptr.h"
12#include "chrome/test/chromedriver/command.h"
13#include "chrome/test/chromedriver/session_thread_map.h"
14
15namespace base {
16class DictionaryValue;
17class Value;
18}
19
20struct Session;
21class Status;
22
23// Quits a session.
24Status ExecuteQuit(
25    bool allow_detach,
26    Session* session,
27    const base::DictionaryValue& params,
28    scoped_ptr<base::Value>* value);
29
30// Gets the capabilities of a particular session.
31Status ExecuteGetSessionCapabilities(
32    Session* session,
33    const base::DictionaryValue& params,
34    scoped_ptr<base::Value>* value);
35
36// Retrieve the handle of the target window.
37Status ExecuteGetCurrentWindowHandle(
38    Session* session,
39    const base::DictionaryValue& params,
40    scoped_ptr<base::Value>* value);
41
42// Close the target window.
43Status ExecuteClose(
44    Session* session,
45    const base::DictionaryValue& params,
46    scoped_ptr<base::Value>* value);
47
48// Retrieve the list of all window handles available to the session.
49Status ExecuteGetWindowHandles(
50    Session* session,
51    const base::DictionaryValue& params,
52    scoped_ptr<base::Value>* value);
53
54// Change target window to another. The window to target at may be specified by
55// its server assigned window handle, or by the value of its name attribute.
56Status ExecuteSwitchToWindow(
57    Session* session,
58    const base::DictionaryValue& params,
59    scoped_ptr<base::Value>* value);
60
61// Configure the amount of time that a particular type of operation can execute
62// for before they are aborted and a timeout error is returned to the client.
63Status ExecuteSetTimeout(
64    Session* session,
65    const base::DictionaryValue& params,
66    scoped_ptr<base::Value>* value);
67
68// Set the timeout for asynchronous scripts.
69Status ExecuteSetScriptTimeout(
70    Session* session,
71    const base::DictionaryValue& params,
72    scoped_ptr<base::Value>* value);
73
74// Set the amount of time the driver should wait when searching for elements.
75Status ExecuteImplicitlyWait(
76    Session* session,
77    const base::DictionaryValue& params,
78    scoped_ptr<base::Value>* value);
79
80Status ExecuteIsLoading(
81    Session* session,
82    const base::DictionaryValue& params,
83    scoped_ptr<base::Value>* value);
84
85Status ExecuteGetLocation(
86    Session* session,
87    const base::DictionaryValue& params,
88    scoped_ptr<base::Value>* value);
89
90Status ExecuteGetWindowPosition(
91    Session* session,
92    const base::DictionaryValue& params,
93    scoped_ptr<base::Value>* value);
94
95Status ExecuteSetWindowPosition(
96    Session* session,
97    const base::DictionaryValue& params,
98    scoped_ptr<base::Value>* value);
99
100Status ExecuteGetWindowSize(
101    Session* session,
102    const base::DictionaryValue& params,
103    scoped_ptr<base::Value>* value);
104
105Status ExecuteSetWindowSize(
106    Session* session,
107    const base::DictionaryValue& params,
108    scoped_ptr<base::Value>* value);
109
110Status ExecuteMaximizeWindow(
111    Session* session,
112    const base::DictionaryValue& params,
113    scoped_ptr<base::Value>* value);
114
115Status ExecuteGetAvailableLogTypes(
116    Session* session,
117    const base::DictionaryValue& params,
118    scoped_ptr<base::Value>* value);
119
120Status ExecuteGetLog(
121    Session* session,
122    const base::DictionaryValue& params,
123    scoped_ptr<base::Value>* value);
124
125Status ExecuteUploadFile(
126    Session* session,
127    const base::DictionaryValue& params,
128    scoped_ptr<base::Value>* value);
129
130#endif  // CHROME_TEST_CHROMEDRIVER_SESSION_COMMANDS_H_
131