| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_TEST_WEBDRIVER_AUTOMATION_H_ | 5 #ifndef CHROME_TEST_WEBDRIVER_AUTOMATION_H_ |
| 6 #define CHROME_TEST_WEBDRIVER_AUTOMATION_H_ | 6 #define CHROME_TEST_WEBDRIVER_AUTOMATION_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/task.h" | 12 #include "base/task.h" |
| 13 #include "base/ref_counted.h" | 13 #include "base/ref_counted.h" |
| 14 #include "base/scoped_ptr.h" | 14 #include "base/scoped_ptr.h" |
| 15 #include "chrome/common/automation_constants.h" | 15 #include "chrome/common/automation_constants.h" |
| 16 #include "ui/base/keycodes/keyboard_codes.h" | 16 #include "ui/base/keycodes/keyboard_codes.h" |
| 17 | 17 |
| 18 class AutomationProxy; | 18 class AutomationProxy; |
| 19 class DictionaryValue; | 19 class DictionaryValue; |
| 20 class FilePath; | 20 class FilePath; |
| 21 class GURL; | 21 class GURL; |
| 22 class ProxyLauncher; | 22 class ProxyLauncher; |
| 23 class TabProxy; | 23 struct WebKeyEvent; |
| 24 | 24 |
| 25 namespace gfx { | 25 namespace gfx { |
| 26 class Point; | 26 class Point; |
| 27 } | 27 } |
| 28 | 28 |
| 29 namespace webdriver { | 29 namespace webdriver { |
| 30 | 30 |
| 31 struct WebKeyEvent { | |
| 32 WebKeyEvent(automation::KeyEventTypes type, | |
| 33 ui::KeyboardCode key_code, | |
| 34 const std::string& unmodified_text, | |
| 35 const std::string& modified_text, | |
| 36 int modifiers); | |
| 37 | |
| 38 automation::KeyEventTypes type; | |
| 39 ui::KeyboardCode key_code; | |
| 40 std::string unmodified_text; | |
| 41 std::string modified_text; | |
| 42 int modifiers; | |
| 43 }; | |
| 44 | |
| 45 // Creates and controls the Chrome instance. | 31 // Creates and controls the Chrome instance. |
| 46 // This class should be created and accessed on a single thread. | 32 // This class should be created and accessed on a single thread. |
| 47 // Note: All member functions are void because they are invoked | 33 // Note: All member functions are void because they are invoked |
| 48 // by posting a task from NewRunnableMethod. | 34 // by posting a task from NewRunnableMethod. |
| 49 class Automation { | 35 class Automation { |
| 50 public: | 36 public: |
| 51 Automation(); | 37 Automation(); |
| 52 virtual ~Automation(); | 38 virtual ~Automation(); |
| 53 | 39 |
| 54 // Creates a browser, using the exe found in |browser_dir|. If |browser_dir| | 40 // Creates a browser, using the exe found in |browser_dir|. If |browser_dir| |
| (...skipping 18 matching lines...) Expand all Loading... |
| 73 | 59 |
| 74 void NavigateToURL(int tab_id, const std::string& url, bool* success); | 60 void NavigateToURL(int tab_id, const std::string& url, bool* success); |
| 75 void GoForward(int tab_id, bool* success); | 61 void GoForward(int tab_id, bool* success); |
| 76 void GoBack(int tab_id, bool* success); | 62 void GoBack(int tab_id, bool* success); |
| 77 void Reload(int tab_id, bool* success); | 63 void Reload(int tab_id, bool* success); |
| 78 void GetURL(int tab_id, std::string* url, bool* success); | 64 void GetURL(int tab_id, std::string* url, bool* success); |
| 79 void GetGURL(int tab_id, GURL* gurl, bool* success); | 65 void GetGURL(int tab_id, GURL* gurl, bool* success); |
| 80 void GetTabTitle(int tab_id, std::string* tab_title, bool* success); | 66 void GetTabTitle(int tab_id, std::string* tab_title, bool* success); |
| 81 void GetCookies( | 67 void GetCookies( |
| 82 int tab_id, const GURL& gurl, std::string* cookies, bool* success); | 68 int tab_id, const GURL& gurl, std::string* cookies, bool* success); |
| 83 void GetCookieByName(int tab_id, | |
| 84 const GURL& gurl, | |
| 85 const std::string& cookie_name, | |
| 86 std::string* cookie, | |
| 87 bool* success); | |
| 88 void DeleteCookie(int tab_id, | 69 void DeleteCookie(int tab_id, |
| 89 const GURL& gurl, | 70 const GURL& gurl, |
| 90 const std::string& cookie_name, | 71 const std::string& cookie_name, |
| 91 bool* success); | 72 bool* success); |
| 92 void SetCookie( | 73 void SetCookie( |
| 93 int tab_id, const GURL& gurl, const std::string& cookie, bool* success); | 74 int tab_id, const GURL& gurl, const std::string& cookie, bool* success); |
| 94 void MouseMove(int tab_id, const gfx::Point& p, bool* success); | 75 void MouseMove(int tab_id, const gfx::Point& p, bool* success); |
| 95 void MouseClick(int tab_id, const gfx::Point& p, int flag, bool* success); | 76 void MouseClick(int tab_id, |
| 77 const gfx::Point& p, |
| 78 automation::MouseButton button, |
| 79 bool* success); |
| 96 void MouseDrag(int tab_id, | 80 void MouseDrag(int tab_id, |
| 97 const gfx::Point& start, | 81 const gfx::Point& start, |
| 98 const gfx::Point& end, | 82 const gfx::Point& end, |
| 99 bool* success); | 83 bool* success); |
| 100 | 84 |
| 101 // Get persistent IDs for all the tabs currently open. These IDs can be used | 85 // Get persistent IDs for all the tabs currently open. These IDs can be used |
| 102 // to identify the tab as long as the tab exists. | 86 // to identify the tab as long as the tab exists. |
| 103 void GetTabIds(std::vector<int>* tab_ids, bool* success); | 87 void GetTabIds(std::vector<int>* tab_ids, bool* success); |
| 104 | 88 |
| 105 // Check if the given tab exists currently. | 89 // Check if the given tab exists currently. |
| 106 void DoesTabExist(int tab_id, bool* does_exist); | 90 void DoesTabExist(int tab_id, bool* does_exist, bool* success); |
| 107 | 91 |
| 108 void CloseTab(int tab_id, bool* success); | 92 void CloseTab(int tab_id, bool* success); |
| 109 | 93 |
| 110 // Gets the version of the runing browser. | 94 // Gets the version of the runing browser. |
| 111 void GetVersion(std::string* version); | 95 void GetVersion(std::string* version); |
| 112 | 96 |
| 113 // Waits for all tabs to stop loading. | 97 // Waits for all tabs to stop loading. |
| 114 void WaitForAllTabsToStopLoading(bool* success); | 98 void WaitForAllTabsToStopLoading(bool* success); |
| 115 | 99 |
| 116 private: | 100 private: |
| 117 typedef std::map<int, scoped_refptr<TabProxy> > TabIdMap; | |
| 118 | |
| 119 TabProxy* GetTabById(int tab_id); | |
| 120 AutomationProxy* automation() const; | 101 AutomationProxy* automation() const; |
| 102 bool GetIndicesForTab(int tab_id, int* browser_index, int* tab_index); |
| 121 | 103 |
| 122 scoped_ptr<ProxyLauncher> launcher_; | 104 scoped_ptr<ProxyLauncher> launcher_; |
| 123 // Map from tab ID to |TabProxy|. The tab ID is simply the |AutomationHandle| | |
| 124 // for the proxy. | |
| 125 TabIdMap tab_id_map_; | |
| 126 | |
| 127 bool SendJSONRequest( | |
| 128 int tab_id, const DictionaryValue& dict, std::string* reply); | |
| 129 | |
| 130 bool GetIndicesForTab(int tab_id, int* browser_index, int* tab_index); | |
| 131 | 105 |
| 132 DISALLOW_COPY_AND_ASSIGN(Automation); | 106 DISALLOW_COPY_AND_ASSIGN(Automation); |
| 133 }; | 107 }; |
| 134 | 108 |
| 135 } // namespace webdriver | 109 } // namespace webdriver |
| 136 | 110 |
| 137 DISABLE_RUNNABLE_METHOD_REFCOUNT(webdriver::Automation); | 111 DISABLE_RUNNABLE_METHOD_REFCOUNT(webdriver::Automation); |
| 138 | 112 |
| 139 #endif // CHROME_TEST_WEBDRIVER_AUTOMATION_H_ | 113 #endif // CHROME_TEST_WEBDRIVER_AUTOMATION_H_ |
| OLD | NEW |