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#ifndef CHROME_TEST_CHROMEDRIVER_COMMANDS_H_ 6#define CHROME_TEST_CHROMEDRIVER_COMMANDS_H_ 7 8#include <string> 9 10#include "base/callback_forward.h" 11#include "base/memory/ref_counted.h" 12#include "base/memory/scoped_ptr.h" 13#include "chrome/test/chromedriver/command.h" 14#include "chrome/test/chromedriver/session_thread_map.h" 15 16namespace base { 17class DictionaryValue; 18class Value; 19} 20 21struct Session; 22class Status; 23 24// Gets status/info about ChromeDriver. 25void ExecuteGetStatus( 26 const base::DictionaryValue& params, 27 const std::string& session_id, 28 const CommandCallback& callback); 29 30// Creates a new session. 31void ExecuteCreateSession( 32 SessionThreadMap* session_thread_map, 33 const Command& init_session_cmd, 34 const base::DictionaryValue& params, 35 const std::string& session_id, 36 const CommandCallback& callback); 37 38// Quits all sessions. 39void ExecuteQuitAll( 40 const Command& quit_command, 41 SessionThreadMap* session_thread_map, 42 const base::DictionaryValue& params, 43 const std::string& session_id, 44 const CommandCallback& callback); 45 46typedef base::Callback<Status( 47 Session* session, 48 const base::DictionaryValue&, 49 scoped_ptr<base::Value>*)> SessionCommand; 50 51// Executes a given session command, after acquiring access to the appropriate 52// session. 53void ExecuteSessionCommand( 54 SessionThreadMap* session_thread_map, 55 const char* command_name, 56 const SessionCommand& command, 57 bool return_ok_without_session, 58 const base::DictionaryValue& params, 59 const std::string& session_id, 60 const CommandCallback& callback); 61 62namespace internal { 63void CreateSessionOnSessionThreadForTesting(const std::string& id); 64} // namespace internal 65 66#endif // CHROME_TEST_CHROMEDRIVER_COMMANDS_H_ 67