1 // Copyright (c) 2011 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_WEBDRIVER_COMMANDS_SET_TIMEOUT_COMMANDS_H_ 6 #define CHROME_TEST_WEBDRIVER_COMMANDS_SET_TIMEOUT_COMMANDS_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "chrome/test/webdriver/commands/webdriver_command.h" 12 13 namespace base { 14 class DictionaryValue; 15 } 16 17 namespace webdriver { 18 19 class Response; 20 21 class SetTimeoutCommand : public WebDriverCommand { 22 public: 23 SetTimeoutCommand(const std::vector<std::string>& path_segments, 24 const base::DictionaryValue* const parameters); 25 virtual ~SetTimeoutCommand(); 26 27 virtual bool DoesPost() OVERRIDE; 28 virtual void ExecutePost(Response* const response) OVERRIDE; 29 virtual void SetTimeout(int timeout_ms) = 0; 30 31 private: 32 DISALLOW_COPY_AND_ASSIGN(SetTimeoutCommand); 33 }; 34 35 // Set timeout for asynchronous script execution (/session/*/execute_async). 36 class SetAsyncScriptTimeoutCommand : public SetTimeoutCommand { 37 public: 38 SetAsyncScriptTimeoutCommand(const std::vector<std::string>& path_segments, 39 const base::DictionaryValue* const parameters); 40 virtual ~SetAsyncScriptTimeoutCommand(); 41 virtual void SetTimeout(int timeout_ms) OVERRIDE; 42 43 private: 44 DISALLOW_COPY_AND_ASSIGN(SetAsyncScriptTimeoutCommand); 45 }; 46 47 // Set the amount of time the driver should wait when searching for elements. 48 class ImplicitWaitCommand : public SetTimeoutCommand { 49 public: 50 ImplicitWaitCommand(const std::vector<std::string>& path_segments, 51 const base::DictionaryValue* const parameters); 52 virtual ~ImplicitWaitCommand(); 53 virtual void SetTimeout(int timeout_ms) OVERRIDE; 54 55 private: 56 DISALLOW_COPY_AND_ASSIGN(ImplicitWaitCommand); 57 }; 58 59 } // namespace webdriver 60 61 #endif // CHROME_TEST_WEBDRIVER_COMMANDS_SET_TIMEOUT_COMMANDS_H_ 62