1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/* eslint-disable no-tabs */
const { RemoteAgentError, UnknownMethodError, UnsupportedError } =
ChromeUtils.importESModule("chrome://remote/content/cdp/Error.sys.mjs");
add_task(function test_RemoteAgentError_ctor() {
const e1 = new RemoteAgentError();
equal(e1.name, "RemoteAgentError");
equal(e1.message, "");
equal(e1.cause, e1.message);
const e2 = new RemoteAgentError("message");
equal(e2.message, "message");
equal(e2.cause, e2.message);
const e3 = new RemoteAgentError("message", "cause");
equal(e3.message, "message");
equal(e3.cause, "cause");
});
add_task(function test_RemoteAgentError_notify() {
// nothing much we can test, except test that it doesn't throw
new RemoteAgentError().notify();
});
add_task(function test_RemoteAgentError_toString() {
const e = new RemoteAgentError("message");
equal(e.toString(), RemoteAgentError.format(e));
equal(
e.toString({ stack: true }),
RemoteAgentError.format(e, { stack: true })
);
});
add_task(function test_RemoteAgentError_format() {
const { format } = RemoteAgentError;
equal(format({ name: "HippoError" }), "HippoError");
equal(format({ name: "HorseError", message: "neigh" }), "HorseError: neigh");
const dog = {
name: "DogError",
message: "woof",
stack: " one\ntwo\nthree ",
};
equal(format(dog), "DogError: woof");
equal(
format(dog, { stack: true }),
`DogError: woof:
one
two
three`
);
const cat = {
name: "CatError",
message: "meow",
stack: "four\nfive\nsix",
cause: dog,
};
equal(format(cat), "CatError: meow");
equal(
format(cat, { stack: true }),
`CatError: meow:
four
five
six
caused by: DogError: woof:
one
two
three`
);
});
add_task(function test_RemoteAgentError_fromJSON() {
const cdpErr = {
message: `TypeError: foo:
bar
baz`,
};
const err = RemoteAgentError.fromJSON(cdpErr);
equal(err.message, "TypeError: foo");
equal(err.stack, "bar\nbaz");
equal(err.cause, null);
});
add_task(function test_UnsupportedError() {
ok(new UnsupportedError() instanceof RemoteAgentError);
});
add_task(function test_UnknownMethodError() {
ok(new UnknownMethodError() instanceof RemoteAgentError);
ok(new UnknownMethodError("domain").message.endsWith("domain"));
ok(
new UnknownMethodError("domain", "command").message.endsWith(
"domain.command"
)
);
});
|