webdriver: error: add documentation for ErrorStatus
authorAndreas Tolfsen <ato@mozilla.com>
Mon, 03 Apr 2017 13:56:09 +0100
changeset 428135 a39719bf0d37adf34d32c45d293d49d49c3be993
parent 428134 2eb4424aea1d5bcc835944326023a958f11e9c68
child 428136 404c03e0bdd8e65d286ac8eeebbad734bab9d0d5
push id7761
push userjlund@mozilla.com
push dateFri, 15 Sep 2017 00:19:52 +0000
treeherdermozilla-beta@c38455951db4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone57.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
webdriver: error: add documentation for ErrorStatus Source-Repo: https://github.com/mozilla/webdriver-rust Source-Revision: f7a78ba7827b790a9adbbfca218f5c937fe362e2
testing/webdriver/src/error.rs
--- a/testing/webdriver/src/error.rs
+++ b/testing/webdriver/src/error.rs
@@ -6,47 +6,147 @@ use std::borrow::Cow;
 use std::collections::BTreeMap;
 use std::convert::From;
 use std::error::Error;
 use std::fmt;
 use std::io::Error as IoError;
 
 #[derive(PartialEq, Debug)]
 pub enum ErrorStatus {
+    /// The [`ElementClick`] command could not be completed because the
+    /// [element] receiving the events is obscuring the element that was
+    /// requested clicked.
+    ///
+    /// [`ElementClick`]:
+    /// ../command/enum.WebDriverCommand.html#variant.ElementClick
+    /// [element]: ../common/struct.WebElement.html
     ElementClickIntercepted,
+
+    /// A [command] could not be completed because the element is not pointer-
+    /// or keyboard interactable.
+    ///
+    /// [command]: ../command/index.html
     ElementNotInteractable,
+
+    /// An attempt was made to select an [element] that cannot be selected.
+    ///
+    /// [element]: ../common/struct.WebElement.html
     ElementNotSelectable,
+
+    /// Navigation caused the user agent to hit a certificate warning, which is
+    /// usually the result of an expired or invalid TLS certificate.
     InsecureCertificate,
+
+    /// The arguments passed to a [command] are either invalid or malformed.
+    ///
+    /// [command]: ../command/index.html
     InvalidArgument,
+
+    /// An illegal attempt was made to set a cookie under a different domain
+    /// than the current page.
     InvalidCookieDomain,
+
+    /// The coordinates provided to an interactions operation are invalid.
     InvalidCoordinates,
+
+    /// A [command] could not be completed because the element is an invalid
+    /// state, e.g. attempting to click an element that is no longer attached
+    /// to the document.
+    ///
+    /// [command]: ../command/index.html
     InvalidElementState,
+
+    /// Argument was an invalid selector.
     InvalidSelector,
+
+    /// Occurs if the given session ID is not in the list of active sessions,
+    /// meaning the session either does not exist or that it’s not active.
     InvalidSessionId,
+
+    /// An error occurred while executing JavaScript supplied by the user.
     JavascriptError,
+
+    /// The target for mouse interaction is not in the browser’s viewport and
+    /// cannot be brought into that viewport.
     MoveTargetOutOfBounds,
+
+    /// An attempt was made to operate on a modal dialogue when one was not
+    /// open.
     NoSuchAlert,
+
+    /// No cookie matching the given path name was found amongst the associated
+    /// cookies of the current browsing context’s active document.
     NoSuchCookie,
+
+    /// An [element] could not be located on the page using the given search
+    /// parameters.
+    ///
+    /// [element]: ../common/struct.WebElement.html
     NoSuchElement,
+
+    /// A [command] to switch to a frame could not be satisfied because the
+    /// frame could not be found.
+    ///
+    /// [command]: ../command/index.html
     NoSuchFrame,
+
+    /// A [command] to switch to a window could not be satisfied because the
+    /// window could not be found.
+    ///
+    /// [command]: ../command/index.html
     NoSuchWindow,
+
+    /// A script did not complete before its timeout expired.
     ScriptTimeout,
+
+    /// A new session could not be created.
     SessionNotCreated,
+
+    /// A [command] failed because the referenced [element] is no longer
+    /// attached to the DOM.
+    ///
+    /// [command]: ../command/index.html
+    /// [element]: ../common/struct.WebElement.html
     StaleElementReference,
+
+    /// An operation did not complete before its timeout expired.
     Timeout,
+
+    /// A screen capture was made impossible.
     UnableToCaptureScreen,
+
+    /// Setting the cookie’s value could not be done.
     UnableToSetCookie,
+
+    /// A modal dialogue was open, blocking this operation.
     UnexpectedAlertOpen,
+
+    /// The requested command could not be executed because it does not exist.
     UnknownCommand,
+
+    /// An unknown error occurred in the remote end whilst processing the
+    /// [command].
+    ///
+    /// [command]: ../command/index.html
     UnknownError,
+
+    /// The requested [command] matched a known endpoint, but did not match a
+    /// method for that endpoint.
+    ///
+    /// [command]: ../command/index.html
     UnknownMethod,
+
     UnknownPath,
+
+    /// Indicates that a [command] that should have executed properly is not
+    /// currently supported.
     UnsupportedOperation,
 }
 
+
 impl ErrorStatus {
     pub fn error_code(&self) -> &'static str {
         match *self {
             ErrorStatus::ElementClickIntercepted => "element click intercepted",
             ErrorStatus::ElementNotInteractable => "element not interactable",
             ErrorStatus::ElementNotSelectable => "element not selectable",
             ErrorStatus::InsecureCertificate => "insecure certificate",
             ErrorStatus::InvalidArgument => "invalid argument",