Übersicht der Quellen

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

SSL test_Errors.js   Interaktion und
PortierbarkeitJAVA

 

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */


const { error } = ChromeUtils.importESModule(
  "chrome://remote/content/shared/webdriver/Errors.sys.mjs"
);

const errors = [
  error.WebDriverError,

  error.DetachedShadowRootError,
  error.ElementClickInterceptedError,
  error.ElementNotAccessibleError,
  error.ElementNotInteractableError,
  error.InsecureCertificateError,
  error.InvalidArgumentError,
  error.InvalidCookieDomainError,
  error.InvalidElementStateError,
  error.InvalidSelectorError,
  error.InvalidSessionIDError,
  error.InvalidWebExtensionError,
  error.JavaScriptError,
  error.MoveTargetOutOfBoundsError,
  error.NoSuchAlertError,
  error.NoSuchElementError,
  error.NoSuchFrameError,
  error.NoSuchHandleError,
  error.NoSuchInterceptError,
  error.NoSuchNetworkCollectorError,
  error.NoSuchNetworkDataError,
  error.NoSuchNodeError,
  error.NoSuchRequestError,
  error.NoSuchScriptError,
  error.NoSuchShadowRootError,
  error.NoSuchWindowError,
  error.ScriptTimeoutError,
  error.SessionNotCreatedError,
  error.StaleElementReferenceError,
  error.TimeoutError,
  error.UnableToSetCookieError,
  error.UnableToSetFileInputError,
  error.UnavailableNetworkDataError,
  error.UnexpectedAlertOpenError,
  error.UnknownCommandError,
  error.UnknownError,
  error.UnsupportedOperationError,
];

const noErrors = [undefined, null, "foo", 42, {}, [], new Date()];

function notok(condition) {
  ok(!condition);
}

add_task(function test_isError() {
  for (const noError in noErrors) {
    info(`Checking ${noError}`);
    notok(error.isError(noError));
  }

  ok(error.isError(new Components.Exception()));
  ok(error.isError(new Error()));
  ok(error.isError(new EvalError()));
  ok(error.isError(new InternalError()));
  ok(error.isError(new RangeError()));
  ok(error.isError(new ReferenceError()));
  ok(error.isError(new SyntaxError()));
  ok(error.isError(new TypeError()));
  ok(error.isError(new URIError()));

  for (const err of errors) {
    info(`Checking ${err}`);
    ok(error.isError(new err()));
  }
});

add_task(function test_isWebDriverError() {
  for (const noError in noErrors) {
    info(`Checking ${noError}`);
    notok(error.isError(noError));
  }

  notok(error.isWebDriverError(new Components.Exception()));
  notok(error.isWebDriverError(new Error()));
  notok(error.isWebDriverError(new EvalError()));
  notok(error.isWebDriverError(new InternalError()));
  notok(error.isWebDriverError(new RangeError()));
  notok(error.isWebDriverError(new ReferenceError()));
  notok(error.isWebDriverError(new SyntaxError()));
  notok(error.isWebDriverError(new TypeError()));
  notok(error.isWebDriverError(new URIError()));
  // A DOMException whose name matches a WebDriverError class
  notok(error.isWebDriverError(new DOMException("foo", "UnknownError")));

  for (const err of errors) {
    info(`Checking ${err}`);
    ok(error.isError(new err()));
  }
});

add_task(function test_wrap() {
  // webdriver-derived errors should not be wrapped
  errors.forEach(err => {
    const unwrappedError = new err("foo");
    const wrappedError = error.wrap(unwrappedError);

    ok(wrappedError instanceof error.WebDriverError);
    ok(wrappedError instanceof err);
    equal(wrappedError.name, unwrappedError.name);
    equal(wrappedError.status, unwrappedError.status);
    equal(wrappedError.message, "foo");
  });

  // JS errors should be wrapped in UnknownError and retain their type
  // as part of the message field.
  const jsErrors = [
    Error,
    EvalError,
    InternalError,
    RangeError,
    ReferenceError,
    SyntaxError,
    TypeError,
    URIError,
  ];

  jsErrors.forEach(err => {
    const originalError = new err("foo");
    const wrappedError = error.wrap(originalError);

    ok(wrappedError instanceof error.UnknownError);
    equal(wrappedError.name, "UnknownError");
    equal(wrappedError.status, "unknown error");
    equal(wrappedError.message, `${originalError.name}: foo`);
  });
});

