selenium-webdriver 2.48.2 → 2.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/CHANGES.md +57 -0
  2. package/NOTICE +1 -1
  3. package/README.md +56 -6
  4. package/builder.js +375 -358
  5. package/chrome.js +549 -586
  6. package/edge.js +378 -0
  7. package/error.js +597 -5
  8. package/example/google_search_generator.js +2 -4
  9. package/example/logging.js +6 -2
  10. package/executors.js +11 -27
  11. package/firefox/binary.js +79 -87
  12. package/firefox/extension.js +10 -18
  13. package/firefox/index.js +173 -173
  14. package/firefox/profile.js +220 -240
  15. package/http/index.js +396 -79
  16. package/http/util.js +35 -35
  17. package/ie.js +288 -309
  18. package/index.js +34 -125
  19. package/io/exec.js +58 -39
  20. package/io/index.js +54 -48
  21. package/lib/actions.js +594 -0
  22. package/lib/by.js +276 -0
  23. package/lib/capabilities.js +404 -0
  24. package/lib/{webdriver/command.js → command.js} +88 -72
  25. package/lib/{webdriver/button.js → devmode.js} +13 -8
  26. package/lib/events.js +210 -0
  27. package/lib/firefox/amd64/libnoblur64.so +0 -0
  28. package/lib/firefox/i386/libnoblur.so +0 -0
  29. package/lib/firefox/webdriver.json +5 -1
  30. package/lib/firefox/webdriver.xpi +0 -0
  31. package/lib/{webdriver/key.js → input.js} +82 -2
  32. package/lib/logging.js +668 -0
  33. package/lib/{webdriver/promise.js → promise.js} +688 -644
  34. package/lib/session.js +79 -0
  35. package/lib/{webdriver/serializable.js → symbols.js} +11 -16
  36. package/lib/test/build.js +4 -4
  37. package/lib/test/data/click_tests/html5_submit_buttons.html +2 -1
  38. package/lib/test/data/click_tests/overlapping_elements.html +15 -4
  39. package/lib/test/data/click_tests/partially_overlapping_elements.html +124 -0
  40. package/lib/test/data/click_tests/wrapped_overlapping_elements.html +13 -0
  41. package/lib/test/data/readOnlyPage.html +1 -1
  42. package/lib/test/data/selectPage.html +18 -2
  43. package/lib/test/fileserver.js +3 -4
  44. package/lib/test/index.js +7 -3
  45. package/lib/test/resources.js +1 -1
  46. package/lib/until.js +428 -0
  47. package/lib/webdriver.js +2351 -0
  48. package/net/portprober.js +15 -11
  49. package/opera.js +295 -314
  50. package/package.json +6 -5
  51. package/phantomjs.js +135 -140
  52. package/proxy.js +6 -4
  53. package/remote/index.js +229 -221
  54. package/safari.js +319 -310
  55. package/test/chrome/options_test.js +11 -9
  56. package/test/element_finding_test.js +51 -13
  57. package/test/error_test.js +163 -0
  58. package/test/execute_script_test.js +1 -1
  59. package/test/http/http_test.js +317 -55
  60. package/test/http/util_test.js +25 -23
  61. package/test/io_test.js +6 -1
  62. package/test/lib/by_test.js +127 -0
  63. package/test/lib/capabilities_test.js +84 -0
  64. package/test/lib/events_test.js +177 -0
  65. package/test/lib/logging_test.js +272 -0
  66. package/test/{promise_aplus_test.js → lib/promise_aplus_test.js} +4 -13
  67. package/test/lib/promise_error_test.js +808 -0
  68. package/test/lib/promise_flow_test.js +2282 -0
  69. package/test/lib/promise_generator_test.js +308 -0
  70. package/test/lib/promise_test.js +996 -0
  71. package/test/lib/testutil.js +90 -0
  72. package/test/lib/until_test.js +436 -0
  73. package/test/lib/webdriver_test.js +2207 -0
  74. package/test/page_loading_test.js +7 -9
  75. package/test/stale_element_test.js +2 -2
  76. package/test/testing/assert_test.js +374 -0
  77. package/test/testing/index_test.js +9 -11
  78. package/testing/assert.js +334 -17
  79. package/testing/index.js +10 -0
  80. package/_base.js +0 -200
  81. package/docs/Changes.html +0 -356
  82. package/docs/class_bot_Error.html +0 -15
  83. package/docs/class_webdriver_ActionSequence.html +0 -115
  84. package/docs/class_webdriver_Alert.html +0 -24
  85. package/docs/class_webdriver_AlertPromise.html +0 -92
  86. package/docs/class_webdriver_Capabilities.html +0 -60
  87. package/docs/class_webdriver_Command.html +0 -15
  88. package/docs/class_webdriver_EventEmitter.html +0 -35
  89. package/docs/class_webdriver_FileDetector.html +0 -21
  90. package/docs/class_webdriver_Locator.html +0 -12
  91. package/docs/class_webdriver_Serializable.html +0 -9
  92. package/docs/class_webdriver_Session.html +0 -13
  93. package/docs/class_webdriver_TouchSequence.html +0 -49
  94. package/docs/class_webdriver_UnhandledAlertError.html +0 -18
  95. package/docs/class_webdriver_WebDriver.html +0 -313
  96. package/docs/class_webdriver_WebDriver_Logs.html +0 -15
  97. package/docs/class_webdriver_WebDriver_Navigation.html +0 -16
  98. package/docs/class_webdriver_WebDriver_Options.html +0 -41
  99. package/docs/class_webdriver_WebDriver_TargetLocator.html +0 -38
  100. package/docs/class_webdriver_WebDriver_Timeouts.html +0 -29
  101. package/docs/class_webdriver_WebDriver_Window.html +0 -27
  102. package/docs/class_webdriver_WebElement.html +0 -223
  103. package/docs/class_webdriver_WebElementPromise.html +0 -274
  104. package/docs/class_webdriver_http_Executor.html +0 -22
  105. package/docs/class_webdriver_http_Request.html +0 -12
  106. package/docs/class_webdriver_http_Response.html +0 -13
  107. package/docs/class_webdriver_logging_Entry.html +0 -15
  108. package/docs/class_webdriver_logging_Level.html +0 -55
  109. package/docs/class_webdriver_logging_LogRecord.html +0 -45
  110. package/docs/class_webdriver_logging_Logger.html +0 -119
  111. package/docs/class_webdriver_logging_Preferences.html +0 -8
  112. package/docs/class_webdriver_promise_CancellationError.html +0 -17
  113. package/docs/class_webdriver_promise_ControlFlow.html +0 -153
  114. package/docs/class_webdriver_promise_Deferred.html +0 -84
  115. package/docs/class_webdriver_promise_MultipleUnhandledRejectionError.html +0 -14
  116. package/docs/class_webdriver_promise_Promise.html +0 -75
  117. package/docs/class_webdriver_stacktrace_Frame.html +0 -20
  118. package/docs/class_webdriver_stacktrace_Snapshot.html +0 -6
  119. package/docs/class_webdriver_testing_Assertion.html +0 -99
  120. package/docs/class_webdriver_testing_Assertion_DelegatingMatcher_.html +0 -13
  121. package/docs/class_webdriver_testing_ContainsMatcher.html +0 -11
  122. package/docs/class_webdriver_testing_NegatedAssertion.html +0 -97
  123. package/docs/class_webdriver_until_Condition.html +0 -7
  124. package/docs/dossier.css +0 -1
  125. package/docs/dossier.js +0 -86
  126. package/docs/enum_bot_ErrorCode.html +0 -3
  127. package/docs/enum_bot_Error_State.html +0 -2
  128. package/docs/enum_webdriver_Browser.html +0 -2
  129. package/docs/enum_webdriver_Button.html +0 -2
  130. package/docs/enum_webdriver_Capability.html +0 -33
  131. package/docs/enum_webdriver_CommandName.html +0 -3
  132. package/docs/enum_webdriver_Key.html +0 -12
  133. package/docs/enum_webdriver_logging_Type.html +0 -6
  134. package/docs/enum_webdriver_promise_ControlFlow_EventType.html +0 -9
  135. package/docs/index.html +0 -125
  136. package/docs/interface_webdriver_CommandExecutor.html +0 -9
  137. package/docs/interface_webdriver_http_Client.html +0 -10
  138. package/docs/interface_webdriver_promise_Thenable.html +0 -77
  139. package/docs/module_selenium-webdriver.html +0 -23
  140. package/docs/module_selenium-webdriver__base.html +0 -23
  141. package/docs/module_selenium-webdriver__base_class_Context.html +0 -5
  142. package/docs/module_selenium-webdriver_builder.html +0 -2
  143. package/docs/module_selenium-webdriver_builder_class_Builder.html +0 -138
  144. package/docs/module_selenium-webdriver_chrome.html +0 -90
  145. package/docs/module_selenium-webdriver_chrome_class_Driver.html +0 -280
  146. package/docs/module_selenium-webdriver_chrome_class_Options.html +0 -127
  147. package/docs/module_selenium-webdriver_chrome_class_ServiceBuilder.html +0 -46
  148. package/docs/module_selenium-webdriver_class_ActionSequence.html +0 -115
  149. package/docs/module_selenium-webdriver_class_Builder.html +0 -138
  150. package/docs/module_selenium-webdriver_class_Capabilities.html +0 -60
  151. package/docs/module_selenium-webdriver_class_Command.html +0 -15
  152. package/docs/module_selenium-webdriver_class_EventEmitter.html +0 -35
  153. package/docs/module_selenium-webdriver_class_FileDetector.html +0 -21
  154. package/docs/module_selenium-webdriver_class_Serializable.html +0 -9
  155. package/docs/module_selenium-webdriver_class_Session.html +0 -13
  156. package/docs/module_selenium-webdriver_class_WebDriver.html +0 -313
  157. package/docs/module_selenium-webdriver_class_WebElement.html +0 -223
  158. package/docs/module_selenium-webdriver_class_WebElementPromise.html +0 -274
  159. package/docs/module_selenium-webdriver_enum_Browser.html +0 -2
  160. package/docs/module_selenium-webdriver_enum_Button.html +0 -2
  161. package/docs/module_selenium-webdriver_enum_Capability.html +0 -33
  162. package/docs/module_selenium-webdriver_enum_CommandName.html +0 -3
  163. package/docs/module_selenium-webdriver_enum_Key.html +0 -12
  164. package/docs/module_selenium-webdriver_error.html +0 -4
  165. package/docs/module_selenium-webdriver_error_class_Error.html +0 -15
  166. package/docs/module_selenium-webdriver_error_enum_ErrorCode.html +0 -3
  167. package/docs/module_selenium-webdriver_executors.html +0 -10
  168. package/docs/module_selenium-webdriver_executors_class_DeferredExecutor.html +0 -12
  169. package/docs/module_selenium-webdriver_firefox.html +0 -68
  170. package/docs/module_selenium-webdriver_firefox_binary.html +0 -5
  171. package/docs/module_selenium-webdriver_firefox_binary_class_Binary.html +0 -20
  172. package/docs/module_selenium-webdriver_firefox_class_Binary.html +0 -20
  173. package/docs/module_selenium-webdriver_firefox_class_Driver.html +0 -276
  174. package/docs/module_selenium-webdriver_firefox_class_Options.html +0 -19
  175. package/docs/module_selenium-webdriver_firefox_class_Profile.html +0 -50
  176. package/docs/module_selenium-webdriver_firefox_extension.html +0 -8
  177. package/docs/module_selenium-webdriver_firefox_profile.html +0 -13
  178. package/docs/module_selenium-webdriver_firefox_profile_class_Profile.html +0 -50
  179. package/docs/module_selenium-webdriver_http.html +0 -9
  180. package/docs/module_selenium-webdriver_http_class_Executor.html +0 -22
  181. package/docs/module_selenium-webdriver_http_class_HttpClient.html +0 -16
  182. package/docs/module_selenium-webdriver_http_class_Request.html +0 -12
  183. package/docs/module_selenium-webdriver_http_class_Response.html +0 -13
  184. package/docs/module_selenium-webdriver_http_util.html +0 -17
  185. package/docs/module_selenium-webdriver_ie.html +0 -11
  186. package/docs/module_selenium-webdriver_ie_class_Driver.html +0 -274
  187. package/docs/module_selenium-webdriver_ie_class_Options.html +0 -89
  188. package/docs/module_selenium-webdriver_ie_enum_Level.html +0 -1
  189. package/docs/module_selenium-webdriver_io.html +0 -37
  190. package/docs/module_selenium-webdriver_io_exec.html +0 -6
  191. package/docs/module_selenium-webdriver_namespace_By.html +0 -56
  192. package/docs/module_selenium-webdriver_namespace_error.html +0 -4
  193. package/docs/module_selenium-webdriver_namespace_logging.html +0 -18
  194. package/docs/module_selenium-webdriver_namespace_promise.html +0 -163
  195. package/docs/module_selenium-webdriver_namespace_stacktrace.html +0 -17
  196. package/docs/module_selenium-webdriver_namespace_until.html +0 -82
  197. package/docs/module_selenium-webdriver_net.html +0 -7
  198. package/docs/module_selenium-webdriver_net_portprober.html +0 -12
  199. package/docs/module_selenium-webdriver_opera.html +0 -62
  200. package/docs/module_selenium-webdriver_opera_class_Driver.html +0 -276
  201. package/docs/module_selenium-webdriver_opera_class_Options.html +0 -44
  202. package/docs/module_selenium-webdriver_opera_class_ServiceBuilder.html +0 -35
  203. package/docs/module_selenium-webdriver_phantomjs.html +0 -2
  204. package/docs/module_selenium-webdriver_phantomjs_class_Driver.html +0 -299
  205. package/docs/module_selenium-webdriver_proxy.html +0 -28
  206. package/docs/module_selenium-webdriver_remote.html +0 -8
  207. package/docs/module_selenium-webdriver_remote_class_DriverService.html +0 -32
  208. package/docs/module_selenium-webdriver_remote_class_FileDetector.html +0 -22
  209. package/docs/module_selenium-webdriver_remote_class_SeleniumServer.html +0 -41
  210. package/docs/module_selenium-webdriver_safari.html +0 -9
  211. package/docs/module_selenium-webdriver_safari_class_Driver.html +0 -279
  212. package/docs/module_selenium-webdriver_safari_class_Options.html +0 -23
  213. package/docs/module_selenium-webdriver_testing.html +0 -74
  214. package/docs/module_selenium-webdriver_testing_assert.html +0 -9
  215. package/docs/namespace_bot.html +0 -4
  216. package/docs/namespace_bot_json.html +0 -20
  217. package/docs/namespace_bot_response.html +0 -18
  218. package/docs/namespace_bot_userAgent.html +0 -33
  219. package/docs/namespace_webdriver.html +0 -30
  220. package/docs/namespace_webdriver_By.html +0 -56
  221. package/docs/namespace_webdriver_http.html +0 -6
  222. package/docs/namespace_webdriver_logging.html +0 -70
  223. package/docs/namespace_webdriver_promise.html +0 -688
  224. package/docs/namespace_webdriver_stacktrace.html +0 -17
  225. package/docs/namespace_webdriver_testing.html +0 -7
  226. package/docs/namespace_webdriver_testing_assert.html +0 -9
  227. package/docs/namespace_webdriver_testing_asserts.html +0 -18
  228. package/docs/namespace_webdriver_until.html +0 -82
  229. package/docs/source/_base.js.src.html +0 -1
  230. package/docs/source/builder.js.src.html +0 -1
  231. package/docs/source/chrome.js.src.html +0 -1
  232. package/docs/source/error.js.src.html +0 -1
  233. package/docs/source/executors.js.src.html +0 -1
  234. package/docs/source/firefox/binary.js.src.html +0 -1
  235. package/docs/source/firefox/extension.js.src.html +0 -1
  236. package/docs/source/firefox/index.js.src.html +0 -1
  237. package/docs/source/firefox/profile.js.src.html +0 -1
  238. package/docs/source/http/index.js.src.html +0 -1
  239. package/docs/source/http/util.js.src.html +0 -1
  240. package/docs/source/ie.js.src.html +0 -1
  241. package/docs/source/index.js.src.html +0 -1
  242. package/docs/source/io/exec.js.src.html +0 -1
  243. package/docs/source/io/index.js.src.html +0 -1
  244. package/docs/source/lib/atoms/error.js.src.html +0 -1
  245. package/docs/source/lib/atoms/json.js.src.html +0 -1
  246. package/docs/source/lib/atoms/response.js.src.html +0 -1
  247. package/docs/source/lib/atoms/userAgent.js.src.html +0 -1
  248. package/docs/source/lib/goog/array/array.js.src.html +0 -1
  249. package/docs/source/lib/goog/asserts/asserts.js.src.html +0 -1
  250. package/docs/source/lib/goog/async/freelist.js.src.html +0 -1
  251. package/docs/source/lib/goog/async/nexttick.js.src.html +0 -1
  252. package/docs/source/lib/goog/async/run.js.src.html +0 -1
  253. package/docs/source/lib/goog/async/workqueue.js.src.html +0 -1
  254. package/docs/source/lib/goog/base.js.src.html +0 -1
  255. package/docs/source/lib/goog/debug/debug.js.src.html +0 -1
  256. package/docs/source/lib/goog/debug/entrypointregistry.js.src.html +0 -1
  257. package/docs/source/lib/goog/debug/error.js.src.html +0 -1
  258. package/docs/source/lib/goog/debug/logbuffer.js.src.html +0 -1
  259. package/docs/source/lib/goog/debug/logger.js.src.html +0 -1
  260. package/docs/source/lib/goog/debug/logrecord.js.src.html +0 -1
  261. package/docs/source/lib/goog/deps.js.src.html +0 -1
  262. package/docs/source/lib/goog/disposable/disposable.js.src.html +0 -1
  263. package/docs/source/lib/goog/disposable/idisposable.js.src.html +0 -1
  264. package/docs/source/lib/goog/dom/browserfeature.js.src.html +0 -1
  265. package/docs/source/lib/goog/dom/dom.js.src.html +0 -1
  266. package/docs/source/lib/goog/dom/nodetype.js.src.html +0 -1
  267. package/docs/source/lib/goog/dom/safe.js.src.html +0 -1
  268. package/docs/source/lib/goog/dom/tagname.js.src.html +0 -1
  269. package/docs/source/lib/goog/dom/tags.js.src.html +0 -1
  270. package/docs/source/lib/goog/dom/vendor.js.src.html +0 -1
  271. package/docs/source/lib/goog/events/browserevent.js.src.html +0 -1
  272. package/docs/source/lib/goog/events/browserfeature.js.src.html +0 -1
  273. package/docs/source/lib/goog/events/event.js.src.html +0 -1
  274. package/docs/source/lib/goog/events/eventid.js.src.html +0 -1
  275. package/docs/source/lib/goog/events/events.js.src.html +0 -1
  276. package/docs/source/lib/goog/events/eventtarget.js.src.html +0 -1
  277. package/docs/source/lib/goog/events/eventtype.js.src.html +0 -1
  278. package/docs/source/lib/goog/events/keycodes.js.src.html +0 -1
  279. package/docs/source/lib/goog/events/listenable.js.src.html +0 -1
  280. package/docs/source/lib/goog/events/listener.js.src.html +0 -1
  281. package/docs/source/lib/goog/events/listenermap.js.src.html +0 -1
  282. package/docs/source/lib/goog/fs/url.js.src.html +0 -1
  283. package/docs/source/lib/goog/functions/functions.js.src.html +0 -1
  284. package/docs/source/lib/goog/html/safehtml.js.src.html +0 -1
  285. package/docs/source/lib/goog/html/safescript.js.src.html +0 -1
  286. package/docs/source/lib/goog/html/safestyle.js.src.html +0 -1
  287. package/docs/source/lib/goog/html/safestylesheet.js.src.html +0 -1
  288. package/docs/source/lib/goog/html/safeurl.js.src.html +0 -1
  289. package/docs/source/lib/goog/html/trustedresourceurl.js.src.html +0 -1
  290. package/docs/source/lib/goog/html/uncheckedconversions.js.src.html +0 -1
  291. package/docs/source/lib/goog/i18n/bidi.js.src.html +0 -1
  292. package/docs/source/lib/goog/iter/iter.js.src.html +0 -1
  293. package/docs/source/lib/goog/json/json.js.src.html +0 -1
  294. package/docs/source/lib/goog/labs/testing/assertthat.js.src.html +0 -1
  295. package/docs/source/lib/goog/labs/testing/logicmatcher.js.src.html +0 -1
  296. package/docs/source/lib/goog/labs/testing/matcher.js.src.html +0 -1
  297. package/docs/source/lib/goog/labs/testing/numbermatcher.js.src.html +0 -1
  298. package/docs/source/lib/goog/labs/testing/objectmatcher.js.src.html +0 -1
  299. package/docs/source/lib/goog/labs/testing/stringmatcher.js.src.html +0 -1
  300. package/docs/source/lib/goog/labs/useragent/browser.js.src.html +0 -1
  301. package/docs/source/lib/goog/labs/useragent/engine.js.src.html +0 -1
  302. package/docs/source/lib/goog/labs/useragent/platform.js.src.html +0 -1
  303. package/docs/source/lib/goog/labs/useragent/util.js.src.html +0 -1
  304. package/docs/source/lib/goog/log/log.js.src.html +0 -1
  305. package/docs/source/lib/goog/math/box.js.src.html +0 -1
  306. package/docs/source/lib/goog/math/coordinate.js.src.html +0 -1
  307. package/docs/source/lib/goog/math/math.js.src.html +0 -1
  308. package/docs/source/lib/goog/math/rect.js.src.html +0 -1
  309. package/docs/source/lib/goog/math/size.js.src.html +0 -1
  310. package/docs/source/lib/goog/net/wrapperxmlhttpfactory.js.src.html +0 -1
  311. package/docs/source/lib/goog/net/xhrlike.js.src.html +0 -1
  312. package/docs/source/lib/goog/net/xmlhttp.js.src.html +0 -1
  313. package/docs/source/lib/goog/net/xmlhttpfactory.js.src.html +0 -1
  314. package/docs/source/lib/goog/object/object.js.src.html +0 -1
  315. package/docs/source/lib/goog/promise/promise.js.src.html +0 -1
  316. package/docs/source/lib/goog/promise/resolver.js.src.html +0 -1
  317. package/docs/source/lib/goog/promise/thenable.js.src.html +0 -1
  318. package/docs/source/lib/goog/reflect/reflect.js.src.html +0 -1
  319. package/docs/source/lib/goog/string/const.js.src.html +0 -1
  320. package/docs/source/lib/goog/string/string.js.src.html +0 -1
  321. package/docs/source/lib/goog/string/typedstring.js.src.html +0 -1
  322. package/docs/source/lib/goog/structs/collection.js.src.html +0 -1
  323. package/docs/source/lib/goog/structs/map.js.src.html +0 -1
  324. package/docs/source/lib/goog/structs/set.js.src.html +0 -1
  325. package/docs/source/lib/goog/structs/structs.js.src.html +0 -1
  326. package/docs/source/lib/goog/style/style.js.src.html +0 -1
  327. package/docs/source/lib/goog/testing/asserts.js.src.html +0 -1
  328. package/docs/source/lib/goog/testing/events/events.js.src.html +0 -1
  329. package/docs/source/lib/goog/testing/functionmock.js.src.html +0 -1
  330. package/docs/source/lib/goog/testing/jsunit.js.src.html +0 -1
  331. package/docs/source/lib/goog/testing/loosemock.js.src.html +0 -1
  332. package/docs/source/lib/goog/testing/mock.js.src.html +0 -1
  333. package/docs/source/lib/goog/testing/mockclock.js.src.html +0 -1
  334. package/docs/source/lib/goog/testing/mockcontrol.js.src.html +0 -1
  335. package/docs/source/lib/goog/testing/mockinterface.js.src.html +0 -1
  336. package/docs/source/lib/goog/testing/mockmatchers.js.src.html +0 -1
  337. package/docs/source/lib/goog/testing/objectpropertystring.js.src.html +0 -1
  338. package/docs/source/lib/goog/testing/propertyreplacer.js.src.html +0 -1
  339. package/docs/source/lib/goog/testing/recordfunction.js.src.html +0 -1
  340. package/docs/source/lib/goog/testing/stacktrace.js.src.html +0 -1
  341. package/docs/source/lib/goog/testing/strictmock.js.src.html +0 -1
  342. package/docs/source/lib/goog/testing/testcase.js.src.html +0 -1
  343. package/docs/source/lib/goog/testing/testrunner.js.src.html +0 -1
  344. package/docs/source/lib/goog/uri/uri.js.src.html +0 -1
  345. package/docs/source/lib/goog/uri/utils.js.src.html +0 -1
  346. package/docs/source/lib/goog/useragent/product.js.src.html +0 -1
  347. package/docs/source/lib/goog/useragent/product_isversion.js.src.html +0 -1
  348. package/docs/source/lib/goog/useragent/useragent.js.src.html +0 -1
  349. package/docs/source/lib/webdriver/actionsequence.js.src.html +0 -1
  350. package/docs/source/lib/webdriver/button.js.src.html +0 -1
  351. package/docs/source/lib/webdriver/capabilities.js.src.html +0 -1
  352. package/docs/source/lib/webdriver/command.js.src.html +0 -1
  353. package/docs/source/lib/webdriver/events.js.src.html +0 -1
  354. package/docs/source/lib/webdriver/http/http.js.src.html +0 -1
  355. package/docs/source/lib/webdriver/key.js.src.html +0 -1
  356. package/docs/source/lib/webdriver/locators.js.src.html +0 -1
  357. package/docs/source/lib/webdriver/logging.js.src.html +0 -1
  358. package/docs/source/lib/webdriver/promise.js.src.html +0 -1
  359. package/docs/source/lib/webdriver/serializable.js.src.html +0 -1
  360. package/docs/source/lib/webdriver/session.js.src.html +0 -1
  361. package/docs/source/lib/webdriver/stacktrace.js.src.html +0 -1
  362. package/docs/source/lib/webdriver/testing/asserts.js.src.html +0 -1
  363. package/docs/source/lib/webdriver/touchsequence.js.src.html +0 -1
  364. package/docs/source/lib/webdriver/until.js.src.html +0 -1
  365. package/docs/source/lib/webdriver/webdriver.js.src.html +0 -1
  366. package/docs/source/net/index.js.src.html +0 -1
  367. package/docs/source/net/portprober.js.src.html +0 -1
  368. package/docs/source/opera.js.src.html +0 -1
  369. package/docs/source/phantomjs.js.src.html +0 -1
  370. package/docs/source/proxy.js.src.html +0 -1
  371. package/docs/source/remote/index.js.src.html +0 -1
  372. package/docs/source/safari.js.src.html +0 -1
  373. package/docs/source/testing/assert.js.src.html +0 -1
  374. package/docs/source/testing/index.js.src.html +0 -1
  375. package/docs/types.js +0 -1
  376. package/lib/atoms/error.js +0 -202
  377. package/lib/atoms/json.js +0 -80
  378. package/lib/atoms/response.js +0 -110
  379. package/lib/atoms/userAgent.js +0 -257
  380. package/lib/goog/LICENSE +0 -176
  381. package/lib/goog/array/array.js +0 -1654
  382. package/lib/goog/asserts/asserts.js +0 -365
  383. package/lib/goog/async/freelist.js +0 -88
  384. package/lib/goog/async/nexttick.js +0 -241
  385. package/lib/goog/async/run.js +0 -133
  386. package/lib/goog/async/workqueue.js +0 -139
  387. package/lib/goog/base.js +0 -2548
  388. package/lib/goog/debug/debug.js +0 -653
  389. package/lib/goog/debug/entrypointregistry.js +0 -158
  390. package/lib/goog/debug/error.js +0 -63
  391. package/lib/goog/debug/logbuffer.js +0 -148
  392. package/lib/goog/debug/logger.js +0 -873
  393. package/lib/goog/debug/logrecord.js +0 -242
  394. package/lib/goog/deps.js +0 -151
  395. package/lib/goog/disposable/disposable.js +0 -307
  396. package/lib/goog/disposable/idisposable.js +0 -45
  397. package/lib/goog/dom/browserfeature.js +0 -72
  398. package/lib/goog/dom/dom.js +0 -2991
  399. package/lib/goog/dom/nodetype.js +0 -48
  400. package/lib/goog/dom/safe.js +0 -347
  401. package/lib/goog/dom/tagname.js +0 -160
  402. package/lib/goog/dom/tags.js +0 -41
  403. package/lib/goog/dom/vendor.js +0 -96
  404. package/lib/goog/events/browserevent.js +0 -400
  405. package/lib/goog/events/browserfeature.js +0 -85
  406. package/lib/goog/events/event.js +0 -143
  407. package/lib/goog/events/eventid.js +0 -47
  408. package/lib/goog/events/events.js +0 -984
  409. package/lib/goog/events/eventtarget.js +0 -394
  410. package/lib/goog/events/eventtype.js +0 -237
  411. package/lib/goog/events/keycodes.js +0 -427
  412. package/lib/goog/events/listenable.js +0 -335
  413. package/lib/goog/events/listener.js +0 -131
  414. package/lib/goog/events/listenermap.js +0 -308
  415. package/lib/goog/fs/url.js +0 -109
  416. package/lib/goog/functions/functions.js +0 -442
  417. package/lib/goog/html/safehtml.js +0 -757
  418. package/lib/goog/html/safescript.js +0 -234
  419. package/lib/goog/html/safestyle.js +0 -442
  420. package/lib/goog/html/safestylesheet.js +0 -276
  421. package/lib/goog/html/safeurl.js +0 -398
  422. package/lib/goog/html/trustedresourceurl.js +0 -224
  423. package/lib/goog/html/uncheckedconversions.js +0 -232
  424. package/lib/goog/i18n/bidi.js +0 -908
  425. package/lib/goog/iter/iter.js +0 -1302
  426. package/lib/goog/json/json.js +0 -363
  427. package/lib/goog/labs/testing/assertthat.js +0 -58
  428. package/lib/goog/labs/testing/logicmatcher.js +0 -212
  429. package/lib/goog/labs/testing/matcher.js +0 -80
  430. package/lib/goog/labs/testing/numbermatcher.js +0 -346
  431. package/lib/goog/labs/testing/objectmatcher.js +0 -317
  432. package/lib/goog/labs/testing/stringmatcher.js +0 -415
  433. package/lib/goog/labs/useragent/browser.js +0 -341
  434. package/lib/goog/labs/useragent/engine.js +0 -160
  435. package/lib/goog/labs/useragent/platform.js +0 -160
  436. package/lib/goog/labs/useragent/util.js +0 -148
  437. package/lib/goog/log/log.js +0 -197
  438. package/lib/goog/math/box.js +0 -398
  439. package/lib/goog/math/coordinate.js +0 -268
  440. package/lib/goog/math/math.js +0 -451
  441. package/lib/goog/math/rect.js +0 -476
  442. package/lib/goog/math/size.js +0 -227
  443. package/lib/goog/net/wrapperxmlhttpfactory.js +0 -71
  444. package/lib/goog/net/xhrlike.js +0 -124
  445. package/lib/goog/net/xmlhttp.js +0 -246
  446. package/lib/goog/net/xmlhttpfactory.js +0 -67
  447. package/lib/goog/object/object.js +0 -686
  448. package/lib/goog/promise/promise.js +0 -1350
  449. package/lib/goog/promise/resolver.js +0 -48
  450. package/lib/goog/promise/thenable.js +0 -126
  451. package/lib/goog/reflect/reflect.js +0 -77
  452. package/lib/goog/string/const.js +0 -182
  453. package/lib/goog/string/string.js +0 -1599
  454. package/lib/goog/string/typedstring.js +0 -48
  455. package/lib/goog/structs/collection.js +0 -56
  456. package/lib/goog/structs/map.js +0 -457
  457. package/lib/goog/structs/set.js +0 -279
  458. package/lib/goog/structs/structs.js +0 -354
  459. package/lib/goog/style/style.js +0 -2037
  460. package/lib/goog/testing/asserts.js +0 -1278
  461. package/lib/goog/testing/events/events.js +0 -767
  462. package/lib/goog/testing/functionmock.js +0 -175
  463. package/lib/goog/testing/jsunit.js +0 -162
  464. package/lib/goog/testing/loosemock.js +0 -242
  465. package/lib/goog/testing/mock.js +0 -645
  466. package/lib/goog/testing/mockclock.js +0 -606
  467. package/lib/goog/testing/mockcontrol.js +0 -220
  468. package/lib/goog/testing/mockinterface.js +0 -45
  469. package/lib/goog/testing/mockmatchers.js +0 -400
  470. package/lib/goog/testing/objectpropertystring.js +0 -68
  471. package/lib/goog/testing/propertyreplacer.js +0 -262
  472. package/lib/goog/testing/recordfunction.js +0 -215
  473. package/lib/goog/testing/stacktrace.js +0 -594
  474. package/lib/goog/testing/strictmock.js +0 -130
  475. package/lib/goog/testing/testcase.js +0 -1629
  476. package/lib/goog/testing/testrunner.js +0 -440
  477. package/lib/goog/uri/uri.js +0 -1524
  478. package/lib/goog/uri/utils.js +0 -1064
  479. package/lib/goog/useragent/product.js +0 -183
  480. package/lib/goog/useragent/product_isversion.js +0 -144
  481. package/lib/goog/useragent/useragent.js +0 -572
  482. package/lib/webdriver/actionsequence.js +0 -356
  483. package/lib/webdriver/builder.js +0 -207
  484. package/lib/webdriver/capabilities.js +0 -412
  485. package/lib/webdriver/events.js +0 -179
  486. package/lib/webdriver/firefoxdomexecutor.js +0 -175
  487. package/lib/webdriver/http/corsclient.js +0 -133
  488. package/lib/webdriver/http/http.js +0 -525
  489. package/lib/webdriver/http/xhrclient.js +0 -67
  490. package/lib/webdriver/locators.js +0 -257
  491. package/lib/webdriver/logging.js +0 -347
  492. package/lib/webdriver/session.js +0 -74
  493. package/lib/webdriver/stacktrace.js +0 -619
  494. package/lib/webdriver/test/builder_test.js +0 -53
  495. package/lib/webdriver/test/capabilities_test.js +0 -72
  496. package/lib/webdriver/test/events_test.js +0 -203
  497. package/lib/webdriver/test/http/corsclient_test.js +0 -151
  498. package/lib/webdriver/test/http/http_test.js +0 -428
  499. package/lib/webdriver/test/http/xhrclient_test.js +0 -196
  500. package/lib/webdriver/test/locators_test.js +0 -59
  501. package/lib/webdriver/test/logging_test.js +0 -85
  502. package/lib/webdriver/test/promise_error_test.js +0 -892
  503. package/lib/webdriver/test/promise_flow_test.js +0 -2365
  504. package/lib/webdriver/test/promise_generator_test.js +0 -323
  505. package/lib/webdriver/test/promise_test.js +0 -2012
  506. package/lib/webdriver/test/stacktrace_test.js +0 -480
  507. package/lib/webdriver/test/test_bootstrap.js +0 -67
  508. package/lib/webdriver/test/testing/asserts_test.js +0 -117
  509. package/lib/webdriver/test/testing/client_test.js +0 -88
  510. package/lib/webdriver/test/testing/testcase_test.js +0 -229
  511. package/lib/webdriver/test/testutil.js +0 -209
  512. package/lib/webdriver/test/testutil_test.js +0 -104
  513. package/lib/webdriver/test/until_test.js +0 -411
  514. package/lib/webdriver/test/webdriver_generator_test.js +0 -92
  515. package/lib/webdriver/test/webdriver_test.js +0 -2369
  516. package/lib/webdriver/testing/asserts.js +0 -487
  517. package/lib/webdriver/testing/client.js +0 -179
  518. package/lib/webdriver/testing/jsunit.js +0 -363
  519. package/lib/webdriver/testing/testcase.js +0 -168
  520. package/lib/webdriver/testing/window.js +0 -244
  521. package/lib/webdriver/touchsequence.js +0 -248
  522. package/lib/webdriver/until.js +0 -412
  523. package/lib/webdriver/webdriver.js +0 -2511
  524. package/test/_base_test.js +0 -129
