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,645 +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 This file defines base classes used for creating mocks in
17
- * JavaScript. The API was inspired by EasyMock.
18
- *
19
- * The basic API is:
20
- * <ul>
21
- * <li>Create an object to be mocked
22
- * <li>Create a mock object, passing in the above object to the constructor
23
- * <li>Set expectations by calling methods on the mock object
24
- * <li>Call $replay() on the mock object
25
- * <li>Pass the mock to code that will make real calls on it
26
- * <li>Call $verify() to make sure that expectations were met
27
- * </ul>
28
- *
29
- * For examples, please see the unit tests for LooseMock and StrictMock.
30
- *
31
- * Still TODO
32
- * implement better (and pluggable) argument matching
33
- * Have the exceptions for LooseMock show the number of expected/actual calls
34
- * loose and strict mocks share a lot of code - move it to the base class
35
- *
36
- */
37
-
38
- goog.provide('goog.testing.Mock');
39
- goog.provide('goog.testing.MockExpectation');
40
-
41
- goog.require('goog.array');
42
- goog.require('goog.object');
43
- goog.require('goog.testing.JsUnitException');
44
- goog.require('goog.testing.MockInterface');
45
- goog.require('goog.testing.mockmatchers');
46
-
47
-
48
-
49
- /**
50
- * This is a class that represents an expectation.
51
- * @param {string} name The name of the method for this expectation.
52
- * @constructor
53
- * @final
54
- */
55
- goog.testing.MockExpectation = function(name) {
56
- /**
57
- * The name of the method that is expected to be called.
58
- * @type {string}
59
- */
60
- this.name = name;
61
-
62
- /**
63
- * An array of error messages for expectations not met.
64
- * @type {Array<string>}
65
- */
66
- this.errorMessages = [];
67
- };
68
-
69
-
70
- /**
71
- * The minimum number of times this method should be called.
72
- * @type {number}
73
- */
74
- goog.testing.MockExpectation.prototype.minCalls = 1;
75
-
76
-
77
- /**
78
- * The maximum number of times this method should be called.
79
- * @type {number}
80
- */
81
- goog.testing.MockExpectation.prototype.maxCalls = 1;
82
-
83
-
84
- /**
85
- * The value that this method should return.
86
- * @type {*}
87
- */
88
- goog.testing.MockExpectation.prototype.returnValue;
89
-
90
-
91
- /**
92
- * The value that will be thrown when the method is called
93
- * @type {*}
94
- */
95
- goog.testing.MockExpectation.prototype.exceptionToThrow;
96
-
97
-
98
- /**
99
- * The arguments that are expected to be passed to this function
100
- * @type {Array<*>}
101
- */
102
- goog.testing.MockExpectation.prototype.argumentList;
103
-
104
-
105
- /**
106
- * The number of times this method is called by real code.
107
- * @type {number}
108
- */
109
- goog.testing.MockExpectation.prototype.actualCalls = 0;
110
-
111
-
112
- /**
113
- * The number of times this method is called during the verification phase.
114
- * @type {number}
115
- */
116
- goog.testing.MockExpectation.prototype.verificationCalls = 0;
117
-
118
-
119
- /**
120
- * The function which will be executed when this method is called.
121
- * Method arguments will be passed to this function, and return value
122
- * of this function will be returned by the method.
123
- * @type {Function}
124
- */
125
- goog.testing.MockExpectation.prototype.toDo;
126
-
127
-
128
- /**
129
- * Allow expectation failures to include messages.
130
- * @param {string} message The failure message.
131
- */
132
- goog.testing.MockExpectation.prototype.addErrorMessage = function(message) {
133
- this.errorMessages.push(message);
134
- };
135
-
136
-
137
- /**
138
- * Get the error messages seen so far.
139
- * @return {string} Error messages separated by \n.
140
- */
141
- goog.testing.MockExpectation.prototype.getErrorMessage = function() {
142
- return this.errorMessages.join('\n');
143
- };
144
-
145
-
146
- /**
147
- * Get how many error messages have been seen so far.
148
- * @return {number} Count of error messages.
149
- */
150
- goog.testing.MockExpectation.prototype.getErrorMessageCount = function() {
151
- return this.errorMessages.length;
152
- };
153
-
154
-
155
-
156
- /**
157
- * The base class for a mock object.
158
- * @param {Object|Function} objectToMock The object that should be mocked, or
159
- * the constructor of an object to mock.
160
- * @param {boolean=} opt_mockStaticMethods An optional argument denoting that
161
- * a mock should be constructed from the static functions of a class.
162
- * @param {boolean=} opt_createProxy An optional argument denoting that
163
- * a proxy for the target mock should be created.
164
- * @constructor
165
- * @implements {goog.testing.MockInterface}
166
- */
167
- goog.testing.Mock = function(objectToMock, opt_mockStaticMethods,
168
- opt_createProxy) {
169
- if (!goog.isObject(objectToMock) && !goog.isFunction(objectToMock)) {
170
- throw new Error('objectToMock must be an object or constructor.');
171
- }
172
- if (opt_createProxy && !opt_mockStaticMethods &&
173
- goog.isFunction(objectToMock)) {
174
- /**
175
- * @constructor
176
- * @final
177
- */
178
- var tempCtor = function() {};
179
- goog.inherits(tempCtor, objectToMock);
180
- this.$proxy = new tempCtor();
181
- } else if (opt_createProxy && opt_mockStaticMethods &&
182
- goog.isFunction(objectToMock)) {
183
- throw Error('Cannot create a proxy when opt_mockStaticMethods is true');
184
- } else if (opt_createProxy && !goog.isFunction(objectToMock)) {
185
- throw Error('Must have a constructor to create a proxy');
186
- }
187
-
188
- if (goog.isFunction(objectToMock) && !opt_mockStaticMethods) {
189
- this.$initializeFunctions_(objectToMock.prototype);
190
- } else {
191
- this.$initializeFunctions_(objectToMock);
192
- }
193
- this.$argumentListVerifiers_ = {};
194
- };
195
-
196
-
197
- /**
198
- * Option that may be passed when constructing function, method, and
199
- * constructor mocks. Indicates that the expected calls should be accepted in
200
- * any order.
201
- * @const
202
- * @type {number}
203
- */
204
- goog.testing.Mock.LOOSE = 1;
205
-
206
-
207
- /**
208
- * Option that may be passed when constructing function, method, and
209
- * constructor mocks. Indicates that the expected calls should be accepted in
210
- * the recorded order only.
211
- * @const
212
- * @type {number}
213
- */
214
- goog.testing.Mock.STRICT = 0;
215
-
216
-
217
- /**
218
- * This array contains the name of the functions that are part of the base
219
- * Object prototype.
220
- * Basically a copy of goog.object.PROTOTYPE_FIELDS_.
221
- * @const
222
- * @type {!Array<string>}
223
- * @private
224
- */
225
- goog.testing.Mock.PROTOTYPE_FIELDS_ = [
226
- 'constructor',
227
- 'hasOwnProperty',
228
- 'isPrototypeOf',
229
- 'propertyIsEnumerable',
230
- 'toLocaleString',
231
- 'toString',
232
- 'valueOf'
233
- ];
234
-
235
-
236
- /**
237
- * A proxy for the mock. This can be used for dependency injection in lieu of
238
- * the mock if the test requires a strict instanceof check.
239
- * @type {Object}
240
- */
241
- goog.testing.Mock.prototype.$proxy = null;
242
-
243
-
244
- /**
245
- * Map of argument name to optional argument list verifier function.
246
- * @type {Object}
247
- */
248
- goog.testing.Mock.prototype.$argumentListVerifiers_;
249
-
250
-
251
- /**
252
- * Whether or not we are in recording mode.
253
- * @type {boolean}
254
- * @private
255
- */
256
- goog.testing.Mock.prototype.$recording_ = true;
257
-
258
-
259
- /**
260
- * The expectation currently being created. All methods that modify the
261
- * current expectation return the Mock object for easy chaining, so this is
262
- * where we keep track of the expectation that's currently being modified.
263
- * @type {goog.testing.MockExpectation}
264
- * @protected
265
- */
266
- goog.testing.Mock.prototype.$pendingExpectation;
267
-
268
-
269
- /**
270
- * First exception thrown by this mock; used in $verify.
271
- * @type {Object}
272
- * @private
273
- */
274
- goog.testing.Mock.prototype.$threwException_ = null;
275
-
276
-
277
- /**
278
- * Initializes the functions on the mock object.
279
- * @param {Object} objectToMock The object being mocked.
280
- * @private
281
- */
282
- goog.testing.Mock.prototype.$initializeFunctions_ = function(objectToMock) {
283
- // Gets the object properties.
284
- var enumerableProperties = goog.object.getKeys(objectToMock);
285
-
286
- // The non enumerable properties are added if they override the ones in the
287
- // Object prototype. This is due to the fact that IE8 does not enumerate any
288
- // of the prototype Object functions even when overriden and mocking these is
289
- // sometimes needed.
290
- for (var i = 0; i < goog.testing.Mock.PROTOTYPE_FIELDS_.length; i++) {
291
- var prop = goog.testing.Mock.PROTOTYPE_FIELDS_[i];
292
- // Look at b/6758711 if you're considering adding ALL properties to ALL
293
- // mocks.
294
- if (objectToMock[prop] !== Object.prototype[prop]) {
295
- enumerableProperties.push(prop);
296
- }
297
- }
298
-
299
- // Adds the properties to the mock.
300
- for (var i = 0; i < enumerableProperties.length; i++) {
301
- var prop = enumerableProperties[i];
302
- if (typeof objectToMock[prop] == 'function') {
303
- this[prop] = goog.bind(this.$mockMethod, this, prop);
304
- if (this.$proxy) {
305
- this.$proxy[prop] = goog.bind(this.$mockMethod, this, prop);
306
- }
307
- }
308
- }
309
- };
310
-
311
-
312
- /**
313
- * Registers a verifier function to use when verifying method argument lists.
314
- * @param {string} methodName The name of the method for which the verifierFn
315
- * should be used.
316
- * @param {Function} fn Argument list verifier function. Should take 2 argument
317
- * arrays as arguments, and return true if they are considered equivalent.
318
- * @return {!goog.testing.Mock} This mock object.
319
- */
320
- goog.testing.Mock.prototype.$registerArgumentListVerifier = function(methodName,
321
- fn) {
322
- this.$argumentListVerifiers_[methodName] = fn;
323
- return this;
324
- };
325
-
326
-
327
- /**
328
- * The function that replaces all methods on the mock object.
329
- * @param {string} name The name of the method being mocked.
330
- * @return {*} In record mode, returns the mock object. In replay mode, returns
331
- * whatever the creator of the mock set as the return value.
332
- */
333
- goog.testing.Mock.prototype.$mockMethod = function(name) {
334
- try {
335
- // Shift off the name argument so that args contains the arguments to
336
- // the mocked method.
337
- var args = goog.array.slice(arguments, 1);
338
- if (this.$recording_) {
339
- this.$pendingExpectation = new goog.testing.MockExpectation(name);
340
- this.$pendingExpectation.argumentList = args;
341
- this.$recordExpectation();
342
- return this;
343
- } else {
344
- return this.$recordCall(name, args);
345
- }
346
- } catch (ex) {
347
- this.$recordAndThrow(ex);
348
- }
349
- };
350
-
351
-
352
- /**
353
- * Records the currently pending expectation, intended to be overridden by a
354
- * subclass.
355
- * @protected
356
- */
357
- goog.testing.Mock.prototype.$recordExpectation = function() {};
358
-
359
-
360
- /**
361
- * Records an actual method call, intended to be overridden by a
362
- * subclass. The subclass must find the pending expectation and return the
363
- * correct value.
364
- * @param {string} name The name of the method being called.
365
- * @param {Array<?>} args The arguments to the method.
366
- * @return {*} The return expected by the mock.
367
- * @protected
368
- */
369
- goog.testing.Mock.prototype.$recordCall = function(name, args) {
370
- return undefined;
371
- };
372
-
373
-
374
- /**
375
- * If the expectation expects to throw, this method will throw.
376
- * @param {goog.testing.MockExpectation} expectation The expectation.
377
- */
378
- goog.testing.Mock.prototype.$maybeThrow = function(expectation) {
379
- if (typeof expectation.exceptionToThrow != 'undefined') {
380
- throw expectation.exceptionToThrow;
381
- }
382
- };
383
-
384
-
385
- /**
386
- * If this expectation defines a function to be called,
387
- * it will be called and its result will be returned.
388
- * Otherwise, if the expectation expects to throw, it will throw.
389
- * Otherwise, this method will return defined value.
390
- * @param {goog.testing.MockExpectation} expectation The expectation.
391
- * @param {Array<?>} args The arguments to the method.
392
- * @return {*} The return value expected by the mock.
393
- */
394
- goog.testing.Mock.prototype.$do = function(expectation, args) {
395
- if (typeof expectation.toDo == 'undefined') {
396
- this.$maybeThrow(expectation);
397
- return expectation.returnValue;
398
- } else {
399
- return expectation.toDo.apply(this, args);
400
- }
401
- };
402
-
403
-
404
- /**
405
- * Specifies a return value for the currently pending expectation.
406
- * @param {*} val The return value.
407
- * @return {!goog.testing.Mock} This mock object.
408
- */
409
- goog.testing.Mock.prototype.$returns = function(val) {
410
- this.$pendingExpectation.returnValue = val;
411
- return this;
412
- };
413
-
414
-
415
- /**
416
- * Specifies a value for the currently pending expectation to throw.
417
- * @param {*} val The value to throw.
418
- * @return {!goog.testing.Mock} This mock object.
419
- */
420
- goog.testing.Mock.prototype.$throws = function(val) {
421
- this.$pendingExpectation.exceptionToThrow = val;
422
- return this;
423
- };
424
-
425
-
426
- /**
427
- * Specifies a function to call for currently pending expectation.
428
- * Note, that using this method overrides declarations made
429
- * using $returns() and $throws() methods.
430
- * @param {Function} func The function to call.
431
- * @return {!goog.testing.Mock} This mock object.
432
- */
433
- goog.testing.Mock.prototype.$does = function(func) {
434
- this.$pendingExpectation.toDo = func;
435
- return this;
436
- };
437
-
438
-
439
- /**
440
- * Allows the expectation to be called 0 or 1 times.
441
- * @return {!goog.testing.Mock} This mock object.
442
- */
443
- goog.testing.Mock.prototype.$atMostOnce = function() {
444
- this.$pendingExpectation.minCalls = 0;
445
- this.$pendingExpectation.maxCalls = 1;
446
- return this;
447
- };
448
-
449
-
450
- /**
451
- * Allows the expectation to be called any number of times, as long as it's
452
- * called once.
453
- * @return {!goog.testing.Mock} This mock object.
454
- */
455
- goog.testing.Mock.prototype.$atLeastOnce = function() {
456
- this.$pendingExpectation.maxCalls = Infinity;
457
- return this;
458
- };
459
-
460
-
461
- /**
462
- * Allows the expectation to be called exactly once.
463
- * @return {!goog.testing.Mock} This mock object.
464
- */
465
- goog.testing.Mock.prototype.$once = function() {
466
- this.$pendingExpectation.minCalls = 1;
467
- this.$pendingExpectation.maxCalls = 1;
468
- return this;
469
- };
470
-
471
-
472
- /**
473
- * Disallows the expectation from being called.
474
- * @return {!goog.testing.Mock} This mock object.
475
- */
476
- goog.testing.Mock.prototype.$never = function() {
477
- this.$pendingExpectation.minCalls = 0;
478
- this.$pendingExpectation.maxCalls = 0;
479
- return this;
480
- };
481
-
482
-
483
- /**
484
- * Allows the expectation to be called any number of times.
485
- * @return {!goog.testing.Mock} This mock object.
486
- */
487
- goog.testing.Mock.prototype.$anyTimes = function() {
488
- this.$pendingExpectation.minCalls = 0;
489
- this.$pendingExpectation.maxCalls = Infinity;
490
- return this;
491
- };
492
-
493
-
494
- /**
495
- * Specifies the number of times the expectation should be called.
496
- * @param {number} times The number of times this method will be called.
497
- * @return {!goog.testing.Mock} This mock object.
498
- */
499
- goog.testing.Mock.prototype.$times = function(times) {
500
- this.$pendingExpectation.minCalls = times;
501
- this.$pendingExpectation.maxCalls = times;
502
- return this;
503
- };
504
-
505
-
506
- /**
507
- * Switches from recording to replay mode.
508
- * @override
509
- */
510
- goog.testing.Mock.prototype.$replay = function() {
511
- this.$recording_ = false;
512
- };
513
-
514
-
515
- /**
516
- * Resets the state of this mock object. This clears all pending expectations
517
- * without verifying, and puts the mock in recording mode.
518
- * @override
519
- */
520
- goog.testing.Mock.prototype.$reset = function() {
521
- this.$recording_ = true;
522
- this.$threwException_ = null;
523
- delete this.$pendingExpectation;
524
- };
525
-
526
-
527
- /**
528
- * Throws an exception and records that an exception was thrown.
529
- * @param {string} comment A short comment about the exception.
530
- * @param {?string=} opt_message A longer message about the exception.
531
- * @throws {Object} JsUnitException object.
532
- * @protected
533
- */
534
- goog.testing.Mock.prototype.$throwException = function(comment, opt_message) {
535
- this.$recordAndThrow(new goog.testing.JsUnitException(comment, opt_message));
536
- };
537
-
538
-
539
- /**
540
- * Throws an exception and records that an exception was thrown.
541
- * @param {Object} ex Exception.
542
- * @throws {Object} #ex.
543
- * @protected
544
- */
545
- goog.testing.Mock.prototype.$recordAndThrow = function(ex) {
546
- // If it's an assert exception, record it.
547
- if (ex['isJsUnitException']) {
548
- var testRunner = goog.global['G_testRunner'];
549
- if (testRunner) {
550
- var logTestFailureFunction = testRunner['logTestFailure'];
551
- if (logTestFailureFunction) {
552
- logTestFailureFunction.call(testRunner, ex);
553
- }
554
- }
555
-
556
- if (!this.$threwException_) {
557
- // Only remember first exception thrown.
558
- this.$threwException_ = ex;
559
- }
560
- }
561
- throw ex;
562
- };
563
-
564
-
565
- /**
566
- * Verify that all of the expectations were met. Should be overridden by
567
- * subclasses.
568
- * @override
569
- */
570
- goog.testing.Mock.prototype.$verify = function() {
571
- if (this.$threwException_) {
572
- throw this.$threwException_;
573
- }
574
- };
575
-
576
-
577
- /**
578
- * Verifies that a method call matches an expectation.
579
- * @param {goog.testing.MockExpectation} expectation The expectation to check.
580
- * @param {string} name The name of the called method.
581
- * @param {Array<*>?} args The arguments passed to the mock.
582
- * @return {boolean} Whether the call matches the expectation.
583
- */
584
- goog.testing.Mock.prototype.$verifyCall = function(expectation, name, args) {
585
- if (expectation.name != name) {
586
- return false;
587
- }
588
- var verifierFn =
589
- this.$argumentListVerifiers_.hasOwnProperty(expectation.name) ?
590
- this.$argumentListVerifiers_[expectation.name] :
591
- goog.testing.mockmatchers.flexibleArrayMatcher;
592
-
593
- return verifierFn(expectation.argumentList, args, expectation);
594
- };
595
-
596
-
597
- /**
598
- * Render the provided argument array to a string to help
599
- * clients with debugging tests.
600
- * @param {Array<*>?} args The arguments passed to the mock.
601
- * @return {string} Human-readable string.
602
- */
603
- goog.testing.Mock.prototype.$argumentsAsString = function(args) {
604
- var retVal = [];
605
- for (var i = 0; i < args.length; i++) {
606
- try {
607
- retVal.push(goog.typeOf(args[i]));
608
- } catch (e) {
609
- retVal.push('[unknown]');
610
- }
611
- }
612
- return '(' + retVal.join(', ') + ')';
613
- };
614
-
615
-
616
- /**
617
- * Throw an exception based on an incorrect method call.
618
- * @param {string} name Name of method called.
619
- * @param {Array<*>?} args Arguments passed to the mock.
620
- * @param {goog.testing.MockExpectation=} opt_expectation Expected next call,
621
- * if any.
622
- */
623
- goog.testing.Mock.prototype.$throwCallException = function(name, args,
624
- opt_expectation) {
625
- var errorStringBuffer = [];
626
- var actualArgsString = this.$argumentsAsString(args);
627
- var expectedArgsString = opt_expectation ?
628
- this.$argumentsAsString(opt_expectation.argumentList) : '';
629
-
630
- if (opt_expectation && opt_expectation.name == name) {
631
- errorStringBuffer.push('Bad arguments to ', name, '().\n',
632
- 'Actual: ', actualArgsString, '\n',
633
- 'Expected: ', expectedArgsString, '\n',
634
- opt_expectation.getErrorMessage());
635
- } else {
636
- errorStringBuffer.push('Unexpected call to ', name,
637
- actualArgsString, '.');
638
- if (opt_expectation) {
639
- errorStringBuffer.push('\nNext expected call was to ',
640
- opt_expectation.name,
641
- expectedArgsString);
642
- }
643
- }
644
- this.$throwException(errorStringBuffer.join(''));
645
- };