add_task(function test_stringify() {
  equal("<unprintable error>", error.stringify());
  equal("<unprintable error>", error.stringify("foo"));
  equal("[object Object]", error.stringify({}));
  equal("[object Object]\nfoo", error.stringify({ stack: "foo" }));
  equal("Error: foo", error.stringify(new Error("foo")).split("\n")[0]);

  errors.forEach(err => {
    const e = new err("foo");

    equal(`${e.name}: foo`, error.stringify(e).split("\n")[0]);
  });
});

add_task(function test_constructor_from_error() {
  const data = { a: 3, b: "bar" };
  const origError = new error.WebDriverError("foo", data);

  errors.forEach(err => {
    const newError = new err(origError);

    ok(newError instanceof err);
    equal(newError.message, origError.message);
    equal(newError.stack, origError.stack);
    equal(newError.data, origError.data);
  });
});

add_task(function test_stack() {
  equal("string", typeof error.stack());
  ok(error.stack().includes("test_stack"));
  ok(!error.stack().includes("add_task"));
});

add_task(function test_toJSON() {
  errors.forEach(err => {
    const e0 = new err();
    const e0_json = e0.toJSON();
    equal(e0_json.error, e0.status);
    equal(e0_json.message, "");
    equal(e0_json.stacktrace, e0.stack);
    equal(e0_json.data, undefined);

    // message property
    const e1 = new err("a");
    const e1_json = e1.toJSON();

    equal(e1_json.message, e1.message);
    equal(e1_json.stacktrace, e1.stack);
    equal(e1_json.data, undefined);

    // message and optional data property
    const data = { a: 3, b: "bar" };
    const e2 = new err("foo", data);
    const e2_json = e2.toJSON();

    equal(e2.status, e2_json.error);
    equal(e2.message, e2_json.message);
    equal(e2_json.data, data);
  });
});

add_task(function test_fromJSON() {
  errors.forEach(err => {
    Assert.throws(
      () => err.fromJSON({ error: "foo" }),
      /Not of WebDriverError descent/
    );
    Assert.throws(
      () => err.fromJSON({ error: "Error" }),
      /Not of WebDriverError descent/
    );
    Assert.throws(() => err.fromJSON({}), /Undeserialisable error type/);
    Assert.throws(() => err.fromJSON(undefined), /TypeError/);

    // message and stack
    const e1 = new err("1");
    const e1_json = { error: e1.status, message: "3", stacktrace: "4" };
    const e1_fromJSON = error.WebDriverError.fromJSON(e1_json);

    ok(e1_fromJSON instanceof error.WebDriverError);
    ok(e1_fromJSON instanceof err);
    equal(e1_fromJSON.name, e1.name);
    equal(e1_fromJSON.status, e1_json.error);
    equal(e1_fromJSON.message, e1_json.message);
    equal(e1_fromJSON.stack, e1_json.stacktrace);

    // message and optional data
    const e2_data = { a: 3, b: "bar" };
    const e2 = new err("1", e2_data);
    const e2_json = { error: e1.status, message: "3", data: e2_data };
    const e2_fromJSON = error.WebDriverError.fromJSON(e2_json);

    ok(e2_fromJSON instanceof error.WebDriverError);
    ok(e2_fromJSON instanceof err);
    equal(e2_fromJSON.name, e2.name);
    equal(e2_fromJSON.status, e2_json.error);
    equal(e2_fromJSON.message, e2_json.message);
    equal(e2_fromJSON.data, e2_json.data);

    // parity with toJSON
    const e3_data = { a: 3, b: "bar" };
    const e3 = new err("1", e3_data);
    const e3_json = e3.toJSON();
    const e3_fromJSON = error.WebDriverError.fromJSON(e3_json);

    equal(e3_json.error, e3_fromJSON.status);
    equal(e3_json.message, e3_fromJSON.message);
    equal(e3_json.stacktrace, e3_fromJSON.stack);
  });
});

