summaryrefslogtreecommitdiffstats
path: root/toolkit/components/ctypes/tests/chrome/xpcshellTestHarnessAdaptor.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /toolkit/components/ctypes/tests/chrome/xpcshellTestHarnessAdaptor.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/ctypes/tests/chrome/xpcshellTestHarnessAdaptor.js')
-rw-r--r--toolkit/components/ctypes/tests/chrome/xpcshellTestHarnessAdaptor.js107
1 files changed, 107 insertions, 0 deletions
diff --git a/toolkit/components/ctypes/tests/chrome/xpcshellTestHarnessAdaptor.js b/toolkit/components/ctypes/tests/chrome/xpcshellTestHarnessAdaptor.js
new file mode 100644
index 0000000000..9e90b22561
--- /dev/null
+++ b/toolkit/components/ctypes/tests/chrome/xpcshellTestHarnessAdaptor.js
@@ -0,0 +1,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, allowNonexistent) {
+ 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_;
+}