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,176 +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 Enable mocking of functions not attached to objects
17
- * whether they be global / top-level or anonymous methods / closures.
18
- *
19
- * See the unit tests for usage.
20
- *
21
- */
22
-
23
- goog.provide('goog.testing');
24
- goog.provide('goog.testing.FunctionMock');
25
- goog.provide('goog.testing.GlobalFunctionMock');
26
- goog.provide('goog.testing.MethodMock');
27
-
28
- goog.require('goog.object');
29
- goog.require('goog.testing.LooseMock');
30
- goog.require('goog.testing.Mock');
31
- goog.require('goog.testing.PropertyReplacer');
32
- goog.require('goog.testing.StrictMock');
33
-
34
-
35
- /**
36
- * Class used to mock a function. Useful for mocking closures and anonymous
37
- * callbacks etc. Creates a function object that extends goog.testing.Mock.
38
- * @param {string=} opt_functionName The optional name of the function to mock.
39
- * Set to '[anonymous mocked function]' if not passed in.
40
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
41
- * goog.testing.Mock.STRICT. The default is STRICT.
42
- * @return {!goog.testing.MockInterface} The mocked function.
43
- * @suppress {missingProperties} Mocks do not fit in the type system well.
44
- */
45
- goog.testing.FunctionMock = function(opt_functionName, opt_strictness) {
46
- var fn = function() {
47
- var args = Array.prototype.slice.call(arguments);
48
- args.splice(0, 0, opt_functionName || '[anonymous mocked function]');
49
- return fn.$mockMethod.apply(fn, args);
50
- };
51
- var base = opt_strictness === goog.testing.Mock.LOOSE ?
52
- goog.testing.LooseMock : goog.testing.StrictMock;
53
- goog.object.extend(fn, new base({}));
54
-
55
- return /** @type {!goog.testing.MockInterface} */ (fn);
56
- };
57
-
58
-
59
- /**
60
- * Mocks an existing function. Creates a goog.testing.FunctionMock
61
- * and registers it in the given scope with the name specified by functionName.
62
- * @param {Object} scope The scope of the method to be mocked out.
63
- * @param {string} functionName The name of the function we're going to mock.
64
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
65
- * goog.testing.Mock.STRICT. The default is STRICT.
66
- * @return {!goog.testing.MockInterface} The mocked method.
67
- */
68
- goog.testing.MethodMock = function(scope, functionName, opt_strictness) {
69
- if (!(functionName in scope)) {
70
- throw Error(functionName + ' is not a property of the given scope.');
71
- }
72
-
73
- var fn = goog.testing.FunctionMock(functionName, opt_strictness);
74
-
75
- fn.$propertyReplacer_ = new goog.testing.PropertyReplacer();
76
- fn.$propertyReplacer_.set(scope, functionName, fn);
77
- fn.$tearDown = goog.testing.MethodMock.$tearDown;
78
-
79
- return fn;
80
- };
81
-
82
-
83
- /**
84
- * Resets the global function that we mocked back to its original state.
85
- * @this {goog.testing.MockInterface}
86
- */
87
- goog.testing.MethodMock.$tearDown = function() {
88
- this.$propertyReplacer_.reset();
89
- };
90
-
91
-
92
- /**
93
- * Mocks a global / top-level function. Creates a goog.testing.MethodMock
94
- * in the global scope with the name specified by functionName.
95
- * @param {string} functionName The name of the function we're going to mock.
96
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
97
- * goog.testing.Mock.STRICT. The default is STRICT.
98
- * @return {!goog.testing.MockInterface} The mocked global function.
99
- */
100
- goog.testing.GlobalFunctionMock = function(functionName, opt_strictness) {
101
- return goog.testing.MethodMock(goog.global, functionName, opt_strictness);
102
- };
103
-
104
-
105
- /**
106
- * Convenience method for creating a mock for a function.
107
- * @param {string=} opt_functionName The optional name of the function to mock
108
- * set to '[anonymous mocked function]' if not passed in.
109
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
110
- * goog.testing.Mock.STRICT. The default is STRICT.
111
- * @return {!goog.testing.MockInterface} The mocked function.
112
- */
113
- goog.testing.createFunctionMock = function(opt_functionName, opt_strictness) {
114
- return goog.testing.FunctionMock(opt_functionName, opt_strictness);
115
- };
116
-
117
-
118
- /**
119
- * Convenience method for creating a mock for a method.
120
- * @param {Object} scope The scope of the method to be mocked out.
121
- * @param {string} functionName The name of the function we're going to mock.
122
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
123
- * goog.testing.Mock.STRICT. The default is STRICT.
124
- * @return {!goog.testing.MockInterface} The mocked global function.
125
- */
126
- goog.testing.createMethodMock = function(scope, functionName, opt_strictness) {
127
- return goog.testing.MethodMock(scope, functionName, opt_strictness);
128
- };
129
-
130
-
131
- /**
132
- * Convenience method for creating a mock for a constructor. Copies class
133
- * members to the mock.
134
- *
135
- * <p>When mocking a constructor to return a mocked instance, remember to create
136
- * the instance mock before mocking the constructor. If you mock the constructor
137
- * first, then the mock framework will be unable to examine the prototype chain
138
- * when creating the mock instance.
139
- * @param {Object} scope The scope of the constructor to be mocked out.
140
- * @param {string} constructorName The name of the constructor we're going to
141
- * mock.
142
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
143
- * goog.testing.Mock.STRICT. The default is STRICT.
144
- * @return {!goog.testing.MockInterface} The mocked constructor.
145
- */
146
- goog.testing.createConstructorMock = function(scope, constructorName,
147
- opt_strictness) {
148
- var realConstructor = scope[constructorName];
149
- var constructorMock = goog.testing.MethodMock(scope, constructorName,
150
- opt_strictness);
151
-
152
- // Copy class members from the real constructor to the mock. Do not copy
153
- // the closure superClass_ property (see goog.inherits), the built-in
154
- // prototype property, or properties added to Function.prototype
155
- // (see goog.MODIFY_FUNCTION_PROTOTYPES in closure/base.js).
156
- for (var property in realConstructor) {
157
- if (property != 'superClass_' &&
158
- property != 'prototype' &&
159
- realConstructor.hasOwnProperty(property)) {
160
- constructorMock[property] = realConstructor[property];
161
- }
162
- }
163
- return constructorMock;
164
- };
165
-
166
-
167
- /**
168
- * Convenience method for creating a mocks for a global / top-level function.
169
- * @param {string} functionName The name of the function we're going to mock.
170
- * @param {number=} opt_strictness One of goog.testing.Mock.LOOSE or
171
- * goog.testing.Mock.STRICT. The default is STRICT.
172
- * @return {!goog.testing.MockInterface} The mocked global function.
173
- */
174
- goog.testing.createGlobalFunctionMock = function(functionName, opt_strictness) {
175
- return goog.testing.GlobalFunctionMock(functionName, opt_strictness);
176
- };
@@ -1,162 +0,0 @@
1
- // Copyright 2007 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 Utilities for working with JsUnit. Writes out the JsUnit file
17
- * that needs to be included in every unit test.
18
- *
19
- * Testing code should not have dependencies outside of goog.testing so as to
20
- * reduce the chance of masking missing dependencies.
21
- *
22
- */
23
-
24
- goog.provide('goog.testing.jsunit');
25
-
26
- goog.require('goog.dom.TagName');
27
- goog.require('goog.testing.TestCase');
28
- goog.require('goog.testing.TestRunner');
29
-
30
-
31
- /**
32
- * Base path for JsUnit app files, relative to Closure's base path.
33
- * @type {string}
34
- */
35
- goog.testing.jsunit.BASE_PATH =
36
- '../../third_party/java/jsunit/core/app/';
37
-
38
-
39
- /**
40
- * Filename for the core JS Unit script.
41
- * @type {string}
42
- */
43
- goog.testing.jsunit.CORE_SCRIPT =
44
- goog.testing.jsunit.BASE_PATH + 'jsUnitCore.js';
45
-
46
-
47
- /**
48
- * @define {boolean} If this code is being parsed by JsTestC, we let it disable
49
- * the onload handler to avoid running the test in JsTestC.
50
- */
51
- goog.define('goog.testing.jsunit.AUTO_RUN_ONLOAD', true);
52
-
53
-
54
- /**
55
- * @define {number} Sets a delay in milliseconds after the window onload event
56
- * and running the tests. Used to prevent interference with Selenium and give
57
- * tests with asynchronous operations time to finish loading.
58
- */
59
- goog.define('goog.testing.jsunit.AUTO_RUN_DELAY_IN_MS', 500);
60
-
61
-
62
- (function() {
63
- // Only allow one global test runner to be created on a page.
64
- if (goog.global['G_testRunner'] instanceof goog.testing.TestRunner) {
65
- return;
66
- }
67
-
68
- // Increases the maximum number of stack frames in Google Chrome from the
69
- // default 10 to 50 to get more useful stack traces.
70
- Error.stackTraceLimit = 50;
71
-
72
- // Store a reference to the window's timeout so that it can't be overridden
73
- // by tests.
74
- /** @type {!Function} */
75
- var realTimeout = window.setTimeout;
76
-
77
- // Check for JsUnit's test runner (need to check for >2.2 and <=2.2)
78
- if (top['JsUnitTestManager'] || top['jsUnitTestManager']) {
79
- // Running inside JsUnit so add support code.
80
- var path = goog.basePath + goog.testing.jsunit.CORE_SCRIPT;
81
- document.write('<script type="text/javascript" src="' +
82
- path + '"></' + 'script>');
83
-
84
- } else {
85
-
86
- // Create a test runner.
87
- var tr = new goog.testing.TestRunner();
88
-
89
- // Export it so that it can be queried by Selenium and tests that use a
90
- // compiled test runner.
91
- goog.exportSymbol('G_testRunner', tr);
92
- goog.exportSymbol('G_testRunner.initialize', tr.initialize);
93
- goog.exportSymbol('G_testRunner.isInitialized', tr.isInitialized);
94
- goog.exportSymbol('G_testRunner.isFinished', tr.isFinished);
95
- goog.exportSymbol('G_testRunner.isSuccess', tr.isSuccess);
96
- goog.exportSymbol('G_testRunner.getReport', tr.getReport);
97
- goog.exportSymbol('G_testRunner.getRunTime', tr.getRunTime);
98
- goog.exportSymbol('G_testRunner.getNumFilesLoaded', tr.getNumFilesLoaded);
99
- goog.exportSymbol('G_testRunner.setStrict', tr.setStrict);
100
- goog.exportSymbol('G_testRunner.logTestFailure', tr.logTestFailure);
101
- goog.exportSymbol('G_testRunner.getTestResults', tr.getTestResults);
102
-
103
- // Export debug as a global function for JSUnit compatibility. This just
104
- // calls log on the current test case.
105
- if (!goog.global['debug']) {
106
- goog.exportSymbol('debug', goog.bind(tr.log, tr));
107
- }
108
-
109
- // If the application has defined a global error filter, set it now. This
110
- // allows users who use a base test include to set the error filter before
111
- // the testing code is loaded.
112
- if (goog.global['G_errorFilter']) {
113
- tr.setErrorFilter(goog.global['G_errorFilter']);
114
- }
115
-
116
- // Add an error handler to report errors that may occur during
117
- // initialization of the page.
118
- var onerror = window.onerror;
119
- window.onerror = function(error, url, line) {
120
- // Call any existing onerror handlers.
121
- if (onerror) {
122
- onerror(error, url, line);
123
- }
124
- if (typeof error == 'object') {
125
- // Webkit started passing an event object as the only argument to
126
- // window.onerror. It doesn't contain an error message, url or line
127
- // number. We therefore log as much info as we can.
128
- if (error.target && error.target.tagName == goog.dom.TagName.SCRIPT) {
129
- tr.logError('UNKNOWN ERROR: Script ' + error.target.src);
130
- } else {
131
- tr.logError('UNKNOWN ERROR: No error information available.');
132
- }
133
- } else {
134
- tr.logError('JS ERROR: ' + error + '\nURL: ' + url + '\nLine: ' + line);
135
- }
136
- };
137
-
138
- // Create an onload handler, if the test runner hasn't been initialized then
139
- // no test has been registered with the test runner by the test file. We
140
- // then create a new test case and auto discover any tests in the global
141
- // scope. If this code is being parsed by JsTestC, we let it disable the
142
- // onload handler to avoid running the test in JsTestC.
143
- if (goog.testing.jsunit.AUTO_RUN_ONLOAD) {
144
- var onload = window.onload;
145
- window.onload = function(e) {
146
- // Call any existing onload handlers.
147
- if (onload) {
148
- onload(e);
149
- }
150
- // Wait so that we don't interfere with WebDriver.
151
- realTimeout(function() {
152
- if (!tr.initialized) {
153
- var testCase = new goog.testing.TestCase(document.title);
154
- goog.testing.TestCase.initializeTestRunner(testCase);
155
- }
156
- tr.execute();
157
- }, goog.testing.jsunit.AUTO_RUN_DELAY_IN_MS);
158
- window.onload = null;
159
- };
160
- }
161
- }
162
- })();
@@ -1,242 +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 a loose mock implementation.
17
- */
18
-
19
- goog.provide('goog.testing.LooseExpectationCollection');
20
- goog.provide('goog.testing.LooseMock');
21
-
22
- goog.require('goog.array');
23
- goog.require('goog.structs.Map');
24
- goog.require('goog.testing.Mock');
25
-
26
-
27
-
28
- /**
29
- * This class is an ordered collection of expectations for one method. Since
30
- * the loose mock does most of its verification at the time of $verify, this
31
- * class is necessary to manage the return/throw behavior when the mock is
32
- * being called.
33
- * @constructor
34
- * @final
35
- */
36
- goog.testing.LooseExpectationCollection = function() {
37
- /**
38
- * The list of expectations. All of these should have the same name.
39
- * @type {Array<goog.testing.MockExpectation>}
40
- * @private
41
- */
42
- this.expectations_ = [];
43
- };
44
-
45
-
46
- /**
47
- * Adds an expectation to this collection.
48
- * @param {goog.testing.MockExpectation} expectation The expectation to add.
49
- */
50
- goog.testing.LooseExpectationCollection.prototype.addExpectation =
51
- function(expectation) {
52
- this.expectations_.push(expectation);
53
- };
54
-
55
-
56
- /**
57
- * Gets the list of expectations in this collection.
58
- * @return {Array<goog.testing.MockExpectation>} The array of expectations.
59
- */
60
- goog.testing.LooseExpectationCollection.prototype.getExpectations = function() {
61
- return this.expectations_;
62
- };
63
-
64
-
65
-
66
- /**
67
- * This is a mock that does not care about the order of method calls. As a
68
- * result, it won't throw exceptions until verify() is called. The only
69
- * exception is that if a method is called that has no expectations, then an
70
- * exception will be thrown.
71
- * @param {Object|Function} objectToMock The object that should be mocked, or
72
- * the constructor of an object to mock.
73
- * @param {boolean=} opt_ignoreUnexpectedCalls Whether to ignore unexpected
74
- * calls.
75
- * @param {boolean=} opt_mockStaticMethods An optional argument denoting that
76
- * a mock should be constructed from the static functions of a class.
77
- * @param {boolean=} opt_createProxy An optional argument denoting that
78
- * a proxy for the target mock should be created.
79
- * @constructor
80
- * @extends {goog.testing.Mock}
81
- */
82
- goog.testing.LooseMock = function(objectToMock, opt_ignoreUnexpectedCalls,
83
- opt_mockStaticMethods, opt_createProxy) {
84
- goog.testing.Mock.call(this, objectToMock, opt_mockStaticMethods,
85
- opt_createProxy);
86
-
87
- /**
88
- * A map of method names to a LooseExpectationCollection for that method.
89
- * @type {goog.structs.Map}
90
- * @private
91
- */
92
- this.$expectations_ = new goog.structs.Map();
93
-
94
- /**
95
- * The calls that have been made; we cache them to verify at the end. Each
96
- * element is an array where the first element is the name, and the second
97
- * element is the arguments.
98
- * @type {Array<Array<*>>}
99
- * @private
100
- */
101
- this.$calls_ = [];
102
-
103
- /**
104
- * Whether to ignore unexpected calls.
105
- * @type {boolean}
106
- * @private
107
- */
108
- this.$ignoreUnexpectedCalls_ = !!opt_ignoreUnexpectedCalls;
109
- };
110
- goog.inherits(goog.testing.LooseMock, goog.testing.Mock);
111
-
112
-
113
- /**
114
- * A setter for the ignoreUnexpectedCalls field.
115
- * @param {boolean} ignoreUnexpectedCalls Whether to ignore unexpected calls.
116
- * @return {!goog.testing.LooseMock} This mock object.
117
- */
118
- goog.testing.LooseMock.prototype.$setIgnoreUnexpectedCalls = function(
119
- ignoreUnexpectedCalls) {
120
- this.$ignoreUnexpectedCalls_ = ignoreUnexpectedCalls;
121
- return this;
122
- };
123
-
124
-
125
- /** @override */
126
- goog.testing.LooseMock.prototype.$recordExpectation = function() {
127
- if (!this.$expectations_.containsKey(this.$pendingExpectation.name)) {
128
- this.$expectations_.set(this.$pendingExpectation.name,
129
- new goog.testing.LooseExpectationCollection());
130
- }
131
-
132
- var collection = this.$expectations_.get(this.$pendingExpectation.name);
133
- collection.addExpectation(this.$pendingExpectation);
134
- };
135
-
136
-
137
- /** @override */
138
- goog.testing.LooseMock.prototype.$recordCall = function(name, args) {
139
- if (!this.$expectations_.containsKey(name)) {
140
- if (this.$ignoreUnexpectedCalls_) {
141
- return;
142
- }
143
- this.$throwCallException(name, args);
144
- }
145
-
146
- // Start from the beginning of the expectations for this name,
147
- // and iterate over them until we find an expectation that matches
148
- // and also has calls remaining.
149
- var collection = this.$expectations_.get(name);
150
- var matchingExpectation = null;
151
- var expectations = collection.getExpectations();
152
- for (var i = 0; i < expectations.length; i++) {
153
- var expectation = expectations[i];
154
- if (this.$verifyCall(expectation, name, args)) {
155
- matchingExpectation = expectation;
156
- if (expectation.actualCalls < expectation.maxCalls) {
157
- break;
158
- } // else continue and see if we can find something that does match
159
- }
160
- }
161
- if (matchingExpectation == null) {
162
- this.$throwCallException(name, args, expectation);
163
- }
164
-
165
- matchingExpectation.actualCalls++;
166
- if (matchingExpectation.actualCalls > matchingExpectation.maxCalls) {
167
- this.$throwException('Too many calls to ' + matchingExpectation.name +
168
- '\nExpected: ' + matchingExpectation.maxCalls + ' but was: ' +
169
- matchingExpectation.actualCalls);
170
- }
171
-
172
- this.$calls_.push([name, args]);
173
- return this.$do(matchingExpectation, args);
174
- };
175
-
176
-
177
- /** @override */
178
- goog.testing.LooseMock.prototype.$reset = function() {
179
- goog.testing.LooseMock.superClass_.$reset.call(this);
180
-
181
- this.$expectations_ = new goog.structs.Map();
182
- this.$calls_ = [];
183
- };
184
-
185
-
186
- /** @override */
187
- goog.testing.LooseMock.prototype.$replay = function() {
188
- goog.testing.LooseMock.superClass_.$replay.call(this);
189
-
190
- // Verify that there are no expectations that can never be reached.
191
- // This can't catch every situation, but it is a decent sanity check
192
- // and it's similar to the behavior of EasyMock in java.
193
- var collections = this.$expectations_.getValues();
194
- for (var i = 0; i < collections.length; i++) {
195
- var expectations = collections[i].getExpectations();
196
- for (var j = 0; j < expectations.length; j++) {
197
- var expectation = expectations[j];
198
- // If this expectation can be called infinite times, then
199
- // check if any subsequent expectation has the exact same
200
- // argument list.
201
- if (!isFinite(expectation.maxCalls)) {
202
- for (var k = j + 1; k < expectations.length; k++) {
203
- var laterExpectation = expectations[k];
204
- if (laterExpectation.minCalls > 0 &&
205
- goog.array.equals(expectation.argumentList,
206
- laterExpectation.argumentList)) {
207
- var name = expectation.name;
208
- var argsString = this.$argumentsAsString(expectation.argumentList);
209
- this.$throwException([
210
- 'Expected call to ', name, ' with arguments ', argsString,
211
- ' has an infinite max number of calls; can\'t expect an',
212
- ' identical call later with a positive min number of calls'
213
- ].join(''));
214
- }
215
- }
216
- }
217
- }
218
- }
219
- };
220
-
221
-
222
- /** @override */
223
- goog.testing.LooseMock.prototype.$verify = function() {
224
- goog.testing.LooseMock.superClass_.$verify.call(this);
225
- var collections = this.$expectations_.getValues();
226
-
227
- for (var i = 0; i < collections.length; i++) {
228
- var expectations = collections[i].getExpectations();
229
- for (var j = 0; j < expectations.length; j++) {
230
- var expectation = expectations[j];
231
- if (expectation.actualCalls > expectation.maxCalls) {
232
- this.$throwException('Too many calls to ' + expectation.name +
233
- '\nExpected: ' + expectation.maxCalls + ' but was: ' +
234
- expectation.actualCalls);
235
- } else if (expectation.actualCalls < expectation.minCalls) {
236
- this.$throwException('Not enough calls to ' + expectation.name +
237
- '\nExpected: ' + expectation.minCalls + ' but was: ' +
238
- expectation.actualCalls);
239
- }
240
- }
241
- }
242
- };