add_task(function test_WebDriverError() {
  let err = new error.WebDriverError("foo");
  equal("WebDriverError", err.name);
  equal("foo", err.message);
  equal("webdriver error", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_DetachedShadowRootError() {
  let err = new error.DetachedShadowRootError("foo");
  equal("DetachedShadowRootError", err.name);
  equal("foo", err.message);
  equal("detached shadow root", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_ElementClickInterceptedError() {
  let otherEl = {
    hasAttribute: attr => attr in otherEl,
    getAttribute: attr => (attr in otherEl ? otherEl[attr] : null),
    nodeType: 1,
    localName: "a",
  };
  let obscuredEl = {
    hasAttribute: attr => attr in obscuredEl,
    getAttribute: attr => (attr in obscuredEl ? obscuredEl[attr] : null),
    nodeType: 1,
    localName: "b",
    ownerDocument: {
      elementFromPoint() {
        return otherEl;
      },
    },
    style: {
      pointerEvents: "auto",
    },
  };

  let err1 = new error.ElementClickInterceptedError(
    undefined,
    undefined,
    obscuredEl,
    { x: 1, y: 2 }
  );
  equal("ElementClickInterceptedError", err1.name);
  equal(
    "Element <b> is not clickable at point (1,2) " +
      "because another element <a> obscures it",
    err1.message
  );
  equal("element click intercepted", err1.status);
  ok(err1 instanceof error.WebDriverError);

  obscuredEl.style.pointerEvents = "none";
  let err2 = new error.ElementClickInterceptedError(
    undefined,
    undefined,
    obscuredEl,
    { x: 1, y: 2 }
  );
  equal(
    "Element <b> is not clickable at point (1,2) " +
      "because it does not have pointer events enabled, " +
      "and element <a> would receive the click instead",
    err2.message
  );
});

add_task(function test_ElementNotAccessibleError() {
  let err = new error.ElementNotAccessibleError("foo");
  equal("ElementNotAccessibleError", err.name);
  equal("foo", err.message);
  equal("element not accessible", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_ElementNotInteractableError() {
  let err = new error.ElementNotInteractableError("foo");
  equal("ElementNotInteractableError", err.name);
  equal("foo", err.message);
  equal("element not interactable", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_InsecureCertificateError() {
  let err = new error.InsecureCertificateError("foo");
  equal("InsecureCertificateError", err.name);
  equal("foo", err.message);
  equal("insecure certificate", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_InvalidArgumentError() {
  let err = new error.InvalidArgumentError("foo");
  equal("InvalidArgumentError", err.name);
  equal("foo", err.message);
  equal("invalid argument", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_InvalidCookieDomainError() {
  let err = new error.InvalidCookieDomainError("foo");
  equal("InvalidCookieDomainError", err.name);
  equal("foo", err.message);
  equal("invalid cookie domain", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_InvalidElementStateError() {
  let err = new error.InvalidElementStateError("foo");
  equal("InvalidElementStateError", err.name);
  equal("foo", err.message);
  equal("invalid element state", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_InvalidSelectorError() {
  let err = new error.InvalidSelectorError("foo");
  equal("InvalidSelectorError", err.name);
  equal("foo", err.message);
  equal("invalid selector", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_InvalidSessionIDError() {
  let err = new error.InvalidSessionIDError("foo");
  equal("InvalidSessionIDError", err.name);
  equal("foo", err.message);
  equal("invalid session id", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_InvalidWebExtensionError() {
  let err = new error.InvalidWebExtensionError("foo");
  equal("InvalidWebExtensionError", err.name);
  equal("foo", err.message);
  equal("invalid web extension", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_JavaScriptError() {
  let err = new error.JavaScriptError("foo");
  equal("JavaScriptError", err.name);
  equal("foo", err.message);
  equal("javascript error", err.status);
  ok(err instanceof error.WebDriverError);

  equal("", new error.JavaScriptError(undefined).message);

  let superErr = new RangeError("foo");
  let inheritedErr = new error.JavaScriptError(superErr);
  equal("RangeError: foo", inheritedErr.message);
  equal(superErr.stack, inheritedErr.stack);
  equal(superErr.lineNumber, inheritedErr.lineNumber);
  equal(superErr.columnNumber, inheritedErr.columnNumber);
});

add_task(function test_MoveTargetOutOfBoundsError() {
  let err = new error.MoveTargetOutOfBoundsError("foo");
  equal("MoveTargetOutOfBoundsError", err.name);
  equal("foo", err.message);
  equal("move target out of bounds", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchAlertError() {
  let err = new error.NoSuchAlertError("foo");
  equal("NoSuchAlertError", err.name);
  equal("foo", err.message);
  equal("no such alert", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchElementError() {
  let err = new error.NoSuchElementError("foo");
  equal("NoSuchElementError", err.name);
  equal("foo", err.message);
  equal("no such element", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchFrameError() {
  let err = new error.NoSuchFrameError("foo");
  equal("NoSuchFrameError", err.name);
  equal("foo", err.message);
  equal("no such frame", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchHandleError() {
  let err = new error.NoSuchHandleError("foo");
  equal("NoSuchHandleError", err.name);
  equal("foo", err.message);
  equal("no such handle", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchInterceptError() {
  let err = new error.NoSuchInterceptError("foo");
  equal("NoSuchInterceptError", err.name);
  equal("foo", err.message);
  equal("no such intercept", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchNetworkCollectorError() {
  let err = new error.NoSuchNetworkCollectorError("foo");
  equal("NoSuchNetworkCollectorError", err.name);
  equal("foo", err.message);
  equal("no such network collector", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchNetworkDataError() {
  let err = new error.NoSuchNetworkDataError("foo");
  equal("NoSuchNetworkDataError", err.name);
  equal("foo", err.message);
  equal("no such network data", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchNodeError() {
  let err = new error.NoSuchNodeError("foo");
  equal("NoSuchNodeError", err.name);
  equal("foo", err.message);
  equal("no such node", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchRequestError() {
  let err = new error.NoSuchRequestError("foo");
  equal("NoSuchRequestError", err.name);
  equal("foo", err.message);
  equal("no such request", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchScriptError() {
  let err = new error.NoSuchScriptError("foo");
  equal("NoSuchScriptError", err.name);
  equal("foo", err.message);
  equal("no such script", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchShadowRootError() {
  let err = new error.NoSuchShadowRootError("foo");
  equal("NoSuchShadowRootError", err.name);
  equal("foo", err.message);
  equal("no such shadow root", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchUserContextError() {
  let err = new error.NoSuchUserContextError("foo");
  equal("NoSuchUserContextError", err.name);
  equal("foo", err.message);
  equal("no such user context", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchWebExtensionError() {
  let err = new error.NoSuchWebExtensionError("foo");
  equal("NoSuchWebExtensionError", err.name);
  equal("foo", err.message);
  equal("no such web extension", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_NoSuchWindowError() {
  let err = new error.NoSuchWindowError("foo");
  equal("NoSuchWindowError", err.name);
  equal("foo", err.message);
  equal("no such window", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_ScriptTimeoutError() {
  let err = new error.ScriptTimeoutError("foo");
  equal("ScriptTimeoutError", err.name);
  equal("foo", err.message);
  equal("script timeout", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_SessionNotCreatedError() {
  let err = new error.SessionNotCreatedError("foo");
  equal("SessionNotCreatedError", err.name);
  equal("foo", err.message);
  equal("session not created", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_StaleElementReferenceError() {
  let err = new error.StaleElementReferenceError("foo");
  equal("StaleElementReferenceError", err.name);
  equal("foo", err.message);
  equal("stale element reference", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_TimeoutError() {
  let err = new error.TimeoutError("foo");
  equal("TimeoutError", err.name);
  equal("foo", err.message);
  equal("timeout", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_UnableToSetCookieError() {
  let err = new error.UnableToSetCookieError("foo");
  equal("UnableToSetCookieError", err.name);
  equal("foo", err.message);
  equal("unable to set cookie", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_UnableToSetFileInputError() {
  let err = new error.UnableToSetFileInputError("foo");
  equal("UnableToSetFileInputError", err.name);
  equal("foo", err.message);
  equal("unable to set file input", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_UnavailableNetworkDataError() {
  let err = new error.UnavailableNetworkDataError("foo");
  equal("UnavailableNetworkDataError", err.name);
  equal("foo", err.message);
  equal("unavailable network data", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_UnexpectedAlertOpenError() {
  let err = new error.UnexpectedAlertOpenError("foo");
  equal("UnexpectedAlertOpenError", err.name);
  equal("foo", err.message);
  equal("unexpected alert open", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_UnknownCommandError() {
  let err = new error.UnknownCommandError("foo");
  equal("UnknownCommandError", err.name);
  equal("foo", err.message);
  equal("unknown command", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_UnknownError() {
  let err = new error.UnknownError("foo");
  equal("UnknownError", err.name);
  equal("foo", err.message);
  equal("unknown error", err.status);
  ok(err instanceof error.WebDriverError);
});

add_task(function test_UnsupportedOperationError() {
  let err = new error.UnsupportedOperationError("foo");
  equal("UnsupportedOperationError", err.name);
  equal("foo", err.message);
  equal("unsupported operation", err.status);
  ok(err instanceof error.WebDriverError);
});

Messung V0.5 in Prozent
C=99 H=93 G=95

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:  (Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-10-06) ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Diese beiden folgenden Angebotsgruppen bietet das Unternehmen

Angebot

Hier finden Sie eine Liste der Produkte des Unternehmens






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126864
#Domains=1897691