diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /toolkit/components/ctypes/tests/chrome/xpcshellTestHarnessAdaptor.js | |
parent | Initial commit. (diff) | |
download | firefox-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.js | 107 |
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_; +} |