@@ -1,220 +0,0 @@
1
- // Copyright 2008 The Closure Library Authors. All Rights Reserved.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS-IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- /**
16
- * @fileoverview A MockControl holds a set of mocks for a particular test.
17
- * It consolidates calls to $replay, $verify, and $tearDown, which simplifies
18
- * the test and helps avoid omissions.
19
- *
20
- * You can create and control a mock:
21
- * var mockFoo = mockControl.addMock(new MyMock(Foo));
22
- *
23
- * MockControl also exposes some convenience functions that create
24
- * controlled mocks for common mocks: StrictMock, LooseMock,
25
- * FunctionMock, MethodMock, and GlobalFunctionMock.
26
- *
27
- */
28
-
29
-
30
- goog.provide('goog.testing.MockControl');
31
-
32
- goog.require('goog.array');
33
- goog.require('goog.testing');
34
- goog.require('goog.testing.LooseMock');
35
- goog.require('goog.testing.StrictMock');
36
-
37
-
38
-
39
- /**
40
- * Controls a set of mocks. Controlled mocks are replayed, verified, and
41
- * cleaned-up at the same time.
42
- * @constructor
43
- */
44
- goog.testing.MockControl = function() {
45
- /**
46
- * The list of mocks being controlled.
47
- * @type {Array<goog.testing.MockInterface>}
48
- * @private
49
- */
50
- this.mocks_ = [];
51
- };
52
-
53
-
54
- /**
55
- * Takes control of this mock.
56
- * @param {goog.testing.MockInterface} mock Mock to be controlled.
57
- * @return {goog.testing.MockInterface} The same mock passed in,
58
- * for convenience.
59
- */
60
- goog.testing.MockControl.prototype.addMock = function(mock) {
61
- this.mocks_.push(mock);
62
- return mock;
63
- };
64
-
65
-
66
- /**
67
- * Calls replay on each controlled mock.
68
- */
69
- goog.testing.MockControl.prototype.$replayAll = function() {
70
- goog.array.forEach(this.mocks_, function(m) {
71
- m.$replay();
72
- });
73
- };
74
-
75
-
76
- /**
77
- * Calls reset on each controlled mock.
78
- */
79
- goog.testing.MockControl.prototype.$resetAll = function() {
80
- goog.array.forEach(this.mocks_, function(m) {
81
- m.$reset();
82
- });
83
- };
84
-
85
-
86
- /**
87
- * Calls verify on each controlled mock.
88
- */
89
- goog.testing.MockControl.prototype.$verifyAll = function() {
90
- goog.array.forEach(this.mocks_, function(m) {
91
- m.$verify();
92
- });
93
- };
94
-
95
-
96
- /**
97
- * Calls tearDown on each controlled mock, if necesssary.
98
- */
99
- goog.testing.MockControl.prototype.$tearDown = function() {
100
- goog.array.forEach(this.mocks_, function(m) {
101
- // $tearDown if defined.
102
- if (m.$tearDown) {
103
- m.$tearDown();
104
- }
105
- // TODO(user): Somehow determine if verifyAll should have been called
106
- // but was not.
107
- });
108
- };
109
-
110
-
111
- /**
112
- * Creates a controlled StrictMock. Passes its arguments through to the
113
- * StrictMock constructor.
114
- * @param {Object|Function} objectToMock The object that should be mocked, or
115
- * the constructor of an object to mock.
116
- * @param {boolean=} opt_mockStaticMethods An optional argument denoting that
117
- * a mock should be constructed from the static functions of a class.
118
- * @param {boolean=} opt_createProxy An optional argument denoting that
119
- * a proxy for the target mock should be created.
120
- * @return {!goog.testing.StrictMock} The mock object.
121
- */
122
- goog.testing.MockControl.prototype.createStrictMock = function(
123
- objectToMock, opt_mockStaticMethods, opt_createProxy) {
124
- var m = new goog.testing.StrictMock(objectToMock, opt_mockStaticMethods,
125
- opt_createProxy);
126
- this.addMock(m);
127
- return m;
128
- };
129
-
130
-
131
- /**
132
- * Creates a controlled LooseMock. Passes its arguments through to the
133
- * LooseMock constructor.
134
- * @param {Object|Function} objectToMock The object that should be mocked, or
135
- * the constructor of an object to mock.
136
- * @param {boolean=} opt_ignoreUnexpectedCalls Whether to ignore unexpected
137
- * calls.
138
- * @param {boolean=} opt_mockStaticMethods An optional argument denoting that
139
- * a mock should be constructed from the static functions of a class.
140
- * @param {boolean=} opt_createProxy An optional argument denoting that
141
- * a proxy for the target mock should be created.
142
- * @return {!goog.testing.LooseMock} The mock object.
143
- */
144
- goog.testing.MockControl.prototype.createLooseMock = function(
145
- objectToMock, opt_ignoreUnexpectedCalls,
146
- opt_mockStaticMethods, opt_createProxy) {
147
- var m = new goog.testing.LooseMock(objectToMock, opt_ignoreUnexpectedCalls,
148
- opt_mockStaticMethods, opt_createProxy);
149
- this.addMock(m);
150
- return m;
151
- };
152
-
153
-
154
- /**
155
- * Creates a controlled FunctionMock. Passes its arguments through to the
156
- * FunctionMock constructor.
157
- * @param {string=} opt_functionName The optional name of the function to mock
158
- * set to '[anonymous mocked function]' if not passed in.
159
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
160
- * goog.testing.Mock.STRICT. The default is STRICT.
161
- * @return {goog.testing.MockInterface} The mocked function.
162
- */
163
- goog.testing.MockControl.prototype.createFunctionMock = function(
164
- opt_functionName, opt_strictness) {
165
- var m = goog.testing.createFunctionMock(opt_functionName, opt_strictness);
166
- this.addMock(m);
167
- return m;
168
- };
169
-
170
-
171
- /**
172
- * Creates a controlled MethodMock. Passes its arguments through to the
173
- * MethodMock constructor.
174
- * @param {Object} scope The scope of the method to be mocked out.
175
- * @param {string} functionName The name of the function we're going to mock.
176
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
177
- * goog.testing.Mock.STRICT. The default is STRICT.
178
- * @return {!goog.testing.MockInterface} The mocked method.
179
- */
180
- goog.testing.MockControl.prototype.createMethodMock = function(
181
- scope, functionName, opt_strictness) {
182
- var m = goog.testing.createMethodMock(scope, functionName, opt_strictness);
183
- this.addMock(m);
184
- return m;
185
- };
186
-
187
-
188
- /**
189
- * Creates a controlled MethodMock for a constructor. Passes its arguments
190
- * through to the MethodMock constructor. See
191
- * {@link goog.testing.createConstructorMock} for details.
192
- * @param {Object} scope The scope of the constructor to be mocked out.
193
- * @param {string} constructorName The name of the function we're going to mock.
194
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
195
- * goog.testing.Mock.STRICT. The default is STRICT.
196
- * @return {!goog.testing.MockInterface} The mocked method.
197
- */
198
- goog.testing.MockControl.prototype.createConstructorMock = function(
199
- scope, constructorName, opt_strictness) {
200
- var m = goog.testing.createConstructorMock(scope, constructorName,
201
- opt_strictness);
202
- this.addMock(m);
203
- return m;
204
- };
205
-
206
-
207
- /**
208
- * Creates a controlled GlobalFunctionMock. Passes its arguments through to the
209
- * GlobalFunctionMock constructor.
210
- * @param {string} functionName The name of the function we're going to mock.
211
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
212
- * goog.testing.Mock.STRICT. The default is STRICT.
213
- * @return {!goog.testing.MockInterface} The mocked function.
214
- */
215
- goog.testing.MockControl.prototype.createGlobalFunctionMock = function(
216
- functionName, opt_strictness) {
217
- var m = goog.testing.createGlobalFunctionMock(functionName, opt_strictness);
218
- this.addMock(m);
219
- return m;
220
- };
@@ -1,45 +0,0 @@
1
- // Copyright 2010 The Closure Library Authors. All Rights Reserved.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS-IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- /**
16
- * @fileoverview An interface that all mocks should share.
17
- * @author nicksantos@google.com (Nick Santos)
18
- */
19
-
20
- goog.provide('goog.testing.MockInterface');
21
-
22
-
23
-
24
- /** @interface */
25
- goog.testing.MockInterface = function() {};
26
-
27
-
28
- /**
29
- * Write down all the expected functions that have been called on the
30
- * mock so far. From here on out, future function calls will be
31
- * compared against this list.
32
- */
33
- goog.testing.MockInterface.prototype.$replay = function() {};
34
-
35
-
36
- /**
37
- * Reset the mock.
38
- */
39
- goog.testing.MockInterface.prototype.$reset = function() {};
40
-
41
-
42
- /**
43
- * Assert that the expected function calls match the actual calls.
44
- */
45
- goog.testing.MockInterface.prototype.$verify = function() {};
@@ -1,400 +0,0 @@
1
- // Copyright 2008 The Closure Library Authors. All Rights Reserved.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS-IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- /**
16
- * @fileoverview Matchers to be used with the mock utilities. They allow for
17
- * flexible matching by type. Custom matchers can be created by passing a
18
- * matcher function into an ArgumentMatcher instance.
19
- *
20
- * For examples, please see the unit test.
21
- *
22
- */
23
-
24
-
25
- goog.provide('goog.testing.mockmatchers');
26
- goog.provide('goog.testing.mockmatchers.ArgumentMatcher');
27
- goog.provide('goog.testing.mockmatchers.IgnoreArgument');
28
- goog.provide('goog.testing.mockmatchers.InstanceOf');
29
- goog.provide('goog.testing.mockmatchers.ObjectEquals');
30
- goog.provide('goog.testing.mockmatchers.RegexpMatch');
31
- goog.provide('goog.testing.mockmatchers.SaveArgument');
32
- goog.provide('goog.testing.mockmatchers.TypeOf');
33
-
34
- goog.require('goog.array');
35
- goog.require('goog.dom');
36
- goog.require('goog.testing.asserts');
37
-
38
-
39
-
40
- /**
41
- * A simple interface for executing argument matching. A match in this case is
42
- * testing to see if a supplied object fits a given criteria. True is returned
43
- * if the given criteria is met.
44
- * @param {Function=} opt_matchFn A function that evaluates a given argument
45
- * and returns true if it meets a given criteria.
46
- * @param {?string=} opt_matchName The name expressing intent as part of
47
- * an error message for when a match fails.
48
- * @constructor
49
- */
50
- goog.testing.mockmatchers.ArgumentMatcher =
51
- function(opt_matchFn, opt_matchName) {
52
- /**
53
- * A function that evaluates a given argument and returns true if it meets a
54
- * given criteria.
55
- * @type {Function}
56
- * @private
57
- */
58
- this.matchFn_ = opt_matchFn || null;
59
-
60
- /**
61
- * A string indicating the match intent (e.g. isBoolean or isString).
62
- * @type {?string}
63
- * @private
64
- */
65
- this.matchName_ = opt_matchName || null;
66
- };
67
-
68
-
69
- /**
70
- * A function that takes a match argument and an optional MockExpectation
71
- * which (if provided) will get error information and returns whether or
72
- * not it matches.
73
- * @param {*} toVerify The argument that should be verified.
74
- * @param {goog.testing.MockExpectation?=} opt_expectation The expectation
75
- * for this match.
76
- * @return {boolean} Whether or not a given argument passes verification.
77
- */
78
- goog.testing.mockmatchers.ArgumentMatcher.prototype.matches =
79
- function(toVerify, opt_expectation) {
80
- if (this.matchFn_) {
81
- var isamatch = this.matchFn_(toVerify);
82
- if (!isamatch && opt_expectation) {
83
- if (this.matchName_) {
84
- opt_expectation.addErrorMessage('Expected: ' +
85
- this.matchName_ + ' but was: ' + _displayStringForValue(toVerify));
86
- } else {
87
- opt_expectation.addErrorMessage('Expected: missing mockmatcher' +
88
- ' description but was: ' +
89
- _displayStringForValue(toVerify));
90
- }
91
- }
92
- return isamatch;
93
- } else {
94
- throw Error('No match function defined for this mock matcher');
95
- }
96
- };
97
-
98
-
99
-
100
- /**
101
- * A matcher that verifies that an argument is an instance of a given class.
102
- * @param {Function} ctor The class that will be used for verification.
103
- * @constructor
104
- * @extends {goog.testing.mockmatchers.ArgumentMatcher}
105
- * @final
106
- */
107
- goog.testing.mockmatchers.InstanceOf = function(ctor) {
108
- goog.testing.mockmatchers.ArgumentMatcher.call(this,
109
- function(obj) {
110
- return obj instanceof ctor;
111
- // NOTE: Browser differences on ctor.toString() output
112
- // make using that here problematic. So for now, just let
113
- // people know the instanceOf() failed without providing
114
- // browser specific details...
115
- }, 'instanceOf()');
116
- };
117
- goog.inherits(goog.testing.mockmatchers.InstanceOf,
118
- goog.testing.mockmatchers.ArgumentMatcher);
119
-
120
-
121
-
122
- /**
123
- * A matcher that verifies that an argument is of a given type (e.g. "object").
124
- * @param {string} type The type that a given argument must have.
125
- * @constructor
126
- * @extends {goog.testing.mockmatchers.ArgumentMatcher}
127
- * @final
128
- */
129
- goog.testing.mockmatchers.TypeOf = function(type) {
130
- goog.testing.mockmatchers.ArgumentMatcher.call(this,
131
- function(obj) {
132
- return goog.typeOf(obj) == type;
133
- }, 'typeOf(' + type + ')');
134
- };
135
- goog.inherits(goog.testing.mockmatchers.TypeOf,
136
- goog.testing.mockmatchers.ArgumentMatcher);
137
-
138
-
139
-
140
- /**
141
- * A matcher that verifies that an argument matches a given RegExp.
142
- * @param {RegExp} regexp The regular expression that the argument must match.
143
- * @constructor
144
- * @extends {goog.testing.mockmatchers.ArgumentMatcher}
145
- * @final
146
- */
147
- goog.testing.mockmatchers.RegexpMatch = function(regexp) {
148
- goog.testing.mockmatchers.ArgumentMatcher.call(this,
149
- function(str) {
150
- return regexp.test(str);
151
- }, 'match(' + regexp + ')');
152
- };
153
- goog.inherits(goog.testing.mockmatchers.RegexpMatch,
154
- goog.testing.mockmatchers.ArgumentMatcher);
155
-
156
-
157
-
158
- /**
159
- * A matcher that always returns true. It is useful when the user does not care
160
- * for some arguments.
161
- * For example: mockFunction('username', 'password', IgnoreArgument);
162
- * @constructor
163
- * @extends {goog.testing.mockmatchers.ArgumentMatcher}
164
- * @final
165
- */
166
- goog.testing.mockmatchers.IgnoreArgument = function() {
167
- goog.testing.mockmatchers.ArgumentMatcher.call(this,
168
- function() {
169
- return true;
170
- }, 'true');
171
- };
172
- goog.inherits(goog.testing.mockmatchers.IgnoreArgument,
173
- goog.testing.mockmatchers.ArgumentMatcher);
174
-
175
-
176
-
177
- /**
178
- * A matcher that verifies that the argument is an object that equals the given
179
- * expected object, using a deep comparison.
180
- * @param {Object} expectedObject An object to match against when
181
- * verifying the argument.
182
- * @constructor
183
- * @extends {goog.testing.mockmatchers.ArgumentMatcher}
184
- */
185
- goog.testing.mockmatchers.ObjectEquals = function(expectedObject) {
186
- goog.testing.mockmatchers.ArgumentMatcher.call(this,
187
- function(matchObject) {
188
- assertObjectEquals('Expected equal objects', expectedObject,
189
- matchObject);
190
- return true;
191
- }, 'objectEquals(' + expectedObject + ')');
192
- };
193
- goog.inherits(goog.testing.mockmatchers.ObjectEquals,
194
- goog.testing.mockmatchers.ArgumentMatcher);
195
-
196
-
197
- /** @override */
198
- goog.testing.mockmatchers.ObjectEquals.prototype.matches =
199
- function(toVerify, opt_expectation) {
200
- // Override the default matches implementation to capture the exception thrown
201
- // by assertObjectEquals (if any) and add that message to the expectation.
202
- try {
203
- return goog.testing.mockmatchers.ObjectEquals.superClass_.matches.call(
204
- this, toVerify, opt_expectation);
205
- } catch (e) {
206
- if (opt_expectation) {
207
- opt_expectation.addErrorMessage(e.message);
208
- }
209
- return false;
210
- }
211
- };
212
-
213
-
214
-
215
- /**
216
- * A matcher that saves the argument that it is verifying so that your unit test
217
- * can perform extra tests with this argument later. For example, if the
218
- * argument is a callback method, the unit test can then later call this
219
- * callback to test the asynchronous portion of the call.
220
- * @param {goog.testing.mockmatchers.ArgumentMatcher|Function=} opt_matcher
221
- * Argument matcher or matching function that will be used to validate the
222
- * argument. By default, argument will always be valid.
223
- * @param {?string=} opt_matchName The name expressing intent as part of
224
- * an error message for when a match fails.
225
- * @constructor
226
- * @extends {goog.testing.mockmatchers.ArgumentMatcher}
227
- * @final
228
- */
229
- goog.testing.mockmatchers.SaveArgument = function(opt_matcher, opt_matchName) {
230
- goog.testing.mockmatchers.ArgumentMatcher.call(
231
- this, /** @type {Function} */ (opt_matcher), opt_matchName);
232
-
233
- if (opt_matcher instanceof goog.testing.mockmatchers.ArgumentMatcher) {
234
- /**
235
- * Delegate match requests to this matcher.
236
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
237
- * @private
238
- */
239
- this.delegateMatcher_ = opt_matcher;
240
- } else if (!opt_matcher) {
241
- this.delegateMatcher_ = goog.testing.mockmatchers.ignoreArgument;
242
- }
243
- };
244
- goog.inherits(goog.testing.mockmatchers.SaveArgument,
245
- goog.testing.mockmatchers.ArgumentMatcher);
246
-
247
-
248
- /** @override */
249
- goog.testing.mockmatchers.SaveArgument.prototype.matches = function(
250
- toVerify, opt_expectation) {
251
- this.arg = toVerify;
252
- if (this.delegateMatcher_) {
253
- return this.delegateMatcher_.matches(toVerify, opt_expectation);
254
- }
255
- return goog.testing.mockmatchers.SaveArgument.superClass_.matches.call(
256
- this, toVerify, opt_expectation);
257
- };
258
-
259
-
260
- /**
261
- * Saved argument that was verified.
262
- * @type {*}
263
- */
264
- goog.testing.mockmatchers.SaveArgument.prototype.arg;
265
-
266
-
267
- /**
268
- * An instance of the IgnoreArgument matcher. Returns true for all matches.
269
- * @type {goog.testing.mockmatchers.IgnoreArgument}
270
- */
271
- goog.testing.mockmatchers.ignoreArgument =
272
- new goog.testing.mockmatchers.IgnoreArgument();
273
-
274
-
275
- /**
276
- * A matcher that verifies that an argument is an array.
277
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
278
- */
279
- goog.testing.mockmatchers.isArray =
280
- new goog.testing.mockmatchers.ArgumentMatcher(goog.isArray,
281
- 'isArray');
282
-
283
-
284
- /**
285
- * A matcher that verifies that an argument is a array-like. A NodeList is an
286
- * example of a collection that is very close to an array.
287
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
288
- */
289
- goog.testing.mockmatchers.isArrayLike =
290
- new goog.testing.mockmatchers.ArgumentMatcher(goog.isArrayLike,
291
- 'isArrayLike');
292
-
293
-
294
- /**
295
- * A matcher that verifies that an argument is a date-like.
296
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
297
- */
298
- goog.testing.mockmatchers.isDateLike =
299
- new goog.testing.mockmatchers.ArgumentMatcher(goog.isDateLike,
300
- 'isDateLike');
301
-
302
-
303
- /**
304
- * A matcher that verifies that an argument is a string.
305
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
306
- */
307
- goog.testing.mockmatchers.isString =
308
- new goog.testing.mockmatchers.ArgumentMatcher(goog.isString,
309
- 'isString');
310
-
311
-
312
- /**
313
- * A matcher that verifies that an argument is a boolean.
314
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
315
- */
316
- goog.testing.mockmatchers.isBoolean =
317
- new goog.testing.mockmatchers.ArgumentMatcher(goog.isBoolean,
318
- 'isBoolean');
319
-
320
-
321
- /**
322
- * A matcher that verifies that an argument is a number.
323
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
324
- */
325
- goog.testing.mockmatchers.isNumber =
326
- new goog.testing.mockmatchers.ArgumentMatcher(goog.isNumber,
327
- 'isNumber');
328
-
329
-
330
- /**
331
- * A matcher that verifies that an argument is a function.
332
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
333
- */
334
- goog.testing.mockmatchers.isFunction =
335
- new goog.testing.mockmatchers.ArgumentMatcher(goog.isFunction,
336
- 'isFunction');
337
-
338
-
339
- /**
340
- * A matcher that verifies that an argument is an object.
341
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
342
- */
343
- goog.testing.mockmatchers.isObject =
344
- new goog.testing.mockmatchers.ArgumentMatcher(goog.isObject,
345
- 'isObject');
346
-
347
-
348
- /**
349
- * A matcher that verifies that an argument is like a DOM node.
350
- * @type {goog.testing.mockmatchers.ArgumentMatcher}
351
- */
352
- goog.testing.mockmatchers.isNodeLike =
353
- new goog.testing.mockmatchers.ArgumentMatcher(goog.dom.isNodeLike,
354
- 'isNodeLike');
355
-
356
-
357
- /**
358
- * A function that checks to see if an array matches a given set of
359
- * expectations. The expectations array can be a mix of ArgumentMatcher
360
- * implementations and values. True will be returned if values are identical or
361
- * if a matcher returns a positive result.
362
- * @param {Array<?>} expectedArr An array of expectations which can be either
363
- * values to check for equality or ArgumentMatchers.
364
- * @param {Array<?>} arr The array to match.
365
- * @param {goog.testing.MockExpectation?=} opt_expectation The expectation
366
- * for this match.
367
- * @return {boolean} Whether or not the given array matches the expectations.
368
- */
369
- goog.testing.mockmatchers.flexibleArrayMatcher =
370
- function(expectedArr, arr, opt_expectation) {
371
- return goog.array.equals(expectedArr, arr, function(a, b) {
372
- var errCount = 0;
373
- if (opt_expectation) {
374
- errCount = opt_expectation.getErrorMessageCount();
375
- }
376
- var isamatch = a === b ||
377
- a instanceof goog.testing.mockmatchers.ArgumentMatcher &&
378
- a.matches(b, opt_expectation);
379
- var failureMessage = null;
380
- if (!isamatch) {
381
- failureMessage = goog.testing.asserts.findDifferences(a, b);
382
- isamatch = !failureMessage;
383
- }
384
- if (!isamatch && opt_expectation) {
385
- // If the error count changed, the match sent out an error
386
- // message. If the error count has not changed, then
387
- // we need to send out an error message...
388
- if (errCount == opt_expectation.getErrorMessageCount()) {
389
- // Use the _displayStringForValue() from assert.js
390
- // for consistency...
391
- if (!failureMessage) {
392
- failureMessage = 'Expected: ' + _displayStringForValue(a) +
393
- ' but was: ' + _displayStringForValue(b);
394
- }
395
- opt_expectation.addErrorMessage(failureMessage);
396
- }
397
- }
398
- return isamatch;
399
- });
400
- };