OLD | NEW |
| (Empty) |
1 // Copyright 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 // Swig Interface for PyAuto. | |
6 // PyAuto makes the Automation Proxy interface available in Python | |
7 // | |
8 // Running swig as: | |
9 // swig -python -c++ chrome/test/pyautolib/pyautolib.i | |
10 // would generate pyautolib.py, pyautolib_wrap.cxx | |
11 | |
12 // When adding a new class or method, make sure you specify the doc string using | |
13 // %feature("docstring", "doc string goes here") NODENAME; | |
14 // and attach it to your node (class or method). This doc string will be | |
15 // copied over in the generated python classes/methods. | |
16 | |
17 %module(docstring="Python interface to Automation Proxy.") pyautolib | |
18 %feature("autodoc", "1"); | |
19 | |
20 %include <cpointer.i> | |
21 %include <std_string.i> | |
22 %include <std_wstring.i> | |
23 | |
24 %include "chrome/test/pyautolib/argc_argv.i" | |
25 | |
26 // NOTE: All files included in this file should also be listed under | |
27 // pyautolib_sources in chrome_tests.gypi. | |
28 | |
29 // Headers that can be swigged directly. | |
30 %include "chrome/app/chrome_command_ids.h" | |
31 %include "chrome/app/chrome_dll_resource.h" | |
32 %include "chrome/common/automation_constants.h" | |
33 %include "chrome/common/pref_names.h" | |
34 %include "content/public/common/page_type.h" | |
35 %include "content/public/common/security_style.h" | |
36 // Must come before cert_status_flags.h | |
37 %include "net/base/net_export.h" | |
38 %ignore net::MapNetErrorToCertStatus(int); | |
39 %include "net/cert/cert_status_flags.h" | |
40 | |
41 %{ | |
42 #include "chrome/common/automation_constants.h" | |
43 #include "chrome/common/pref_names.h" | |
44 #include "chrome/test/automation/browser_proxy.h" | |
45 #include "chrome/test/automation/tab_proxy.h" | |
46 #include "chrome/test/pyautolib/pyautolib.h" | |
47 #include "content/public/common/security_style.h" | |
48 #include "net/test/spawned_test_server/spawned_test_server.h" | |
49 %} | |
50 | |
51 // Handle type uint32 conversions as int | |
52 %apply int { uint32 }; | |
53 | |
54 // scoped_refptr | |
55 template <class T> | |
56 class scoped_refptr { | |
57 public: | |
58 scoped_refptr(); | |
59 scoped_refptr(T* p); | |
60 ~scoped_refptr(); | |
61 | |
62 T* get() const; | |
63 T* operator->() const; | |
64 }; | |
65 | |
66 // GURL | |
67 %feature("docstring", "Represent a URL. Call spec() to get the string.") GURL; | |
68 class GURL { | |
69 public: | |
70 GURL(); | |
71 explicit GURL(const std::string& url_string); | |
72 %feature("docstring", "Get the string representation.") spec; | |
73 const std::string& spec() const; | |
74 }; | |
75 | |
76 // FilePath | |
77 namespace base { | |
78 %feature("docstring", | |
79 "Represent a file path. Call value() to get the string.") FilePath; | |
80 class FilePath { | |
81 public: | |
82 %feature("docstring", "Get the string representation.") value; | |
83 #ifdef SWIGWIN | |
84 typedef std::wstring StringType; | |
85 #else | |
86 typedef std::string StringType; | |
87 #endif // SWIGWIN | |
88 const StringType& value() const; | |
89 %feature("docstring", "Construct an empty FilePath from a string.") | |
90 FilePath; | |
91 FilePath(); | |
92 explicit FilePath(const StringType& path); | |
93 }; | |
94 } // namespace base | |
95 | |
96 class PyUITestSuiteBase { | |
97 public: | |
98 %feature("docstring", "Create the suite.") PyUITestSuiteBase; | |
99 PyUITestSuiteBase(int argc, char** argv); | |
100 virtual ~PyUITestSuiteBase(); | |
101 | |
102 %feature("docstring", "Initialize from the path to browser dir.") | |
103 InitializeWithPath; | |
104 void InitializeWithPath(const base::FilePath& browser_dir); | |
105 %feature("docstring", "Set chrome source root path, used in some tests") | |
106 SetCrSourceRoot; | |
107 void SetCrSourceRoot(const base::FilePath& path); | |
108 }; | |
109 | |
110 class PyUITestBase { | |
111 public: | |
112 PyUITestBase(bool clear_profile, std::wstring homepage); | |
113 | |
114 %feature("docstring", "Initialize the entire setup. Should be called " | |
115 "before launching the browser. For internal use.") Initialize; | |
116 void Initialize(const base::FilePath& browser_dir); | |
117 | |
118 %feature("docstring", "Appends a command-line switch (with associated value " | |
119 "if given) to the list of switches to be passed to the browser " | |
120 "upon launch. Should be called before launching the browser. " | |
121 "For internal use only.") | |
122 AppendBrowserLaunchSwitch; | |
123 void AppendBrowserLaunchSwitch(const char* name); | |
124 void AppendBrowserLaunchSwitch(const char* name, const char* value); | |
125 | |
126 %feature("docstring", "Begins tracing with the given category_patterns " | |
127 "string.") | |
128 BeginTracing; | |
129 bool BeginTracing(const std::string& category_patterns); | |
130 | |
131 %feature("docstring", "Ends tracing and returns the collected events.") | |
132 EndTracing; | |
133 std::string EndTracing(); | |
134 | |
135 void UseNamedChannelID(const std::string& named_channel_id); | |
136 | |
137 %feature("docstring", | |
138 "Fires up the browser and opens a window.") SetUp; | |
139 virtual void SetUp(); | |
140 %feature("docstring", | |
141 "Closes all windows and destroys the browser.") TearDown; | |
142 virtual void TearDown(); | |
143 | |
144 %feature("docstring", "Launches the browser and IPC testing server.") | |
145 LaunchBrowserAndServer; | |
146 void LaunchBrowserAndServer(); | |
147 %feature("docstring", "Closes the browser and IPC testing server.") | |
148 CloseBrowserAndServer; | |
149 void CloseBrowserAndServer(); | |
150 | |
151 %feature("docstring", "Determine if the profile is set to be cleared on " | |
152 "next startup.") get_clear_profile; | |
153 bool get_clear_profile() const; | |
154 %feature("docstring", "If False, sets the flag so that the profile is " | |
155 "not cleared on next startup. Useful for persisting profile " | |
156 "across restarts. By default the state is True, to clear profile.") | |
157 set_clear_profile; | |
158 void set_clear_profile(bool clear_profile); | |
159 | |
160 %feature("docstring", "Get the path to profile directory.") user_data_dir; | |
161 base::FilePath user_data_dir() const; | |
162 | |
163 // Meta-method | |
164 %feature("docstring", "Send a sync JSON request to Chrome. " | |
165 "Returns a JSON dict as a response. " | |
166 "Given timeout in milliseconds." | |
167 "Internal method.") | |
168 _SendJSONRequest; | |
169 std::string _SendJSONRequest(int window_index, | |
170 const std::string& request, | |
171 int timeout); | |
172 | |
173 %feature("docstring", | |
174 "Returns empty string if there were no unexpected Chrome asserts or " | |
175 "crashes, a string describing the failures otherwise. As a side " | |
176 "effect, it will fail with EXPECT_EQ macros if this code runs " | |
177 "within a gtest harness.") GetErrorsAndCrashes; | |
178 std::string CheckErrorsAndCrashes() const; | |
179 }; | |
180 | |
181 namespace net { | |
182 // SpawnedTestServer | |
183 %feature("docstring", | |
184 "SpawnedTestServer. Serves files in data dir over a local http server") | |
185 SpawnedTestServer; | |
186 class SpawnedTestServer { | |
187 public: | |
188 enum Type { | |
189 TYPE_FTP, | |
190 TYPE_HTTP, | |
191 TYPE_HTTPS, | |
192 }; | |
193 | |
194 // Initialize a SpawnedTestServer listening on the specified host | |
195 // (IP or hostname). | |
196 SpawnedTestServer(Type type, const std::string& host, | |
197 const base::FilePath& document_root); | |
198 // Initialize a SpawnedTestServer with a specific set of SSLOptions. | |
199 SpawnedTestServer(Type type, | |
200 const SSLOptions& ssl_options, | |
201 const base::FilePath& document_root); | |
202 | |
203 %feature("docstring", "Start SpawnedTestServer over an ephemeral port") Start; | |
204 bool Start(); | |
205 | |
206 %feature("docstring", "Stop SpawnedTestServer") Stop; | |
207 bool Stop(); | |
208 | |
209 %feature("docstring", "Get FilePath to the document root") document_root; | |
210 const base::FilePath& document_root() const; | |
211 | |
212 std::string GetScheme() const; | |
213 | |
214 %feature("docstring", "Get URL for a file path") GetURL; | |
215 GURL GetURL(const std::string& path) const; | |
216 }; | |
217 | |
218 %extend SpawnedTestServer { | |
219 %feature("docstring", "Get port number.") GetPort; | |
220 int GetPort() const { | |
221 int val = 0; | |
222 $self->server_data().GetInteger("port", &val); | |
223 return val; | |
224 } | |
225 }; | |
226 | |
227 } | |
228 // SSLOptions | |
229 %feature("docstring", | |
230 "SSLOptions. Sets one of three types of a cert") | |
231 SSLOptions; | |
232 struct SSLOptions { | |
233 enum ServerCertificate { | |
234 CERT_OK, | |
235 CERT_MISMATCHED_NAME, | |
236 CERT_EXPIRED, | |
237 }; | |
238 | |
239 // Initialize a new SSLOptions that will use the specified certificate. | |
240 explicit SSLOptions(ServerCertificate cert); | |
241 }; | |
242 | |
243 %{ | |
244 typedef net::SpawnedTestServer::SSLOptions SSLOptions; | |
245 %} | |
246 | |
247 %pointer_class(int, int_ptr); | |
248 %pointer_class(uint32, uint32_ptr); | |
OLD | NEW |