selenium-webdriver 2.47.0 → 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 (529) hide show
  1. package/CHANGES.md +96 -0
  2. package/NOTICE +1 -1
  3. package/README.md +57 -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 +80 -114
  12. package/firefox/extension.js +10 -19
  13. package/firefox/index.js +175 -171
  14. package/firefox/profile.js +221 -239
  15. package/http/index.js +396 -77
  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} +89 -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 +6 -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/promise.js +3093 -0
  34. package/lib/safari/client.js +697 -659
  35. package/lib/session.js +79 -0
  36. package/{test/promise_aplus_test.js → lib/symbols.js} +15 -25
  37. package/lib/test/build.js +4 -4
  38. package/lib/test/data/click_tests/disappearing_element.html +62 -0
  39. package/lib/test/data/click_tests/html5_submit_buttons.html +2 -1
  40. package/lib/test/data/click_tests/overlapping_elements.html +70 -0
  41. package/lib/test/data/click_tests/partially_overlapping_elements.html +124 -0
  42. package/lib/test/data/click_tests/wrapped_overlapping_elements.html +13 -0
  43. package/lib/test/data/readOnlyPage.html +3 -1
  44. package/lib/test/data/selectPage.html +18 -2
  45. package/lib/test/data/simpleTest.html +1 -0
  46. package/lib/test/fileserver.js +3 -4
  47. package/lib/test/index.js +13 -4
  48. package/lib/test/resources.js +1 -1
  49. package/lib/until.js +428 -0
  50. package/lib/webdriver.js +2351 -0
  51. package/net/portprober.js +15 -11
  52. package/opera.js +295 -314
  53. package/package.json +6 -5
  54. package/phantomjs.js +135 -140
  55. package/proxy.js +6 -4
  56. package/remote/index.js +234 -219
  57. package/safari.js +319 -310
  58. package/test/chrome/options_test.js +11 -9
  59. package/test/element_finding_test.js +51 -13
  60. package/test/error_test.js +163 -0
  61. package/test/execute_script_test.js +1 -1
  62. package/test/firefox/firefox_test.js +24 -0
  63. package/test/http/http_test.js +354 -43
  64. package/test/http/util_test.js +25 -23
  65. package/test/io_test.js +6 -1
  66. package/test/lib/by_test.js +127 -0
  67. package/test/lib/capabilities_test.js +84 -0
  68. package/test/lib/events_test.js +177 -0
  69. package/test/lib/logging_test.js +272 -0
  70. package/test/lib/promise_aplus_test.js +74 -0
  71. package/test/lib/promise_error_test.js +808 -0
  72. package/test/lib/promise_flow_test.js +2282 -0
  73. package/test/lib/promise_generator_test.js +308 -0
  74. package/test/lib/promise_test.js +996 -0
  75. package/test/lib/testutil.js +90 -0
  76. package/test/lib/until_test.js +436 -0
  77. package/test/lib/webdriver_test.js +2207 -0
  78. package/test/page_loading_test.js +7 -9
  79. package/test/stale_element_test.js +2 -2
  80. package/test/testing/assert_test.js +374 -0
  81. package/test/testing/index_test.js +9 -11
  82. package/testing/assert.js +334 -17
  83. package/testing/index.js +10 -0
  84. package/_base.js +0 -200
  85. package/docs/Changes.html +0 -317
  86. package/docs/class_bot_Error.html +0 -15
  87. package/docs/class_webdriver_ActionSequence.html +0 -115
  88. package/docs/class_webdriver_Alert.html +0 -24
  89. package/docs/class_webdriver_AlertPromise.html +0 -91
  90. package/docs/class_webdriver_Capabilities.html +0 -60
  91. package/docs/class_webdriver_Command.html +0 -15
  92. package/docs/class_webdriver_EventEmitter.html +0 -35
  93. package/docs/class_webdriver_FileDetector.html +0 -21
  94. package/docs/class_webdriver_Locator.html +0 -12
  95. package/docs/class_webdriver_Serializable.html +0 -9
  96. package/docs/class_webdriver_Session.html +0 -13
  97. package/docs/class_webdriver_TouchSequence.html +0 -49
  98. package/docs/class_webdriver_UnhandledAlertError.html +0 -18
  99. package/docs/class_webdriver_WebDriver.html +0 -313
  100. package/docs/class_webdriver_WebDriver_Logs.html +0 -15
  101. package/docs/class_webdriver_WebDriver_Navigation.html +0 -16
  102. package/docs/class_webdriver_WebDriver_Options.html +0 -41
  103. package/docs/class_webdriver_WebDriver_TargetLocator.html +0 -38
  104. package/docs/class_webdriver_WebDriver_Timeouts.html +0 -29
  105. package/docs/class_webdriver_WebDriver_Window.html +0 -27
  106. package/docs/class_webdriver_WebElement.html +0 -216
  107. package/docs/class_webdriver_WebElementPromise.html +0 -266
  108. package/docs/class_webdriver_http_Executor.html +0 -22
  109. package/docs/class_webdriver_http_Request.html +0 -12
  110. package/docs/class_webdriver_http_Response.html +0 -13
  111. package/docs/class_webdriver_logging_Entry.html +0 -15
  112. package/docs/class_webdriver_logging_Level.html +0 -55
  113. package/docs/class_webdriver_logging_LogRecord.html +0 -45
  114. package/docs/class_webdriver_logging_Logger.html +0 -119
  115. package/docs/class_webdriver_logging_Preferences.html +0 -8
  116. package/docs/class_webdriver_promise_CancellationError.html +0 -18
  117. package/docs/class_webdriver_promise_ControlFlow.html +0 -109
  118. package/docs/class_webdriver_promise_Deferred.html +0 -84
  119. package/docs/class_webdriver_promise_Promise.html +0 -74
  120. package/docs/class_webdriver_stacktrace_Frame.html +0 -20
  121. package/docs/class_webdriver_stacktrace_Snapshot.html +0 -6
  122. package/docs/class_webdriver_testing_Assertion.html +0 -99
  123. package/docs/class_webdriver_testing_Assertion_DelegatingMatcher_.html +0 -13
  124. package/docs/class_webdriver_testing_ContainsMatcher.html +0 -11
  125. package/docs/class_webdriver_testing_NegatedAssertion.html +0 -97
  126. package/docs/class_webdriver_until_Condition.html +0 -7
  127. package/docs/dossier.css +0 -1
  128. package/docs/dossier.js +0 -86
  129. package/docs/enum_bot_ErrorCode.html +0 -3
  130. package/docs/enum_bot_Error_State.html +0 -2
  131. package/docs/enum_webdriver_Browser.html +0 -2
  132. package/docs/enum_webdriver_Button.html +0 -2
  133. package/docs/enum_webdriver_Capability.html +0 -33
  134. package/docs/enum_webdriver_CommandName.html +0 -3
  135. package/docs/enum_webdriver_Key.html +0 -12
  136. package/docs/enum_webdriver_logging_Type.html +0 -6
  137. package/docs/enum_webdriver_promise_ControlFlow_EventType.html +0 -9
  138. package/docs/index.html +0 -123
  139. package/docs/interface_webdriver_CommandExecutor.html +0 -9
  140. package/docs/interface_webdriver_http_Client.html +0 -10
  141. package/docs/interface_webdriver_promise_Thenable.html +0 -77
  142. package/docs/module_selenium-webdriver.html +0 -23
  143. package/docs/module_selenium-webdriver__base.html +0 -23
  144. package/docs/module_selenium-webdriver__base_class_Context.html +0 -5
  145. package/docs/module_selenium-webdriver_builder.html +0 -2
  146. package/docs/module_selenium-webdriver_builder_class_Builder.html +0 -138
  147. package/docs/module_selenium-webdriver_chrome.html +0 -90
  148. package/docs/module_selenium-webdriver_chrome_class_Driver.html +0 -280
  149. package/docs/module_selenium-webdriver_chrome_class_Options.html +0 -127
  150. package/docs/module_selenium-webdriver_chrome_class_ServiceBuilder.html +0 -46
  151. package/docs/module_selenium-webdriver_class_ActionSequence.html +0 -115
  152. package/docs/module_selenium-webdriver_class_Builder.html +0 -138
  153. package/docs/module_selenium-webdriver_class_Capabilities.html +0 -60
  154. package/docs/module_selenium-webdriver_class_Command.html +0 -15
  155. package/docs/module_selenium-webdriver_class_EventEmitter.html +0 -35
  156. package/docs/module_selenium-webdriver_class_FileDetector.html +0 -21
  157. package/docs/module_selenium-webdriver_class_Serializable.html +0 -9
  158. package/docs/module_selenium-webdriver_class_Session.html +0 -13
  159. package/docs/module_selenium-webdriver_class_WebDriver.html +0 -313
  160. package/docs/module_selenium-webdriver_class_WebElement.html +0 -216
  161. package/docs/module_selenium-webdriver_class_WebElementPromise.html +0 -266
  162. package/docs/module_selenium-webdriver_enum_Browser.html +0 -2
  163. package/docs/module_selenium-webdriver_enum_Button.html +0 -2
  164. package/docs/module_selenium-webdriver_enum_Capability.html +0 -33
  165. package/docs/module_selenium-webdriver_enum_CommandName.html +0 -3
  166. package/docs/module_selenium-webdriver_enum_Key.html +0 -12
  167. package/docs/module_selenium-webdriver_error.html +0 -4
  168. package/docs/module_selenium-webdriver_error_class_Error.html +0 -15
  169. package/docs/module_selenium-webdriver_error_enum_ErrorCode.html +0 -3
  170. package/docs/module_selenium-webdriver_executors.html +0 -10
  171. package/docs/module_selenium-webdriver_executors_class_DeferredExecutor.html +0 -12
  172. package/docs/module_selenium-webdriver_firefox.html +0 -67
  173. package/docs/module_selenium-webdriver_firefox_binary.html +0 -4
  174. package/docs/module_selenium-webdriver_firefox_binary_class_Binary.html +0 -21
  175. package/docs/module_selenium-webdriver_firefox_class_Binary.html +0 -21
  176. package/docs/module_selenium-webdriver_firefox_class_Driver.html +0 -276
  177. package/docs/module_selenium-webdriver_firefox_class_Options.html +0 -19
  178. package/docs/module_selenium-webdriver_firefox_class_Profile.html +0 -50
  179. package/docs/module_selenium-webdriver_firefox_extension.html +0 -8
  180. package/docs/module_selenium-webdriver_firefox_profile.html +0 -13
  181. package/docs/module_selenium-webdriver_firefox_profile_class_Profile.html +0 -50
  182. package/docs/module_selenium-webdriver_http.html +0 -9
  183. package/docs/module_selenium-webdriver_http_class_Executor.html +0 -22
  184. package/docs/module_selenium-webdriver_http_class_HttpClient.html +0 -16
  185. package/docs/module_selenium-webdriver_http_class_Request.html +0 -12
  186. package/docs/module_selenium-webdriver_http_class_Response.html +0 -13
  187. package/docs/module_selenium-webdriver_http_util.html +0 -17
  188. package/docs/module_selenium-webdriver_ie.html +0 -11
  189. package/docs/module_selenium-webdriver_ie_class_Driver.html +0 -274
  190. package/docs/module_selenium-webdriver_ie_class_Options.html +0 -89
  191. package/docs/module_selenium-webdriver_ie_enum_Level.html +0 -1
  192. package/docs/module_selenium-webdriver_io.html +0 -37
  193. package/docs/module_selenium-webdriver_io_exec.html +0 -6
  194. package/docs/module_selenium-webdriver_namespace_By.html +0 -56
  195. package/docs/module_selenium-webdriver_namespace_error.html +0 -4
  196. package/docs/module_selenium-webdriver_namespace_logging.html +0 -18
  197. package/docs/module_selenium-webdriver_namespace_promise.html +0 -162
  198. package/docs/module_selenium-webdriver_namespace_stacktrace.html +0 -17
  199. package/docs/module_selenium-webdriver_namespace_until.html +0 -82
  200. package/docs/module_selenium-webdriver_net.html +0 -7
  201. package/docs/module_selenium-webdriver_net_portprober.html +0 -12
  202. package/docs/module_selenium-webdriver_opera.html +0 -62
  203. package/docs/module_selenium-webdriver_opera_class_Driver.html +0 -276
  204. package/docs/module_selenium-webdriver_opera_class_Options.html +0 -44
  205. package/docs/module_selenium-webdriver_opera_class_ServiceBuilder.html +0 -35
  206. package/docs/module_selenium-webdriver_phantomjs.html +0 -2
  207. package/docs/module_selenium-webdriver_phantomjs_class_Driver.html +0 -299
  208. package/docs/module_selenium-webdriver_proxy.html +0 -28
  209. package/docs/module_selenium-webdriver_remote.html +0 -8
  210. package/docs/module_selenium-webdriver_remote_class_DriverService.html +0 -32
  211. package/docs/module_selenium-webdriver_remote_class_FileDetector.html +0 -22
  212. package/docs/module_selenium-webdriver_remote_class_SeleniumServer.html +0 -40
  213. package/docs/module_selenium-webdriver_safari.html +0 -9
  214. package/docs/module_selenium-webdriver_safari_class_Driver.html +0 -279
  215. package/docs/module_selenium-webdriver_safari_class_Options.html +0 -23
  216. package/docs/module_selenium-webdriver_testing.html +0 -74
  217. package/docs/module_selenium-webdriver_testing_assert.html +0 -9
  218. package/docs/namespace_bot.html +0 -4
  219. package/docs/namespace_bot_json.html +0 -20
  220. package/docs/namespace_bot_response.html +0 -18
  221. package/docs/namespace_bot_userAgent.html +0 -33
  222. package/docs/namespace_webdriver.html +0 -30
  223. package/docs/namespace_webdriver_By.html +0 -56
  224. package/docs/namespace_webdriver_http.html +0 -6
  225. package/docs/namespace_webdriver_logging.html +0 -70
  226. package/docs/namespace_webdriver_promise.html +0 -165
  227. package/docs/namespace_webdriver_stacktrace.html +0 -17
  228. package/docs/namespace_webdriver_testing.html +0 -7
  229. package/docs/namespace_webdriver_testing_assert.html +0 -9
  230. package/docs/namespace_webdriver_testing_asserts.html +0 -18
  231. package/docs/namespace_webdriver_until.html +0 -82
  232. package/docs/source/_base.js.src.html +0 -1
  233. package/docs/source/builder.js.src.html +0 -1
  234. package/docs/source/chrome.js.src.html +0 -1
  235. package/docs/source/error.js.src.html +0 -1
  236. package/docs/source/executors.js.src.html +0 -1
  237. package/docs/source/firefox/binary.js.src.html +0 -1
  238. package/docs/source/firefox/extension.js.src.html +0 -1
  239. package/docs/source/firefox/index.js.src.html +0 -1
  240. package/docs/source/firefox/profile.js.src.html +0 -1
  241. package/docs/source/http/index.js.src.html +0 -1
  242. package/docs/source/http/util.js.src.html +0 -1
  243. package/docs/source/ie.js.src.html +0 -1
  244. package/docs/source/index.js.src.html +0 -1
  245. package/docs/source/io/exec.js.src.html +0 -1
  246. package/docs/source/io/index.js.src.html +0 -1
  247. package/docs/source/lib/atoms/error.js.src.html +0 -1
  248. package/docs/source/lib/atoms/json.js.src.html +0 -1
  249. package/docs/source/lib/atoms/response.js.src.html +0 -1
  250. package/docs/source/lib/atoms/userAgent.js.src.html +0 -1
  251. package/docs/source/lib/goog/array/array.js.src.html +0 -1
  252. package/docs/source/lib/goog/asserts/asserts.js.src.html +0 -1
  253. package/docs/source/lib/goog/async/freelist.js.src.html +0 -1
  254. package/docs/source/lib/goog/async/nexttick.js.src.html +0 -1
  255. package/docs/source/lib/goog/async/run.js.src.html +0 -1
  256. package/docs/source/lib/goog/async/workqueue.js.src.html +0 -1
  257. package/docs/source/lib/goog/base.js.src.html +0 -1
  258. package/docs/source/lib/goog/debug/debug.js.src.html +0 -1
  259. package/docs/source/lib/goog/debug/entrypointregistry.js.src.html +0 -1
  260. package/docs/source/lib/goog/debug/error.js.src.html +0 -1
  261. package/docs/source/lib/goog/debug/logbuffer.js.src.html +0 -1
  262. package/docs/source/lib/goog/debug/logger.js.src.html +0 -1
  263. package/docs/source/lib/goog/debug/logrecord.js.src.html +0 -1
  264. package/docs/source/lib/goog/deps.js.src.html +0 -1
  265. package/docs/source/lib/goog/disposable/disposable.js.src.html +0 -1
  266. package/docs/source/lib/goog/disposable/idisposable.js.src.html +0 -1
  267. package/docs/source/lib/goog/dom/browserfeature.js.src.html +0 -1
  268. package/docs/source/lib/goog/dom/dom.js.src.html +0 -1
  269. package/docs/source/lib/goog/dom/nodetype.js.src.html +0 -1
  270. package/docs/source/lib/goog/dom/safe.js.src.html +0 -1
  271. package/docs/source/lib/goog/dom/tagname.js.src.html +0 -1
  272. package/docs/source/lib/goog/dom/tags.js.src.html +0 -1
  273. package/docs/source/lib/goog/dom/vendor.js.src.html +0 -1
  274. package/docs/source/lib/goog/events/browserevent.js.src.html +0 -1
  275. package/docs/source/lib/goog/events/browserfeature.js.src.html +0 -1
  276. package/docs/source/lib/goog/events/event.js.src.html +0 -1
  277. package/docs/source/lib/goog/events/eventid.js.src.html +0 -1
  278. package/docs/source/lib/goog/events/events.js.src.html +0 -1
  279. package/docs/source/lib/goog/events/eventtarget.js.src.html +0 -1
  280. package/docs/source/lib/goog/events/eventtype.js.src.html +0 -1
  281. package/docs/source/lib/goog/events/keycodes.js.src.html +0 -1
  282. package/docs/source/lib/goog/events/listenable.js.src.html +0 -1
  283. package/docs/source/lib/goog/events/listener.js.src.html +0 -1
  284. package/docs/source/lib/goog/events/listenermap.js.src.html +0 -1
  285. package/docs/source/lib/goog/fs/url.js.src.html +0 -1
  286. package/docs/source/lib/goog/functions/functions.js.src.html +0 -1
  287. package/docs/source/lib/goog/html/safehtml.js.src.html +0 -1
  288. package/docs/source/lib/goog/html/safescript.js.src.html +0 -1
  289. package/docs/source/lib/goog/html/safestyle.js.src.html +0 -1
  290. package/docs/source/lib/goog/html/safestylesheet.js.src.html +0 -1
  291. package/docs/source/lib/goog/html/safeurl.js.src.html +0 -1
  292. package/docs/source/lib/goog/html/trustedresourceurl.js.src.html +0 -1
  293. package/docs/source/lib/goog/html/uncheckedconversions.js.src.html +0 -1
  294. package/docs/source/lib/goog/i18n/bidi.js.src.html +0 -1
  295. package/docs/source/lib/goog/iter/iter.js.src.html +0 -1
  296. package/docs/source/lib/goog/json/json.js.src.html +0 -1
  297. package/docs/source/lib/goog/labs/testing/assertthat.js.src.html +0 -1
  298. package/docs/source/lib/goog/labs/testing/logicmatcher.js.src.html +0 -1
  299. package/docs/source/lib/goog/labs/testing/matcher.js.src.html +0 -1
  300. package/docs/source/lib/goog/labs/testing/numbermatcher.js.src.html +0 -1
  301. package/docs/source/lib/goog/labs/testing/objectmatcher.js.src.html +0 -1
  302. package/docs/source/lib/goog/labs/testing/stringmatcher.js.src.html +0 -1
  303. package/docs/source/lib/goog/labs/useragent/browser.js.src.html +0 -1
  304. package/docs/source/lib/goog/labs/useragent/engine.js.src.html +0 -1
  305. package/docs/source/lib/goog/labs/useragent/platform.js.src.html +0 -1
  306. package/docs/source/lib/goog/labs/useragent/util.js.src.html +0 -1
  307. package/docs/source/lib/goog/math/box.js.src.html +0 -1
  308. package/docs/source/lib/goog/math/coordinate.js.src.html +0 -1
  309. package/docs/source/lib/goog/math/math.js.src.html +0 -1
  310. package/docs/source/lib/goog/math/rect.js.src.html +0 -1
  311. package/docs/source/lib/goog/math/size.js.src.html +0 -1
  312. package/docs/source/lib/goog/net/wrapperxmlhttpfactory.js.src.html +0 -1
  313. package/docs/source/lib/goog/net/xhrlike.js.src.html +0 -1
  314. package/docs/source/lib/goog/net/xmlhttp.js.src.html +0 -1
  315. package/docs/source/lib/goog/net/xmlhttpfactory.js.src.html +0 -1
  316. package/docs/source/lib/goog/object/object.js.src.html +0 -1
  317. package/docs/source/lib/goog/promise/promise.js.src.html +0 -1
  318. package/docs/source/lib/goog/promise/resolver.js.src.html +0 -1
  319. package/docs/source/lib/goog/promise/thenable.js.src.html +0 -1
  320. package/docs/source/lib/goog/reflect/reflect.js.src.html +0 -1
  321. package/docs/source/lib/goog/string/const.js.src.html +0 -1
  322. package/docs/source/lib/goog/string/string.js.src.html +0 -1
  323. package/docs/source/lib/goog/string/typedstring.js.src.html +0 -1
  324. package/docs/source/lib/goog/structs/collection.js.src.html +0 -1
  325. package/docs/source/lib/goog/structs/map.js.src.html +0 -1
  326. package/docs/source/lib/goog/structs/set.js.src.html +0 -1
  327. package/docs/source/lib/goog/structs/structs.js.src.html +0 -1
  328. package/docs/source/lib/goog/style/style.js.src.html +0 -1
  329. package/docs/source/lib/goog/testing/asserts.js.src.html +0 -1
  330. package/docs/source/lib/goog/testing/events/events.js.src.html +0 -1
  331. package/docs/source/lib/goog/testing/functionmock.js.src.html +0 -1
  332. package/docs/source/lib/goog/testing/jsunit.js.src.html +0 -1
  333. package/docs/source/lib/goog/testing/loosemock.js.src.html +0 -1
  334. package/docs/source/lib/goog/testing/mock.js.src.html +0 -1
  335. package/docs/source/lib/goog/testing/mockclock.js.src.html +0 -1
  336. package/docs/source/lib/goog/testing/mockcontrol.js.src.html +0 -1
  337. package/docs/source/lib/goog/testing/mockinterface.js.src.html +0 -1
  338. package/docs/source/lib/goog/testing/mockmatchers.js.src.html +0 -1
  339. package/docs/source/lib/goog/testing/objectpropertystring.js.src.html +0 -1
  340. package/docs/source/lib/goog/testing/propertyreplacer.js.src.html +0 -1
  341. package/docs/source/lib/goog/testing/recordfunction.js.src.html +0 -1
  342. package/docs/source/lib/goog/testing/stacktrace.js.src.html +0 -1
  343. package/docs/source/lib/goog/testing/strictmock.js.src.html +0 -1
  344. package/docs/source/lib/goog/testing/testcase.js.src.html +0 -1
  345. package/docs/source/lib/goog/testing/testrunner.js.src.html +0 -1
  346. package/docs/source/lib/goog/testing/watchers.js.src.html +0 -1
  347. package/docs/source/lib/goog/uri/uri.js.src.html +0 -1
  348. package/docs/source/lib/goog/uri/utils.js.src.html +0 -1
  349. package/docs/source/lib/goog/useragent/product.js.src.html +0 -1
  350. package/docs/source/lib/goog/useragent/product_isversion.js.src.html +0 -1
  351. package/docs/source/lib/goog/useragent/useragent.js.src.html +0 -1
  352. package/docs/source/lib/webdriver/actionsequence.js.src.html +0 -1
  353. package/docs/source/lib/webdriver/button.js.src.html +0 -1
  354. package/docs/source/lib/webdriver/capabilities.js.src.html +0 -1
  355. package/docs/source/lib/webdriver/command.js.src.html +0 -1
  356. package/docs/source/lib/webdriver/events.js.src.html +0 -1
  357. package/docs/source/lib/webdriver/http/http.js.src.html +0 -1
  358. package/docs/source/lib/webdriver/key.js.src.html +0 -1
  359. package/docs/source/lib/webdriver/locators.js.src.html +0 -1
  360. package/docs/source/lib/webdriver/logging.js.src.html +0 -1
  361. package/docs/source/lib/webdriver/promise.js.src.html +0 -1
  362. package/docs/source/lib/webdriver/serializable.js.src.html +0 -1
  363. package/docs/source/lib/webdriver/session.js.src.html +0 -1
  364. package/docs/source/lib/webdriver/stacktrace.js.src.html +0 -1
  365. package/docs/source/lib/webdriver/testing/asserts.js.src.html +0 -1
  366. package/docs/source/lib/webdriver/touchsequence.js.src.html +0 -1
  367. package/docs/source/lib/webdriver/until.js.src.html +0 -1
  368. package/docs/source/lib/webdriver/webdriver.js.src.html +0 -1
  369. package/docs/source/net/index.js.src.html +0 -1
  370. package/docs/source/net/portprober.js.src.html +0 -1
  371. package/docs/source/opera.js.src.html +0 -1
  372. package/docs/source/phantomjs.js.src.html +0 -1
  373. package/docs/source/proxy.js.src.html +0 -1
  374. package/docs/source/remote/index.js.src.html +0 -1
  375. package/docs/source/safari.js.src.html +0 -1
  376. package/docs/source/testing/assert.js.src.html +0 -1
  377. package/docs/source/testing/index.js.src.html +0 -1
  378. package/docs/types.js +0 -1
  379. package/lib/atoms/error.js +0 -202
  380. package/lib/atoms/json.js +0 -80
  381. package/lib/atoms/response.js +0 -110
  382. package/lib/atoms/userAgent.js +0 -257
  383. package/lib/goog/LICENSE +0 -176
  384. package/lib/goog/array/array.js +0 -1655
  385. package/lib/goog/asserts/asserts.js +0 -365
  386. package/lib/goog/async/freelist.js +0 -88
  387. package/lib/goog/async/nexttick.js +0 -241
  388. package/lib/goog/async/run.js +0 -139
  389. package/lib/goog/async/workqueue.js +0 -139
  390. package/lib/goog/base.js +0 -2547
  391. package/lib/goog/debug/debug.js +0 -653
  392. package/lib/goog/debug/entrypointregistry.js +0 -158
  393. package/lib/goog/debug/error.js +0 -63
  394. package/lib/goog/debug/logbuffer.js +0 -148
  395. package/lib/goog/debug/logger.js +0 -873
  396. package/lib/goog/debug/logrecord.js +0 -242
  397. package/lib/goog/deps.js +0 -151
  398. package/lib/goog/disposable/disposable.js +0 -307
  399. package/lib/goog/disposable/idisposable.js +0 -45
  400. package/lib/goog/dom/browserfeature.js +0 -72
  401. package/lib/goog/dom/dom.js +0 -2995
  402. package/lib/goog/dom/nodetype.js +0 -48
  403. package/lib/goog/dom/safe.js +0 -347
  404. package/lib/goog/dom/tagname.js +0 -160
  405. package/lib/goog/dom/tags.js +0 -42
  406. package/lib/goog/dom/vendor.js +0 -96
  407. package/lib/goog/events/browserevent.js +0 -386
  408. package/lib/goog/events/browserfeature.js +0 -85
  409. package/lib/goog/events/event.js +0 -143
  410. package/lib/goog/events/eventid.js +0 -47
  411. package/lib/goog/events/events.js +0 -984
  412. package/lib/goog/events/eventtarget.js +0 -394
  413. package/lib/goog/events/eventtype.js +0 -233
  414. package/lib/goog/events/keycodes.js +0 -420
  415. package/lib/goog/events/listenable.js +0 -335
  416. package/lib/goog/events/listener.js +0 -131
  417. package/lib/goog/events/listenermap.js +0 -308
  418. package/lib/goog/fs/url.js +0 -105
  419. package/lib/goog/functions/functions.js +0 -332
  420. package/lib/goog/html/safehtml.js +0 -756
  421. package/lib/goog/html/safescript.js +0 -234
  422. package/lib/goog/html/safestyle.js +0 -442
  423. package/lib/goog/html/safestylesheet.js +0 -276
  424. package/lib/goog/html/safeurl.js +0 -431
  425. package/lib/goog/html/trustedresourceurl.js +0 -224
  426. package/lib/goog/html/uncheckedconversions.js +0 -231
  427. package/lib/goog/i18n/bidi.js +0 -908
  428. package/lib/goog/iter/iter.js +0 -1305
  429. package/lib/goog/json/json.js +0 -365
  430. package/lib/goog/labs/testing/assertthat.js +0 -58
  431. package/lib/goog/labs/testing/logicmatcher.js +0 -212
  432. package/lib/goog/labs/testing/matcher.js +0 -80
  433. package/lib/goog/labs/testing/numbermatcher.js +0 -346
  434. package/lib/goog/labs/testing/objectmatcher.js +0 -317
  435. package/lib/goog/labs/testing/stringmatcher.js +0 -415
  436. package/lib/goog/labs/useragent/browser.js +0 -327
  437. package/lib/goog/labs/useragent/engine.js +0 -160
  438. package/lib/goog/labs/useragent/platform.js +0 -160
  439. package/lib/goog/labs/useragent/util.js +0 -148
  440. package/lib/goog/math/box.js +0 -389
  441. package/lib/goog/math/coordinate.js +0 -268
  442. package/lib/goog/math/math.js +0 -451
  443. package/lib/goog/math/rect.js +0 -476
  444. package/lib/goog/math/size.js +0 -227
  445. package/lib/goog/net/wrapperxmlhttpfactory.js +0 -71
  446. package/lib/goog/net/xhrlike.js +0 -124
  447. package/lib/goog/net/xmlhttp.js +0 -246
  448. package/lib/goog/net/xmlhttpfactory.js +0 -67
  449. package/lib/goog/object/object.js +0 -686
  450. package/lib/goog/promise/promise.js +0 -1310
  451. package/lib/goog/promise/resolver.js +0 -48
  452. package/lib/goog/promise/thenable.js +0 -126
  453. package/lib/goog/reflect/reflect.js +0 -78
  454. package/lib/goog/string/const.js +0 -182
  455. package/lib/goog/string/string.js +0 -1565
  456. package/lib/goog/string/typedstring.js +0 -48
  457. package/lib/goog/structs/collection.js +0 -56
  458. package/lib/goog/structs/map.js +0 -456
  459. package/lib/goog/structs/set.js +0 -279
  460. package/lib/goog/structs/structs.js +0 -354
  461. package/lib/goog/style/style.js +0 -2054
  462. package/lib/goog/testing/asserts.js +0 -1265
  463. package/lib/goog/testing/events/events.js +0 -727
  464. package/lib/goog/testing/functionmock.js +0 -176
  465. package/lib/goog/testing/jsunit.js +0 -162
  466. package/lib/goog/testing/loosemock.js +0 -242
  467. package/lib/goog/testing/mock.js +0 -645
  468. package/lib/goog/testing/mockclock.js +0 -617
  469. package/lib/goog/testing/mockcontrol.js +0 -220
  470. package/lib/goog/testing/mockinterface.js +0 -45
  471. package/lib/goog/testing/mockmatchers.js +0 -400
  472. package/lib/goog/testing/objectpropertystring.js +0 -68
  473. package/lib/goog/testing/propertyreplacer.js +0 -245
  474. package/lib/goog/testing/recordfunction.js +0 -215
  475. package/lib/goog/testing/stacktrace.js +0 -594
  476. package/lib/goog/testing/strictmock.js +0 -130
  477. package/lib/goog/testing/testcase.js +0 -1569
  478. package/lib/goog/testing/testrunner.js +0 -440
  479. package/lib/goog/testing/watchers.js +0 -46
  480. package/lib/goog/uri/uri.js +0 -1507
  481. package/lib/goog/uri/utils.js +0 -1116
  482. package/lib/goog/useragent/product.js +0 -175
  483. package/lib/goog/useragent/product_isversion.js +0 -143
  484. package/lib/goog/useragent/useragent.js +0 -538
  485. package/lib/webdriver/actionsequence.js +0 -356
  486. package/lib/webdriver/builder.js +0 -208
  487. package/lib/webdriver/capabilities.js +0 -411
  488. package/lib/webdriver/events.js +0 -179
  489. package/lib/webdriver/firefoxdomexecutor.js +0 -175
  490. package/lib/webdriver/http/corsclient.js +0 -133
  491. package/lib/webdriver/http/http.js +0 -523
  492. package/lib/webdriver/http/xhrclient.js +0 -67
  493. package/lib/webdriver/locators.js +0 -257
  494. package/lib/webdriver/logging.js +0 -347
  495. package/lib/webdriver/promise.js +0 -2609
  496. package/lib/webdriver/serializable.js +0 -41
  497. package/lib/webdriver/session.js +0 -74
  498. package/lib/webdriver/stacktrace.js +0 -619
  499. package/lib/webdriver/test/builder_test.js +0 -53
  500. package/lib/webdriver/test/capabilities_test.js +0 -72
  501. package/lib/webdriver/test/events_test.js +0 -203
  502. package/lib/webdriver/test/http/corsclient_test.js +0 -151
  503. package/lib/webdriver/test/http/http_test.js +0 -428
  504. package/lib/webdriver/test/http/xhrclient_test.js +0 -196
  505. package/lib/webdriver/test/locators_test.js +0 -59
  506. package/lib/webdriver/test/logging_test.js +0 -85
  507. package/lib/webdriver/test/promise_error_test.js +0 -719
  508. package/lib/webdriver/test/promise_flow_test.js +0 -1957
  509. package/lib/webdriver/test/promise_generator_test.js +0 -251
  510. package/lib/webdriver/test/promise_test.js +0 -1981
  511. package/lib/webdriver/test/stacktrace_test.js +0 -480
  512. package/lib/webdriver/test/test_bootstrap.js +0 -67
  513. package/lib/webdriver/test/testing/asserts_test.js +0 -117
  514. package/lib/webdriver/test/testing/client_test.js +0 -88
  515. package/lib/webdriver/test/testing/testcase_test.js +0 -229
  516. package/lib/webdriver/test/testutil.js +0 -209
  517. package/lib/webdriver/test/testutil_test.js +0 -104
  518. package/lib/webdriver/test/until_test.js +0 -411
  519. package/lib/webdriver/test/webdriver_generator_test.js +0 -92
  520. package/lib/webdriver/test/webdriver_test.js +0 -2369
  521. package/lib/webdriver/testing/asserts.js +0 -487
  522. package/lib/webdriver/testing/client.js +0 -179
  523. package/lib/webdriver/testing/jsunit.js +0 -363
  524. package/lib/webdriver/testing/testcase.js +0 -168
  525. package/lib/webdriver/testing/window.js +0 -244
  526. package/lib/webdriver/touchsequence.js +0 -248
  527. package/lib/webdriver/until.js +0 -412
  528. package/lib/webdriver/webdriver.js +0 -2492
  529. 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 verfifier 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
- };