tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_Errors.js (2984B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 const { error } = ChromeUtils.importESModule(
      6  "chrome://remote/content/shared/messagehandler/Errors.sys.mjs"
      7 );
      8 
      9 // Note: this test file is similar to remote/shared/webdriver/test/xpcshell/test_Errors.js
     10 // because shared/webdriver/Errors.sys.mjs and shared/messagehandler/Errors.sys.mjs share
     11 // similar helpers.
     12 
     13 add_task(function test_toJSON() {
     14  let e0 = new error.MessageHandlerError();
     15  let e0s = e0.toJSON();
     16  equal(e0s.error, "message handler error");
     17  equal(e0s.message, "");
     18 
     19  let e1 = new error.MessageHandlerError("a");
     20  let e1s = e1.toJSON();
     21  equal(e1s.message, e1.message);
     22 
     23  let e2 = new error.UnsupportedCommandError("foo");
     24  let e2s = e2.toJSON();
     25  equal(e2.status, e2s.error);
     26  equal(e2.message, e2s.message);
     27 });
     28 
     29 add_task(function test_fromJSON() {
     30  Assert.throws(
     31    () => error.MessageHandlerError.fromJSON({ error: "foo" }),
     32    /Not of MessageHandlerError descent/
     33  );
     34  Assert.throws(
     35    () => error.MessageHandlerError.fromJSON({ error: "Error" }),
     36    /Not of MessageHandlerError descent/
     37  );
     38  Assert.throws(
     39    () => error.MessageHandlerError.fromJSON({}),
     40    /Undeserialisable error type/
     41  );
     42  Assert.throws(
     43    () => error.MessageHandlerError.fromJSON(undefined),
     44    /TypeError/
     45  );
     46 
     47  let e1 = new error.MessageHandlerError("1");
     48  let e1r = error.MessageHandlerError.fromJSON({
     49    error: "message handler error",
     50    message: "1",
     51  });
     52  ok(e1r instanceof error.MessageHandlerError);
     53  equal(e1r.name, e1.name);
     54  equal(e1r.status, e1.status);
     55  equal(e1r.message, e1.message);
     56 
     57  let e2 = new error.UnsupportedCommandError("foo");
     58  let e2r = error.MessageHandlerError.fromJSON({
     59    error: "unsupported message handler command",
     60    message: "foo",
     61  });
     62  ok(e2r instanceof error.MessageHandlerError);
     63  ok(e2r instanceof error.UnsupportedCommandError);
     64  equal(e2r.name, e2.name);
     65  equal(e2r.status, e2.status);
     66  equal(e2r.message, e2.message);
     67 
     68  // parity with toJSON
     69  let e3 = new error.UnsupportedCommandError("foo");
     70  let e3toJSON = e3.toJSON();
     71  let e3fromJSON = error.MessageHandlerError.fromJSON(e3toJSON);
     72  equal(e3toJSON.error, e3fromJSON.status);
     73  equal(e3toJSON.message, e3fromJSON.message);
     74  equal(e3toJSON.stacktrace, e3fromJSON.stack);
     75 });
     76 
     77 add_task(function test_MessageHandlerError() {
     78  let err = new error.MessageHandlerError("foo");
     79  equal("MessageHandlerError", err.name);
     80  equal("foo", err.message);
     81  equal("message handler error", err.status);
     82  ok(err instanceof error.MessageHandlerError);
     83 });
     84 
     85 add_task(function test_UnsupportedCommandError() {
     86  let e = new error.UnsupportedCommandError("foo");
     87  equal("UnsupportedCommandError", e.name);
     88  equal("foo", e.message);
     89  equal("unsupported message handler command", e.status);
     90  ok(e instanceof error.MessageHandlerError);
     91 });