selenium-webdriver 2.48.2 → 2.53.3
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.
- package/CHANGES.md +116 -0
- package/NOTICE +1 -1
- package/README.md +59 -9
- package/builder.js +375 -358
- package/chrome.js +549 -586
- package/edge.js +378 -0
- package/error.js +9 -6
- package/example/google_search.js +1 -1
- package/example/google_search_generator.js +2 -4
- package/example/logging.js +6 -2
- package/example/sample.js +21 -0
- package/executors.js +11 -27
- package/firefox/binary.js +149 -98
- package/firefox/extension.js +15 -19
- package/firefox/index.js +256 -163
- package/firefox/profile.js +223 -243
- package/http/index.js +487 -81
- package/http/util.js +40 -36
- package/ie.js +288 -309
- package/index.js +34 -125
- package/io/exec.js +58 -39
- package/io/index.js +72 -60
- package/lib/README +4 -0
- package/lib/actions.js +596 -0
- package/lib/by.js +277 -0
- package/lib/capabilities.js +450 -0
- package/lib/{webdriver/command.js → command.js} +91 -72
- package/lib/{webdriver/button.js → devmode.js} +13 -8
- package/lib/error.js +690 -0
- package/lib/events.js +212 -0
- package/lib/firefox/amd64/libnoblur64.so +0 -0
- package/lib/firefox/i386/libnoblur.so +0 -0
- package/lib/firefox/webdriver.json +5 -1
- package/lib/firefox/webdriver.xpi +0 -0
- package/lib/{webdriver/key.js → input.js} +84 -2
- package/lib/logging.js +670 -0
- package/lib/{webdriver/promise.js → promise.js} +817 -644
- package/lib/safari/client.js +266 -214
- package/lib/session.js +80 -0
- package/lib/{webdriver/serializable.js → symbols.js} +16 -19
- package/lib/test/build.js +4 -4
- package/lib/test/data/click_tests/html5_submit_buttons.html +2 -1
- package/lib/test/data/click_tests/overlapping_elements.html +15 -4
- package/lib/test/data/click_tests/partially_overlapping_elements.html +124 -0
- package/lib/test/data/click_tests/wrapped_overlapping_elements.html +13 -0
- package/lib/test/data/hidden_partially.html +45 -0
- package/lib/test/data/readOnlyPage.html +1 -1
- package/lib/test/data/selectPage.html +18 -2
- package/lib/test/fileserver.js +3 -4
- package/lib/test/index.js +7 -3
- package/lib/test/resources.js +1 -1
- package/lib/until.js +376 -0
- package/lib/webdriver.js +2440 -0
- package/net/index.js +4 -0
- package/net/portprober.js +16 -12
- package/opera.js +295 -314
- package/package.json +6 -5
- package/phantomjs.js +144 -147
- package/proxy.js +10 -6
- package/remote/index.js +289 -238
- package/safari.js +326 -311
- package/test/chrome/options_test.js +11 -9
- package/test/element_finding_test.js +51 -13
- package/test/execute_script_test.js +17 -3
- package/test/firefox/firefox_test.js +0 -32
- package/test/http/http_test.js +671 -61
- package/test/http/util_test.js +25 -23
- package/test/io_test.js +67 -1
- package/test/lib/by_test.js +139 -0
- package/test/lib/capabilities_test.js +111 -0
- package/test/lib/error_test.js +325 -0
- package/test/lib/events_test.js +177 -0
- package/test/lib/logging_test.js +272 -0
- package/test/{promise_aplus_test.js → lib/promise_aplus_test.js} +4 -13
- package/test/lib/promise_error_test.js +808 -0
- package/test/lib/promise_flow_test.js +2282 -0
- package/test/lib/promise_generator_test.js +308 -0
- package/test/lib/promise_test.js +996 -0
- package/test/lib/testutil.js +90 -0
- package/test/lib/until_test.js +400 -0
- package/test/lib/webdriver_test.js +2157 -0
- package/test/page_loading_test.js +7 -9
- package/test/remote_test.js +50 -3
- package/test/session_test.js +53 -0
- package/test/stale_element_test.js +2 -2
- package/test/testing/assert_test.js +374 -0
- package/test/testing/index_test.js +9 -11
- package/testing/assert.js +334 -17
- package/testing/index.js +12 -2
- package/_base.js +0 -200
- package/docs/Changes.html +0 -356
- package/docs/class_bot_Error.html +0 -15
- package/docs/class_webdriver_ActionSequence.html +0 -115
- package/docs/class_webdriver_Alert.html +0 -24
- package/docs/class_webdriver_AlertPromise.html +0 -92
- package/docs/class_webdriver_Capabilities.html +0 -60
- package/docs/class_webdriver_Command.html +0 -15
- package/docs/class_webdriver_EventEmitter.html +0 -35
- package/docs/class_webdriver_FileDetector.html +0 -21
- package/docs/class_webdriver_Locator.html +0 -12
- package/docs/class_webdriver_Serializable.html +0 -9
- package/docs/class_webdriver_Session.html +0 -13
- package/docs/class_webdriver_TouchSequence.html +0 -49
- package/docs/class_webdriver_UnhandledAlertError.html +0 -18
- package/docs/class_webdriver_WebDriver.html +0 -313
- package/docs/class_webdriver_WebDriver_Logs.html +0 -15
- package/docs/class_webdriver_WebDriver_Navigation.html +0 -16
- package/docs/class_webdriver_WebDriver_Options.html +0 -41
- package/docs/class_webdriver_WebDriver_TargetLocator.html +0 -38
- package/docs/class_webdriver_WebDriver_Timeouts.html +0 -29
- package/docs/class_webdriver_WebDriver_Window.html +0 -27
- package/docs/class_webdriver_WebElement.html +0 -223
- package/docs/class_webdriver_WebElementPromise.html +0 -274
- package/docs/class_webdriver_http_Executor.html +0 -22
- package/docs/class_webdriver_http_Request.html +0 -12
- package/docs/class_webdriver_http_Response.html +0 -13
- package/docs/class_webdriver_logging_Entry.html +0 -15
- package/docs/class_webdriver_logging_Level.html +0 -55
- package/docs/class_webdriver_logging_LogRecord.html +0 -45
- package/docs/class_webdriver_logging_Logger.html +0 -119
- package/docs/class_webdriver_logging_Preferences.html +0 -8
- package/docs/class_webdriver_promise_CancellationError.html +0 -17
- package/docs/class_webdriver_promise_ControlFlow.html +0 -153
- package/docs/class_webdriver_promise_Deferred.html +0 -84
- package/docs/class_webdriver_promise_MultipleUnhandledRejectionError.html +0 -14
- package/docs/class_webdriver_promise_Promise.html +0 -75
- package/docs/class_webdriver_stacktrace_Frame.html +0 -20
- package/docs/class_webdriver_stacktrace_Snapshot.html +0 -6
- package/docs/class_webdriver_testing_Assertion.html +0 -99
- package/docs/class_webdriver_testing_Assertion_DelegatingMatcher_.html +0 -13
- package/docs/class_webdriver_testing_ContainsMatcher.html +0 -11
- package/docs/class_webdriver_testing_NegatedAssertion.html +0 -97
- package/docs/class_webdriver_until_Condition.html +0 -7
- package/docs/dossier.css +0 -1
- package/docs/dossier.js +0 -86
- package/docs/enum_bot_ErrorCode.html +0 -3
- package/docs/enum_bot_Error_State.html +0 -2
- package/docs/enum_webdriver_Browser.html +0 -2
- package/docs/enum_webdriver_Button.html +0 -2
- package/docs/enum_webdriver_Capability.html +0 -33
- package/docs/enum_webdriver_CommandName.html +0 -3
- package/docs/enum_webdriver_Key.html +0 -12
- package/docs/enum_webdriver_logging_Type.html +0 -6
- package/docs/enum_webdriver_promise_ControlFlow_EventType.html +0 -9
- package/docs/index.html +0 -125
- package/docs/interface_webdriver_CommandExecutor.html +0 -9
- package/docs/interface_webdriver_http_Client.html +0 -10
- package/docs/interface_webdriver_promise_Thenable.html +0 -77
- package/docs/module_selenium-webdriver.html +0 -23
- package/docs/module_selenium-webdriver__base.html +0 -23
- package/docs/module_selenium-webdriver__base_class_Context.html +0 -5
- package/docs/module_selenium-webdriver_builder.html +0 -2
- package/docs/module_selenium-webdriver_builder_class_Builder.html +0 -138
- package/docs/module_selenium-webdriver_chrome.html +0 -90
- package/docs/module_selenium-webdriver_chrome_class_Driver.html +0 -280
- package/docs/module_selenium-webdriver_chrome_class_Options.html +0 -127
- package/docs/module_selenium-webdriver_chrome_class_ServiceBuilder.html +0 -46
- package/docs/module_selenium-webdriver_class_ActionSequence.html +0 -115
- package/docs/module_selenium-webdriver_class_Builder.html +0 -138
- package/docs/module_selenium-webdriver_class_Capabilities.html +0 -60
- package/docs/module_selenium-webdriver_class_Command.html +0 -15
- package/docs/module_selenium-webdriver_class_EventEmitter.html +0 -35
- package/docs/module_selenium-webdriver_class_FileDetector.html +0 -21
- package/docs/module_selenium-webdriver_class_Serializable.html +0 -9
- package/docs/module_selenium-webdriver_class_Session.html +0 -13
- package/docs/module_selenium-webdriver_class_WebDriver.html +0 -313
- package/docs/module_selenium-webdriver_class_WebElement.html +0 -223
- package/docs/module_selenium-webdriver_class_WebElementPromise.html +0 -274
- package/docs/module_selenium-webdriver_enum_Browser.html +0 -2
- package/docs/module_selenium-webdriver_enum_Button.html +0 -2
- package/docs/module_selenium-webdriver_enum_Capability.html +0 -33
- package/docs/module_selenium-webdriver_enum_CommandName.html +0 -3
- package/docs/module_selenium-webdriver_enum_Key.html +0 -12
- package/docs/module_selenium-webdriver_error.html +0 -4
- package/docs/module_selenium-webdriver_error_class_Error.html +0 -15
- package/docs/module_selenium-webdriver_error_enum_ErrorCode.html +0 -3
- package/docs/module_selenium-webdriver_executors.html +0 -10
- package/docs/module_selenium-webdriver_executors_class_DeferredExecutor.html +0 -12
- package/docs/module_selenium-webdriver_firefox.html +0 -68
- package/docs/module_selenium-webdriver_firefox_binary.html +0 -5
- package/docs/module_selenium-webdriver_firefox_binary_class_Binary.html +0 -20
- package/docs/module_selenium-webdriver_firefox_class_Binary.html +0 -20
- package/docs/module_selenium-webdriver_firefox_class_Driver.html +0 -276
- package/docs/module_selenium-webdriver_firefox_class_Options.html +0 -19
- package/docs/module_selenium-webdriver_firefox_class_Profile.html +0 -50
- package/docs/module_selenium-webdriver_firefox_extension.html +0 -8
- package/docs/module_selenium-webdriver_firefox_profile.html +0 -13
- package/docs/module_selenium-webdriver_firefox_profile_class_Profile.html +0 -50
- package/docs/module_selenium-webdriver_http.html +0 -9
- package/docs/module_selenium-webdriver_http_class_Executor.html +0 -22
- package/docs/module_selenium-webdriver_http_class_HttpClient.html +0 -16
- package/docs/module_selenium-webdriver_http_class_Request.html +0 -12
- package/docs/module_selenium-webdriver_http_class_Response.html +0 -13
- package/docs/module_selenium-webdriver_http_util.html +0 -17
- package/docs/module_selenium-webdriver_ie.html +0 -11
- package/docs/module_selenium-webdriver_ie_class_Driver.html +0 -274
- package/docs/module_selenium-webdriver_ie_class_Options.html +0 -89
- package/docs/module_selenium-webdriver_ie_enum_Level.html +0 -1
- package/docs/module_selenium-webdriver_io.html +0 -37
- package/docs/module_selenium-webdriver_io_exec.html +0 -6
- package/docs/module_selenium-webdriver_namespace_By.html +0 -56
- package/docs/module_selenium-webdriver_namespace_error.html +0 -4
- package/docs/module_selenium-webdriver_namespace_logging.html +0 -18
- package/docs/module_selenium-webdriver_namespace_promise.html +0 -163
- package/docs/module_selenium-webdriver_namespace_stacktrace.html +0 -17
- package/docs/module_selenium-webdriver_namespace_until.html +0 -82
- package/docs/module_selenium-webdriver_net.html +0 -7
- package/docs/module_selenium-webdriver_net_portprober.html +0 -12
- package/docs/module_selenium-webdriver_opera.html +0 -62
- package/docs/module_selenium-webdriver_opera_class_Driver.html +0 -276
- package/docs/module_selenium-webdriver_opera_class_Options.html +0 -44
- package/docs/module_selenium-webdriver_opera_class_ServiceBuilder.html +0 -35
- package/docs/module_selenium-webdriver_phantomjs.html +0 -2
- package/docs/module_selenium-webdriver_phantomjs_class_Driver.html +0 -299
- package/docs/module_selenium-webdriver_proxy.html +0 -28
- package/docs/module_selenium-webdriver_remote.html +0 -8
- package/docs/module_selenium-webdriver_remote_class_DriverService.html +0 -32
- package/docs/module_selenium-webdriver_remote_class_FileDetector.html +0 -22
- package/docs/module_selenium-webdriver_remote_class_SeleniumServer.html +0 -41
- package/docs/module_selenium-webdriver_safari.html +0 -9
- package/docs/module_selenium-webdriver_safari_class_Driver.html +0 -279
- package/docs/module_selenium-webdriver_safari_class_Options.html +0 -23
- package/docs/module_selenium-webdriver_testing.html +0 -74
- package/docs/module_selenium-webdriver_testing_assert.html +0 -9
- package/docs/namespace_bot.html +0 -4
- package/docs/namespace_bot_json.html +0 -20
- package/docs/namespace_bot_response.html +0 -18
- package/docs/namespace_bot_userAgent.html +0 -33
- package/docs/namespace_webdriver.html +0 -30
- package/docs/namespace_webdriver_By.html +0 -56
- package/docs/namespace_webdriver_http.html +0 -6
- package/docs/namespace_webdriver_logging.html +0 -70
- package/docs/namespace_webdriver_promise.html +0 -688
- package/docs/namespace_webdriver_stacktrace.html +0 -17
- package/docs/namespace_webdriver_testing.html +0 -7
- package/docs/namespace_webdriver_testing_assert.html +0 -9
- package/docs/namespace_webdriver_testing_asserts.html +0 -18
- package/docs/namespace_webdriver_until.html +0 -82
- package/docs/source/_base.js.src.html +0 -1
- package/docs/source/builder.js.src.html +0 -1
- package/docs/source/chrome.js.src.html +0 -1
- package/docs/source/error.js.src.html +0 -1
- package/docs/source/executors.js.src.html +0 -1
- package/docs/source/firefox/binary.js.src.html +0 -1
- package/docs/source/firefox/extension.js.src.html +0 -1
- package/docs/source/firefox/index.js.src.html +0 -1
- package/docs/source/firefox/profile.js.src.html +0 -1
- package/docs/source/http/index.js.src.html +0 -1
- package/docs/source/http/util.js.src.html +0 -1
- package/docs/source/ie.js.src.html +0 -1
- package/docs/source/index.js.src.html +0 -1
- package/docs/source/io/exec.js.src.html +0 -1
- package/docs/source/io/index.js.src.html +0 -1
- package/docs/source/lib/atoms/error.js.src.html +0 -1
- package/docs/source/lib/atoms/json.js.src.html +0 -1
- package/docs/source/lib/atoms/response.js.src.html +0 -1
- package/docs/source/lib/atoms/userAgent.js.src.html +0 -1
- package/docs/source/lib/goog/array/array.js.src.html +0 -1
- package/docs/source/lib/goog/asserts/asserts.js.src.html +0 -1
- package/docs/source/lib/goog/async/freelist.js.src.html +0 -1
- package/docs/source/lib/goog/async/nexttick.js.src.html +0 -1
- package/docs/source/lib/goog/async/run.js.src.html +0 -1
- package/docs/source/lib/goog/async/workqueue.js.src.html +0 -1
- package/docs/source/lib/goog/base.js.src.html +0 -1
- package/docs/source/lib/goog/debug/debug.js.src.html +0 -1
- package/docs/source/lib/goog/debug/entrypointregistry.js.src.html +0 -1
- package/docs/source/lib/goog/debug/error.js.src.html +0 -1
- package/docs/source/lib/goog/debug/logbuffer.js.src.html +0 -1
- package/docs/source/lib/goog/debug/logger.js.src.html +0 -1
- package/docs/source/lib/goog/debug/logrecord.js.src.html +0 -1
- package/docs/source/lib/goog/deps.js.src.html +0 -1
- package/docs/source/lib/goog/disposable/disposable.js.src.html +0 -1
- package/docs/source/lib/goog/disposable/idisposable.js.src.html +0 -1
- package/docs/source/lib/goog/dom/browserfeature.js.src.html +0 -1
- package/docs/source/lib/goog/dom/dom.js.src.html +0 -1
- package/docs/source/lib/goog/dom/nodetype.js.src.html +0 -1
- package/docs/source/lib/goog/dom/safe.js.src.html +0 -1
- package/docs/source/lib/goog/dom/tagname.js.src.html +0 -1
- package/docs/source/lib/goog/dom/tags.js.src.html +0 -1
- package/docs/source/lib/goog/dom/vendor.js.src.html +0 -1
- package/docs/source/lib/goog/events/browserevent.js.src.html +0 -1
- package/docs/source/lib/goog/events/browserfeature.js.src.html +0 -1
- package/docs/source/lib/goog/events/event.js.src.html +0 -1
- package/docs/source/lib/goog/events/eventid.js.src.html +0 -1
- package/docs/source/lib/goog/events/events.js.src.html +0 -1
- package/docs/source/lib/goog/events/eventtarget.js.src.html +0 -1
- package/docs/source/lib/goog/events/eventtype.js.src.html +0 -1
- package/docs/source/lib/goog/events/keycodes.js.src.html +0 -1
- package/docs/source/lib/goog/events/listenable.js.src.html +0 -1
- package/docs/source/lib/goog/events/listener.js.src.html +0 -1
- package/docs/source/lib/goog/events/listenermap.js.src.html +0 -1
- package/docs/source/lib/goog/fs/url.js.src.html +0 -1
- package/docs/source/lib/goog/functions/functions.js.src.html +0 -1
- package/docs/source/lib/goog/html/safehtml.js.src.html +0 -1
- package/docs/source/lib/goog/html/safescript.js.src.html +0 -1
- package/docs/source/lib/goog/html/safestyle.js.src.html +0 -1
- package/docs/source/lib/goog/html/safestylesheet.js.src.html +0 -1
- package/docs/source/lib/goog/html/safeurl.js.src.html +0 -1
- package/docs/source/lib/goog/html/trustedresourceurl.js.src.html +0 -1
- package/docs/source/lib/goog/html/uncheckedconversions.js.src.html +0 -1
- package/docs/source/lib/goog/i18n/bidi.js.src.html +0 -1
- package/docs/source/lib/goog/iter/iter.js.src.html +0 -1
- package/docs/source/lib/goog/json/json.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/assertthat.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/logicmatcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/matcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/numbermatcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/objectmatcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/stringmatcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/useragent/browser.js.src.html +0 -1
- package/docs/source/lib/goog/labs/useragent/engine.js.src.html +0 -1
- package/docs/source/lib/goog/labs/useragent/platform.js.src.html +0 -1
- package/docs/source/lib/goog/labs/useragent/util.js.src.html +0 -1
- package/docs/source/lib/goog/log/log.js.src.html +0 -1
- package/docs/source/lib/goog/math/box.js.src.html +0 -1
- package/docs/source/lib/goog/math/coordinate.js.src.html +0 -1
- package/docs/source/lib/goog/math/math.js.src.html +0 -1
- package/docs/source/lib/goog/math/rect.js.src.html +0 -1
- package/docs/source/lib/goog/math/size.js.src.html +0 -1
- package/docs/source/lib/goog/net/wrapperxmlhttpfactory.js.src.html +0 -1
- package/docs/source/lib/goog/net/xhrlike.js.src.html +0 -1
- package/docs/source/lib/goog/net/xmlhttp.js.src.html +0 -1
- package/docs/source/lib/goog/net/xmlhttpfactory.js.src.html +0 -1
- package/docs/source/lib/goog/object/object.js.src.html +0 -1
- package/docs/source/lib/goog/promise/promise.js.src.html +0 -1
- package/docs/source/lib/goog/promise/resolver.js.src.html +0 -1
- package/docs/source/lib/goog/promise/thenable.js.src.html +0 -1
- package/docs/source/lib/goog/reflect/reflect.js.src.html +0 -1
- package/docs/source/lib/goog/string/const.js.src.html +0 -1
- package/docs/source/lib/goog/string/string.js.src.html +0 -1
- package/docs/source/lib/goog/string/typedstring.js.src.html +0 -1
- package/docs/source/lib/goog/structs/collection.js.src.html +0 -1
- package/docs/source/lib/goog/structs/map.js.src.html +0 -1
- package/docs/source/lib/goog/structs/set.js.src.html +0 -1
- package/docs/source/lib/goog/structs/structs.js.src.html +0 -1
- package/docs/source/lib/goog/style/style.js.src.html +0 -1
- package/docs/source/lib/goog/testing/asserts.js.src.html +0 -1
- package/docs/source/lib/goog/testing/events/events.js.src.html +0 -1
- package/docs/source/lib/goog/testing/functionmock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/jsunit.js.src.html +0 -1
- package/docs/source/lib/goog/testing/loosemock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mockclock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mockcontrol.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mockinterface.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mockmatchers.js.src.html +0 -1
- package/docs/source/lib/goog/testing/objectpropertystring.js.src.html +0 -1
- package/docs/source/lib/goog/testing/propertyreplacer.js.src.html +0 -1
- package/docs/source/lib/goog/testing/recordfunction.js.src.html +0 -1
- package/docs/source/lib/goog/testing/stacktrace.js.src.html +0 -1
- package/docs/source/lib/goog/testing/strictmock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/testcase.js.src.html +0 -1
- package/docs/source/lib/goog/testing/testrunner.js.src.html +0 -1
- package/docs/source/lib/goog/uri/uri.js.src.html +0 -1
- package/docs/source/lib/goog/uri/utils.js.src.html +0 -1
- package/docs/source/lib/goog/useragent/product.js.src.html +0 -1
- package/docs/source/lib/goog/useragent/product_isversion.js.src.html +0 -1
- package/docs/source/lib/goog/useragent/useragent.js.src.html +0 -1
- package/docs/source/lib/webdriver/actionsequence.js.src.html +0 -1
- package/docs/source/lib/webdriver/button.js.src.html +0 -1
- package/docs/source/lib/webdriver/capabilities.js.src.html +0 -1
- package/docs/source/lib/webdriver/command.js.src.html +0 -1
- package/docs/source/lib/webdriver/events.js.src.html +0 -1
- package/docs/source/lib/webdriver/http/http.js.src.html +0 -1
- package/docs/source/lib/webdriver/key.js.src.html +0 -1
- package/docs/source/lib/webdriver/locators.js.src.html +0 -1
- package/docs/source/lib/webdriver/logging.js.src.html +0 -1
- package/docs/source/lib/webdriver/promise.js.src.html +0 -1
- package/docs/source/lib/webdriver/serializable.js.src.html +0 -1
- package/docs/source/lib/webdriver/session.js.src.html +0 -1
- package/docs/source/lib/webdriver/stacktrace.js.src.html +0 -1
- package/docs/source/lib/webdriver/testing/asserts.js.src.html +0 -1
- package/docs/source/lib/webdriver/touchsequence.js.src.html +0 -1
- package/docs/source/lib/webdriver/until.js.src.html +0 -1
- package/docs/source/lib/webdriver/webdriver.js.src.html +0 -1
- package/docs/source/net/index.js.src.html +0 -1
- package/docs/source/net/portprober.js.src.html +0 -1
- package/docs/source/opera.js.src.html +0 -1
- package/docs/source/phantomjs.js.src.html +0 -1
- package/docs/source/proxy.js.src.html +0 -1
- package/docs/source/remote/index.js.src.html +0 -1
- package/docs/source/safari.js.src.html +0 -1
- package/docs/source/testing/assert.js.src.html +0 -1
- package/docs/source/testing/index.js.src.html +0 -1
- package/docs/types.js +0 -1
- package/lib/atoms/error.js +0 -202
- package/lib/atoms/json.js +0 -80
- package/lib/atoms/response.js +0 -110
- package/lib/atoms/userAgent.js +0 -257
- package/lib/goog/LICENSE +0 -176
- package/lib/goog/array/array.js +0 -1654
- package/lib/goog/asserts/asserts.js +0 -365
- package/lib/goog/async/freelist.js +0 -88
- package/lib/goog/async/nexttick.js +0 -241
- package/lib/goog/async/run.js +0 -133
- package/lib/goog/async/workqueue.js +0 -139
- package/lib/goog/base.js +0 -2548
- package/lib/goog/debug/debug.js +0 -653
- package/lib/goog/debug/entrypointregistry.js +0 -158
- package/lib/goog/debug/error.js +0 -63
- package/lib/goog/debug/logbuffer.js +0 -148
- package/lib/goog/debug/logger.js +0 -873
- package/lib/goog/debug/logrecord.js +0 -242
- package/lib/goog/deps.js +0 -151
- package/lib/goog/disposable/disposable.js +0 -307
- package/lib/goog/disposable/idisposable.js +0 -45
- package/lib/goog/dom/browserfeature.js +0 -72
- package/lib/goog/dom/dom.js +0 -2991
- package/lib/goog/dom/nodetype.js +0 -48
- package/lib/goog/dom/safe.js +0 -347
- package/lib/goog/dom/tagname.js +0 -160
- package/lib/goog/dom/tags.js +0 -41
- package/lib/goog/dom/vendor.js +0 -96
- package/lib/goog/events/browserevent.js +0 -400
- package/lib/goog/events/browserfeature.js +0 -85
- package/lib/goog/events/event.js +0 -143
- package/lib/goog/events/eventid.js +0 -47
- package/lib/goog/events/events.js +0 -984
- package/lib/goog/events/eventtarget.js +0 -394
- package/lib/goog/events/eventtype.js +0 -237
- package/lib/goog/events/keycodes.js +0 -427
- package/lib/goog/events/listenable.js +0 -335
- package/lib/goog/events/listener.js +0 -131
- package/lib/goog/events/listenermap.js +0 -308
- package/lib/goog/fs/url.js +0 -109
- package/lib/goog/functions/functions.js +0 -442
- package/lib/goog/html/safehtml.js +0 -757
- package/lib/goog/html/safescript.js +0 -234
- package/lib/goog/html/safestyle.js +0 -442
- package/lib/goog/html/safestylesheet.js +0 -276
- package/lib/goog/html/safeurl.js +0 -398
- package/lib/goog/html/trustedresourceurl.js +0 -224
- package/lib/goog/html/uncheckedconversions.js +0 -232
- package/lib/goog/i18n/bidi.js +0 -908
- package/lib/goog/iter/iter.js +0 -1302
- package/lib/goog/json/json.js +0 -363
- package/lib/goog/labs/testing/assertthat.js +0 -58
- package/lib/goog/labs/testing/logicmatcher.js +0 -212
- package/lib/goog/labs/testing/matcher.js +0 -80
- package/lib/goog/labs/testing/numbermatcher.js +0 -346
- package/lib/goog/labs/testing/objectmatcher.js +0 -317
- package/lib/goog/labs/testing/stringmatcher.js +0 -415
- package/lib/goog/labs/useragent/browser.js +0 -341
- package/lib/goog/labs/useragent/engine.js +0 -160
- package/lib/goog/labs/useragent/platform.js +0 -160
- package/lib/goog/labs/useragent/util.js +0 -148
- package/lib/goog/log/log.js +0 -197
- package/lib/goog/math/box.js +0 -398
- package/lib/goog/math/coordinate.js +0 -268
- package/lib/goog/math/math.js +0 -451
- package/lib/goog/math/rect.js +0 -476
- package/lib/goog/math/size.js +0 -227
- package/lib/goog/net/wrapperxmlhttpfactory.js +0 -71
- package/lib/goog/net/xhrlike.js +0 -124
- package/lib/goog/net/xmlhttp.js +0 -246
- package/lib/goog/net/xmlhttpfactory.js +0 -67
- package/lib/goog/object/object.js +0 -686
- package/lib/goog/promise/promise.js +0 -1350
- package/lib/goog/promise/resolver.js +0 -48
- package/lib/goog/promise/thenable.js +0 -126
- package/lib/goog/reflect/reflect.js +0 -77
- package/lib/goog/string/const.js +0 -182
- package/lib/goog/string/string.js +0 -1599
- package/lib/goog/string/typedstring.js +0 -48
- package/lib/goog/structs/collection.js +0 -56
- package/lib/goog/structs/map.js +0 -457
- package/lib/goog/structs/set.js +0 -279
- package/lib/goog/structs/structs.js +0 -354
- package/lib/goog/style/style.js +0 -2037
- package/lib/goog/testing/asserts.js +0 -1278
- package/lib/goog/testing/events/events.js +0 -767
- package/lib/goog/testing/functionmock.js +0 -175
- package/lib/goog/testing/jsunit.js +0 -162
- package/lib/goog/testing/loosemock.js +0 -242
- package/lib/goog/testing/mock.js +0 -645
- package/lib/goog/testing/mockclock.js +0 -606
- package/lib/goog/testing/mockcontrol.js +0 -220
- package/lib/goog/testing/mockinterface.js +0 -45
- package/lib/goog/testing/mockmatchers.js +0 -400
- package/lib/goog/testing/objectpropertystring.js +0 -68
- package/lib/goog/testing/propertyreplacer.js +0 -262
- package/lib/goog/testing/recordfunction.js +0 -215
- package/lib/goog/testing/stacktrace.js +0 -594
- package/lib/goog/testing/strictmock.js +0 -130
- package/lib/goog/testing/testcase.js +0 -1629
- package/lib/goog/testing/testrunner.js +0 -440
- package/lib/goog/uri/uri.js +0 -1524
- package/lib/goog/uri/utils.js +0 -1064
- package/lib/goog/useragent/product.js +0 -183
- package/lib/goog/useragent/product_isversion.js +0 -144
- package/lib/goog/useragent/useragent.js +0 -572
- package/lib/webdriver/actionsequence.js +0 -356
- package/lib/webdriver/builder.js +0 -207
- package/lib/webdriver/capabilities.js +0 -412
- package/lib/webdriver/events.js +0 -179
- package/lib/webdriver/firefoxdomexecutor.js +0 -175
- package/lib/webdriver/http/corsclient.js +0 -133
- package/lib/webdriver/http/http.js +0 -525
- package/lib/webdriver/http/xhrclient.js +0 -67
- package/lib/webdriver/locators.js +0 -257
- package/lib/webdriver/logging.js +0 -347
- package/lib/webdriver/session.js +0 -74
- package/lib/webdriver/stacktrace.js +0 -619
- package/lib/webdriver/test/builder_test.js +0 -53
- package/lib/webdriver/test/capabilities_test.js +0 -72
- package/lib/webdriver/test/events_test.js +0 -203
- package/lib/webdriver/test/http/corsclient_test.js +0 -151
- package/lib/webdriver/test/http/http_test.js +0 -428
- package/lib/webdriver/test/http/xhrclient_test.js +0 -196
- package/lib/webdriver/test/locators_test.js +0 -59
- package/lib/webdriver/test/logging_test.js +0 -85
- package/lib/webdriver/test/promise_error_test.js +0 -892
- package/lib/webdriver/test/promise_flow_test.js +0 -2365
- package/lib/webdriver/test/promise_generator_test.js +0 -323
- package/lib/webdriver/test/promise_test.js +0 -2012
- package/lib/webdriver/test/stacktrace_test.js +0 -480
- package/lib/webdriver/test/test_bootstrap.js +0 -67
- package/lib/webdriver/test/testing/asserts_test.js +0 -117
- package/lib/webdriver/test/testing/client_test.js +0 -88
- package/lib/webdriver/test/testing/testcase_test.js +0 -229
- package/lib/webdriver/test/testutil.js +0 -209
- package/lib/webdriver/test/testutil_test.js +0 -104
- package/lib/webdriver/test/until_test.js +0 -411
- package/lib/webdriver/test/webdriver_generator_test.js +0 -92
- package/lib/webdriver/test/webdriver_test.js +0 -2369
- package/lib/webdriver/testing/asserts.js +0 -487
- package/lib/webdriver/testing/client.js +0 -179
- package/lib/webdriver/testing/jsunit.js +0 -363
- package/lib/webdriver/testing/testcase.js +0 -168
- package/lib/webdriver/testing/window.js +0 -244
- package/lib/webdriver/touchsequence.js +0 -248
- package/lib/webdriver/until.js +0 -412
- package/lib/webdriver/webdriver.js +0 -2511
- package/test/_base_test.js +0 -129
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
// Licensed to the Software Freedom Conservancy (SFC) under one
|
|
2
|
-
// or more contributor license agreements. See the NOTICE file
|
|
3
|
-
// distributed with this work for additional information
|
|
4
|
-
// regarding copyright ownership. The SFC licenses this file
|
|
5
|
-
// to you under the Apache License, Version 2.0 (the
|
|
6
|
-
// "License"); you may not use this file except in compliance
|
|
7
|
-
// with the License. You may obtain a copy of the License at
|
|
8
|
-
//
|
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
//
|
|
11
|
-
// Unless required by applicable law or agreed to in writing,
|
|
12
|
-
// software distributed under the License is distributed on an
|
|
13
|
-
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
// KIND, either express or implied. See the License for the
|
|
15
|
-
// specific language governing permissions and limitations
|
|
16
|
-
// under the License.
|
|
17
|
-
|
|
18
|
-
goog.require('goog.testing.MockControl');
|
|
19
|
-
goog.require('goog.testing.PropertyReplacer');
|
|
20
|
-
goog.require('goog.testing.jsunit');
|
|
21
|
-
goog.require('goog.userAgent');
|
|
22
|
-
goog.require('webdriver.testing.Client');
|
|
23
|
-
|
|
24
|
-
var FAKE_WINDOW = {
|
|
25
|
-
location: {
|
|
26
|
-
pathname: '/foo/bar/baz'
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
function FakeXhr() {}
|
|
31
|
-
FakeXhr.prototype.open = goog.nullFunction;
|
|
32
|
-
FakeXhr.prototype.send = goog.nullFunction;
|
|
33
|
-
|
|
34
|
-
var stubs = new goog.testing.PropertyReplacer;
|
|
35
|
-
var control = new goog.testing.MockControl;
|
|
36
|
-
var mockXhr;
|
|
37
|
-
var client;
|
|
38
|
-
|
|
39
|
-
function shouldRunTests() {
|
|
40
|
-
return !goog.userAgent.IE || goog.userAgent.isVersionOrHigher(10);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function setUp() {
|
|
44
|
-
client = new webdriver.testing.Client(FAKE_WINDOW);
|
|
45
|
-
mockXhr = control.createStrictMock(FakeXhr);
|
|
46
|
-
stubs.set(goog.net, 'XmlHttp', function() {
|
|
47
|
-
return mockXhr;
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function tearDown() {
|
|
52
|
-
stubs.reset();
|
|
53
|
-
control.$tearDown();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function expectToSendEvent(type, data) {
|
|
57
|
-
mockXhr.open('POST', '/testevent', true);
|
|
58
|
-
mockXhr.send(JSON.stringify({
|
|
59
|
-
'id': '/foo/bar/baz',
|
|
60
|
-
'type': type,
|
|
61
|
-
'data': data
|
|
62
|
-
}));
|
|
63
|
-
control.$replayAll();
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function testSendInitEvent() {
|
|
67
|
-
expectToSendEvent('INIT', {});
|
|
68
|
-
client.sendInitEvent();
|
|
69
|
-
control.$verifyAll();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function testSendResultsEvent() {
|
|
73
|
-
expectToSendEvent('RESULTS', {
|
|
74
|
-
'isSuccess': false,
|
|
75
|
-
'report': 'boom'
|
|
76
|
-
});
|
|
77
|
-
client.sendResultsEvent(false, 'boom');
|
|
78
|
-
control.$verifyAll();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function testSendScreenshotEvent() {
|
|
82
|
-
expectToSendEvent('SCREENSHOT', {
|
|
83
|
-
'name': 'ss01',
|
|
84
|
-
'data': '12412412asdfasf'
|
|
85
|
-
});
|
|
86
|
-
client.sendScreenshotEvent('12412412asdfasf', 'ss01');
|
|
87
|
-
control.$verifyAll();
|
|
88
|
-
}
|
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
// Licensed to the Software Freedom Conservancy (SFC) under one
|
|
2
|
-
// or more contributor license agreements. See the NOTICE file
|
|
3
|
-
// distributed with this work for additional information
|
|
4
|
-
// regarding copyright ownership. The SFC licenses this file
|
|
5
|
-
// to you under the Apache License, Version 2.0 (the
|
|
6
|
-
// "License"); you may not use this file except in compliance
|
|
7
|
-
// with the License. You may obtain a copy of the License at
|
|
8
|
-
//
|
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
//
|
|
11
|
-
// Unless required by applicable law or agreed to in writing,
|
|
12
|
-
// software distributed under the License is distributed on an
|
|
13
|
-
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
// KIND, either express or implied. See the License for the
|
|
15
|
-
// specific language governing permissions and limitations
|
|
16
|
-
// under the License.
|
|
17
|
-
|
|
18
|
-
goog.require('goog.Promise');
|
|
19
|
-
goog.require('goog.testing.MockControl');
|
|
20
|
-
goog.require('goog.testing.PropertyReplacer');
|
|
21
|
-
goog.require('goog.testing.mockmatchers');
|
|
22
|
-
goog.require('goog.testing.jsunit');
|
|
23
|
-
goog.require('goog.testing.recordFunction');
|
|
24
|
-
goog.require('goog.userAgent');
|
|
25
|
-
goog.require('webdriver.test.testutil');
|
|
26
|
-
goog.require('webdriver.testing.TestCase');
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// Aliases for readability.
|
|
30
|
-
var IGNORE_ARGUMENT = goog.testing.mockmatchers.ignoreArgument,
|
|
31
|
-
IS_ARRAY_ARGUMENT = goog.testing.mockmatchers.isArray,
|
|
32
|
-
StubError = webdriver.test.testutil.StubError,
|
|
33
|
-
throwStubError = webdriver.test.testutil.throwStubError,
|
|
34
|
-
assertIsStubError = webdriver.test.testutil.assertIsStubError;
|
|
35
|
-
|
|
36
|
-
var control = new goog.testing.MockControl();
|
|
37
|
-
var mockTestCase, testStub, mockOnComplete, mockOnError, uncaughtExceptions;
|
|
38
|
-
|
|
39
|
-
function shouldRunTests() {
|
|
40
|
-
return !goog.userAgent.IE || goog.userAgent.isVersionOrHigher(10);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
function setUp() {
|
|
45
|
-
// Use one master mock so we can assert execution order.
|
|
46
|
-
mockTestCase = control.createStrictMock({
|
|
47
|
-
setUp: goog.nullFunction,
|
|
48
|
-
testFn: goog.nullFunction,
|
|
49
|
-
tearDown: goog.nullFunction,
|
|
50
|
-
onComplete: goog.nullFunction,
|
|
51
|
-
onError: goog.nullFunction
|
|
52
|
-
}, true);
|
|
53
|
-
|
|
54
|
-
mockOnComplete = goog.bind(mockTestCase.onComplete, mockTestCase);
|
|
55
|
-
mockOnError = goog.bind(mockTestCase.onError, mockTestCase);
|
|
56
|
-
|
|
57
|
-
testStub = {
|
|
58
|
-
name: 'testStub',
|
|
59
|
-
scope: mockTestCase,
|
|
60
|
-
ref: mockTestCase.testFn
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
webdriver.test.testutil.messages = [];
|
|
64
|
-
uncaughtExceptions = [];
|
|
65
|
-
|
|
66
|
-
webdriver.promise.controlFlow().
|
|
67
|
-
on('uncaughtExceptions', onUncaughtException);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function tearDown() {
|
|
71
|
-
var flow = webdriver.promise.controlFlow();
|
|
72
|
-
return new goog.Promise(function(fulfill) {
|
|
73
|
-
flow.execute(goog.nullFunction); // Flush.
|
|
74
|
-
flow.once('idle', fulfill);
|
|
75
|
-
}).then(function() {
|
|
76
|
-
assertArrayEquals('There were uncaught exceptions',
|
|
77
|
-
[], uncaughtExceptions);
|
|
78
|
-
control.$tearDown();
|
|
79
|
-
flow.reset();
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function onUncaughtException(e) {
|
|
84
|
-
uncaughtExceptions.push(e);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function schedule(msg, opt_fn) {
|
|
88
|
-
var fn = opt_fn || goog.nullFunction;
|
|
89
|
-
return webdriver.promise.controlFlow().execute(fn, msg);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function runTest() {
|
|
93
|
-
return webdriver.testing.TestCase.prototype.runSingleTest_.
|
|
94
|
-
call(mockTestCase, testStub, mockOnError).
|
|
95
|
-
then(mockOnComplete);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function testExecutesTheBasicTestFlow() {
|
|
99
|
-
mockTestCase.setUp();
|
|
100
|
-
mockTestCase.testFn();
|
|
101
|
-
mockTestCase.tearDown();
|
|
102
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
103
|
-
control.$replayAll();
|
|
104
|
-
|
|
105
|
-
return runTest();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
function testExecutingAHappyTestWithScheduledActions() {
|
|
109
|
-
mockTestCase.setUp().$does(function() { schedule('a'); });
|
|
110
|
-
mockTestCase.testFn().$does(function() { schedule('b'); });
|
|
111
|
-
mockTestCase.tearDown().$does(function() { schedule('c'); });
|
|
112
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
113
|
-
control.$replayAll();
|
|
114
|
-
|
|
115
|
-
return runTest();
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function testShouldSkipTestFnIfSetupThrows() {
|
|
119
|
-
var e = Error();
|
|
120
|
-
mockTestCase.setUp().$does(function() { throw e; });
|
|
121
|
-
mockOnError(e);
|
|
122
|
-
mockTestCase.tearDown();
|
|
123
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
124
|
-
control.$replayAll();
|
|
125
|
-
|
|
126
|
-
return runTest();
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function testShouldSkipTestFnIfSetupActionFails_1() {
|
|
130
|
-
var e = Error();
|
|
131
|
-
mockTestCase.setUp().$does(function() {
|
|
132
|
-
schedule('an explosion', function() { throw e; });
|
|
133
|
-
});
|
|
134
|
-
mockOnError(e);
|
|
135
|
-
mockTestCase.tearDown();
|
|
136
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
137
|
-
control.$replayAll();
|
|
138
|
-
|
|
139
|
-
return runTest();
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function testShouldSkipTestFnIfSetupActionFails_2() {
|
|
143
|
-
var e = Error();
|
|
144
|
-
mockTestCase.setUp().$does(function() {
|
|
145
|
-
schedule('an explosion', function() { throw e; });
|
|
146
|
-
});
|
|
147
|
-
mockOnError(e);
|
|
148
|
-
mockTestCase.tearDown();
|
|
149
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
150
|
-
control.$replayAll();
|
|
151
|
-
|
|
152
|
-
return runTest();
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function testShouldSkipTestFnIfNestedSetupActionFails() {
|
|
156
|
-
var e = Error();
|
|
157
|
-
mockTestCase.setUp().$does(function() {
|
|
158
|
-
schedule('a', goog.nullFunction).then(function() {
|
|
159
|
-
schedule('b', function() { throw e; });
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
mockOnError(e);
|
|
163
|
-
mockTestCase.tearDown();
|
|
164
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
165
|
-
control.$replayAll();
|
|
166
|
-
|
|
167
|
-
return runTest();
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function testRunsAllTasksForEachPhaseBeforeTheNextPhase() {
|
|
171
|
-
webdriver.test.testutil.messages = [];
|
|
172
|
-
mockTestCase.setUp().$does(function() { schedule('a'); });
|
|
173
|
-
mockTestCase.testFn().$does(function() { schedule('b'); });
|
|
174
|
-
mockTestCase.tearDown().$does(function() { schedule('c'); });
|
|
175
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
176
|
-
control.$replayAll();
|
|
177
|
-
|
|
178
|
-
return runTest();
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
function testRecordsErrorsFromTestFnBeforeTearDown() {
|
|
182
|
-
var e = Error();
|
|
183
|
-
mockTestCase.setUp();
|
|
184
|
-
mockTestCase.testFn().$does(function() { throw e; });
|
|
185
|
-
mockOnError(e);
|
|
186
|
-
mockTestCase.tearDown();
|
|
187
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
188
|
-
control.$replayAll();
|
|
189
|
-
|
|
190
|
-
return runTest();
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
function testRecordsErrorsFromTearDown() {
|
|
194
|
-
var e = Error();
|
|
195
|
-
mockTestCase.setUp();
|
|
196
|
-
mockTestCase.testFn();
|
|
197
|
-
mockTestCase.tearDown().$does(function() { throw e; });
|
|
198
|
-
mockOnError(e);
|
|
199
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
200
|
-
control.$replayAll();
|
|
201
|
-
|
|
202
|
-
return runTest();
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
function testErrorFromSetUpAndTearDown() {
|
|
206
|
-
var e1 = Error();
|
|
207
|
-
var e2 = Error();
|
|
208
|
-
mockTestCase.setUp().$does(function() { throw e1; });
|
|
209
|
-
mockOnError(e1);
|
|
210
|
-
mockTestCase.tearDown().$does(function() { throw e2; });
|
|
211
|
-
mockOnError(e2);
|
|
212
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
213
|
-
control.$replayAll();
|
|
214
|
-
|
|
215
|
-
return runTest();
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
function testErrorFromTestFnAndTearDown() {
|
|
219
|
-
var e1 = Error(), e2 = Error();
|
|
220
|
-
mockTestCase.setUp();
|
|
221
|
-
mockTestCase.testFn().$does(function() { throw e1; });
|
|
222
|
-
mockOnError(e1);
|
|
223
|
-
mockTestCase.tearDown().$does(function() { throw e2; });
|
|
224
|
-
mockOnError(e2);
|
|
225
|
-
mockOnComplete(IGNORE_ARGUMENT);
|
|
226
|
-
control.$replayAll();
|
|
227
|
-
|
|
228
|
-
return runTest();
|
|
229
|
-
}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
// Licensed to the Software Freedom Conservancy (SFC) under one
|
|
2
|
-
// or more contributor license agreements. See the NOTICE file
|
|
3
|
-
// distributed with this work for additional information
|
|
4
|
-
// regarding copyright ownership. The SFC licenses this file
|
|
5
|
-
// to you under the Apache License, Version 2.0 (the
|
|
6
|
-
// "License"); you may not use this file except in compliance
|
|
7
|
-
// with the License. You may obtain a copy of the License at
|
|
8
|
-
//
|
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
//
|
|
11
|
-
// Unless required by applicable law or agreed to in writing,
|
|
12
|
-
// software distributed under the License is distributed on an
|
|
13
|
-
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
// KIND, either express or implied. See the License for the
|
|
15
|
-
// specific language governing permissions and limitations
|
|
16
|
-
// under the License.
|
|
17
|
-
|
|
18
|
-
goog.provide('webdriver.test.testutil');
|
|
19
|
-
goog.provide('webdriver.test.testutil.StubError');
|
|
20
|
-
|
|
21
|
-
goog.require('goog.array');
|
|
22
|
-
goog.require('goog.debug.Error');
|
|
23
|
-
goog.require('goog.string');
|
|
24
|
-
goog.require('goog.testing.recordFunction');
|
|
25
|
-
goog.require('webdriver.stacktrace');
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* A custom error used for testing.
|
|
31
|
-
* @param {string=} opt_msg The error message to use.
|
|
32
|
-
* @constructor
|
|
33
|
-
* @extends {goog.debug.Error}
|
|
34
|
-
* @final
|
|
35
|
-
*/
|
|
36
|
-
webdriver.test.testutil.StubError = function(opt_msg) {
|
|
37
|
-
webdriver.test.testutil.StubError.base(this, 'constructor', opt_msg);
|
|
38
|
-
};
|
|
39
|
-
goog.inherits(webdriver.test.testutil.StubError, goog.debug.Error);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
/** @override */
|
|
43
|
-
webdriver.test.testutil.StubError.prototype.name = 'StubError';
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
/** @type {Array.<!string>} */
|
|
47
|
-
webdriver.test.testutil.messages = [];
|
|
48
|
-
|
|
49
|
-
webdriver.test.testutil.getStackTrace = function() {
|
|
50
|
-
return webdriver.stacktrace.get();
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
webdriver.test.testutil.throwStubError = function() {
|
|
54
|
-
throw new webdriver.test.testutil.StubError;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
webdriver.test.testutil.assertIsStubError = function(error) {
|
|
58
|
-
assertTrue(error + ' is not an instanceof StubError',
|
|
59
|
-
error instanceof webdriver.test.testutil.StubError);
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Asserts the contents of the {@link webdriver.test.testutil.messages} array
|
|
65
|
-
* are as expected.
|
|
66
|
-
* @param {...*} var_args The expected contents.
|
|
67
|
-
*/
|
|
68
|
-
webdriver.test.testutil.assertMessages = function(var_args) {
|
|
69
|
-
var args = Array.prototype.slice.call(arguments, 0);
|
|
70
|
-
assertArrayEquals(args, webdriver.test.testutil.messages);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Wraps a call to {@link webdriver.test.testutil.assertMessages} so it can
|
|
76
|
-
* be passed as a callback.
|
|
77
|
-
* @param {...*} var_args The expected contents.
|
|
78
|
-
* @return {!Function} The wrapped function.
|
|
79
|
-
*/
|
|
80
|
-
webdriver.test.testutil.assertingMessages = function(var_args) {
|
|
81
|
-
var args = goog.array.slice(arguments, 0);
|
|
82
|
-
return function() {
|
|
83
|
-
return webdriver.test.testutil.assertMessages.apply(null, args);
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Asserts an object is a promise.
|
|
90
|
-
* @param {*} obj The object to check.
|
|
91
|
-
*/
|
|
92
|
-
webdriver.test.testutil.assertIsPromise = function(obj) {
|
|
93
|
-
assertTrue('Value is not a promise: ' + goog.typeOf(obj),
|
|
94
|
-
webdriver.promise.isPromise(obj));
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Asserts an object is not a promise.
|
|
100
|
-
* @param {*} obj The object to check.
|
|
101
|
-
*/
|
|
102
|
-
webdriver.test.testutil.assertNotPromise = function(obj) {
|
|
103
|
-
assertFalse(webdriver.promise.isPromise(obj));
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Wraps a function. The wrapped function will have several utility functions:
|
|
108
|
-
* <ul>
|
|
109
|
-
* <li>assertCalled: Asserts that the function was called.
|
|
110
|
-
* <li>assertNotCalled: Asserts that the function was not called.
|
|
111
|
-
* </ul>
|
|
112
|
-
* @param {Function=} opt_fn The function to wrap; defaults to
|
|
113
|
-
* goog.nullFunction.
|
|
114
|
-
* @return {!Function} The wrapped function.
|
|
115
|
-
* @see goog.testing.recordFunction
|
|
116
|
-
*/
|
|
117
|
-
webdriver.test.testutil.callbackHelper = function(opt_fn) {
|
|
118
|
-
var callback = goog.testing.recordFunction(opt_fn);
|
|
119
|
-
|
|
120
|
-
callback.getExpectedCallCountMessage = function(n, opt_prefix, opt_noJoin) {
|
|
121
|
-
var message = [];
|
|
122
|
-
if (opt_prefix) message.push(opt_prefix);
|
|
123
|
-
|
|
124
|
-
var calls = callback.getCalls();
|
|
125
|
-
message.push(
|
|
126
|
-
'Expected to be called ' + n + ' times.',
|
|
127
|
-
' was called ' + calls.length + ' times:');
|
|
128
|
-
goog.array.forEach(calls, function(call) {
|
|
129
|
-
var e = call.getError();
|
|
130
|
-
if (e) {
|
|
131
|
-
throw e;
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
return opt_noJoin ? message : message.join('\n');
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
callback.assertCalled = function(opt_message) {
|
|
138
|
-
assertEquals(callback.getExpectedCallCountMessage(1, opt_message),
|
|
139
|
-
1, callback.getCallCount());
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
callback.assertNotCalled = function(opt_message) {
|
|
143
|
-
assertEquals(callback.getExpectedCallCountMessage(0, opt_message),
|
|
144
|
-
0, callback.getCallCount());
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
return callback;
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Creates a utility for managing a pair of callbacks, capable of asserting only
|
|
153
|
-
* one of the pair was ever called.
|
|
154
|
-
*
|
|
155
|
-
* @param {Function=} opt_callback The callback to manage.
|
|
156
|
-
* @param {Function=} opt_errback The errback to manage.
|
|
157
|
-
*/
|
|
158
|
-
webdriver.test.testutil.callbackPair = function(opt_callback, opt_errback) {
|
|
159
|
-
var pair = {
|
|
160
|
-
callback: webdriver.test.testutil.callbackHelper(opt_callback),
|
|
161
|
-
errback: webdriver.test.testutil.callbackHelper(opt_errback)
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
/** @param {string=} opt_message Optional failure message. */
|
|
165
|
-
pair.assertEither = function(opt_message) {
|
|
166
|
-
if (!pair.callback.getCallCount() &&
|
|
167
|
-
!pair.errback.getCallCount()) {
|
|
168
|
-
var message = ['Neither callback nor errback has been called'];
|
|
169
|
-
if (opt_message) goog.array.insertAt(message, opt_message);
|
|
170
|
-
fail(message.join('\n'));
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
/** @param {string=} opt_message Optional failure message. */
|
|
175
|
-
pair.assertNeither = function(opt_message) {
|
|
176
|
-
var message = (opt_message || '') + 'Did not expect callback or errback';
|
|
177
|
-
pair.callback.assertNotCalled(message);
|
|
178
|
-
pair.errback.assertNotCalled(message);
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
/** @param {string=} opt_message Optional failure message. */
|
|
182
|
-
pair.assertCallback = function(opt_message) {
|
|
183
|
-
var message = opt_message ? (opt_message + ': ') : '';
|
|
184
|
-
pair.errback.assertNotCalled(message + 'Expected callback, not errback');
|
|
185
|
-
pair.callback.assertCalled(message + 'Callback not called');
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
/** @param {string=} opt_message Optional failure message. */
|
|
189
|
-
pair.assertErrback = function(opt_message) {
|
|
190
|
-
var message = opt_message ? (opt_message + ': ') : '';
|
|
191
|
-
pair.callback.assertNotCalled(message + 'Expected errback, not callback');
|
|
192
|
-
pair.errback.assertCalled(message + 'Errback not called');
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
pair.reset = function() {
|
|
196
|
-
pair.callback.reset();
|
|
197
|
-
pair.errback.reset();
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
return pair;
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
webdriver.test.testutil.assertObjectEquals = function(expected, actual) {
|
|
205
|
-
assertObjectEquals(
|
|
206
|
-
'Expected: ' + JSON.stringify(expected) + '\n' +
|
|
207
|
-
'Actual: ' + JSON.stringify(actual),
|
|
208
|
-
expected, actual);
|
|
209
|
-
};
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
// Licensed to the Software Freedom Conservancy (SFC) under one
|
|
2
|
-
// or more contributor license agreements. See the NOTICE file
|
|
3
|
-
// distributed with this work for additional information
|
|
4
|
-
// regarding copyright ownership. The SFC licenses this file
|
|
5
|
-
// to you under the Apache License, Version 2.0 (the
|
|
6
|
-
// "License"); you may not use this file except in compliance
|
|
7
|
-
// with the License. You may obtain a copy of the License at
|
|
8
|
-
//
|
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
//
|
|
11
|
-
// Unless required by applicable law or agreed to in writing,
|
|
12
|
-
// software distributed under the License is distributed on an
|
|
13
|
-
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
// KIND, either express or implied. See the License for the
|
|
15
|
-
// specific language governing permissions and limitations
|
|
16
|
-
// under the License.
|
|
17
|
-
|
|
18
|
-
goog.require('goog.testing.jsunit');
|
|
19
|
-
goog.require('webdriver.test.testutil');
|
|
20
|
-
|
|
21
|
-
// Aliases for readability.
|
|
22
|
-
var callbackHelper = webdriver.test.testutil.callbackHelper,
|
|
23
|
-
callbackPair = webdriver.test.testutil.callbackPair;
|
|
24
|
-
|
|
25
|
-
function testCallbackHelper_functionCalled() {
|
|
26
|
-
var callback = callbackHelper();
|
|
27
|
-
callback();
|
|
28
|
-
assertNotThrows(callback.assertCalled);
|
|
29
|
-
assertThrows(callback.assertNotCalled);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function testCallbackHelper_functionCalledMoreThanOnce() {
|
|
33
|
-
var callback = callbackHelper();
|
|
34
|
-
callback();
|
|
35
|
-
callback(123, 'abc');
|
|
36
|
-
assertThrows(callback.assertCalled);
|
|
37
|
-
assertThrows(callback.assertNotCalled);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function testCallbackHelper_functionNotCalled() {
|
|
41
|
-
var callback = callbackHelper();
|
|
42
|
-
assertNotThrows(callback.assertNotCalled);
|
|
43
|
-
assertThrows(callback.assertCalled);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function testCallbackHelper_wrappedFunctionIsCalled() {
|
|
47
|
-
var count = 0;
|
|
48
|
-
var callback = callbackHelper(function() {
|
|
49
|
-
count += 1;
|
|
50
|
-
});
|
|
51
|
-
callback();
|
|
52
|
-
assertNotThrows(callback.assertCalled);
|
|
53
|
-
assertThrows(callback.assertNotCalled);
|
|
54
|
-
assertEquals(1, count);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function testCallbackPair_callbackExpected() {
|
|
58
|
-
var pair = callbackPair();
|
|
59
|
-
assertThrows(pair.assertCallback);
|
|
60
|
-
pair.callback();
|
|
61
|
-
assertNotThrows(pair.assertCallback);
|
|
62
|
-
pair.errback();
|
|
63
|
-
assertThrows(pair.assertCallback);
|
|
64
|
-
|
|
65
|
-
pair.reset();
|
|
66
|
-
pair.callback();
|
|
67
|
-
assertNotThrows(pair.assertCallback);
|
|
68
|
-
pair.callback();
|
|
69
|
-
assertThrows('Should expect to be called only once',
|
|
70
|
-
pair.assertCallback);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
function testCallbackPair_errbackExpected() {
|
|
74
|
-
var pair = callbackPair();
|
|
75
|
-
assertThrows(pair.assertErrback);
|
|
76
|
-
pair.errback();
|
|
77
|
-
assertNotThrows(pair.assertErrback);
|
|
78
|
-
pair.callback();
|
|
79
|
-
assertThrows(pair.assertErrback);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function testCallbackPair_eitherExpected() {
|
|
83
|
-
var pair = callbackPair();
|
|
84
|
-
assertThrows(pair.assertEither);
|
|
85
|
-
pair.errback();
|
|
86
|
-
assertNotThrows(pair.assertEither);
|
|
87
|
-
pair.reset();
|
|
88
|
-
pair.callback();
|
|
89
|
-
assertNotThrows(pair.assertEither);
|
|
90
|
-
pair.errback();
|
|
91
|
-
assertNotThrows(pair.assertEither);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
function testCallbackPair_neitherExpected() {
|
|
95
|
-
var pair = callbackPair();
|
|
96
|
-
assertNotThrows(pair.assertNeither);
|
|
97
|
-
pair.errback();
|
|
98
|
-
assertThrows(pair.assertNeither);
|
|
99
|
-
pair.reset();
|
|
100
|
-
pair.callback();
|
|
101
|
-
assertThrows(pair.assertNeither);
|
|
102
|
-
pair.errback();
|
|
103
|
-
assertThrows(pair.assertNeither);
|
|
104
|
-
}
|