| 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 |