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
105
106
107
|
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* 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/. */
var _WORKINGDIR_ = null;
var _OS_ = null;
var Components = {
classes: {},
interfaces: {},
stack: {
caller: null,
},
utils: {
import() {},
},
};
function do_throw(message, stack) {
info("error: " + message);
info("stack: " + (stack ? stack : new Error().stack));
throw message;
}
var Assert = {
notEqual(left, right, stack) {
if (left == right) {
var text = "Assert.notEqual failed";
try {
text += ": " + left + " == " + right;
} catch (e) {}
do_throw(text, stack);
}
},
equal(left, right, stack) {
if (left != right) {
var text = "Assert.equal failed";
try {
text += ": " + left + " != " + right;
} catch (e) {}
do_throw(text, stack);
}
},
strictEqual(left, right, stack) {
if (left !== right) {
var text = "Assert.strictEqual failed";
try {
text += ": " + left + " !== " + right;
} catch (e) {}
do_throw(text, stack);
}
},
ok(condition, stack) {
this.equal(condition, true, stack);
},
};
function info(text) {
dump("INFO: " + text + "\n");
}
function FileFaker(path) {
this._path = path;
}
FileFaker.prototype = {
get path() {
return this._path;
},
get parent() {
let lastSlash = this._path.lastIndexOf("/");
if (lastSlash == -1) {
return "";
}
this._path = this._path.substring(0, lastSlash);
return this;
},
append(leaf) {
this._path = this._path + "/" + leaf;
},
};
function do_get_file(path) {
if (!_WORKINGDIR_) {
do_throw("No way to fake files if working directory is unknown!");
}
let lf = new FileFaker(_WORKINGDIR_);
let bits = path.split("/");
for (let i = 0; i < bits.length; i++) {
if (bits[i]) {
if (bits[i] == "..") {
lf = lf.parent;
} else {
lf.append(bits[i]);
}
}
}
return lf;
}
function get_os() {
return _OS_;
}
|