summaryrefslogtreecommitdiffstats
path: root/tools/lint/eslint/eslint-plugin-mozilla/tests/valid-ci-uses.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /tools/lint/eslint/eslint-plugin-mozilla/tests/valid-ci-uses.js
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tools/lint/eslint/eslint-plugin-mozilla/tests/valid-ci-uses.js')
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/tests/valid-ci-uses.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/tests/valid-ci-uses.js b/tools/lint/eslint/eslint-plugin-mozilla/tests/valid-ci-uses.js
new file mode 100644
index 0000000000..e351711944
--- /dev/null
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/valid-ci-uses.js
@@ -0,0 +1,58 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// ------------------------------------------------------------------------------
+// Requirements
+// ------------------------------------------------------------------------------
+
+var os = require("os");
+var rule = require("../lib/rules/valid-ci-uses");
+var RuleTester = require("eslint").RuleTester;
+
+const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 13 } });
+
+// ------------------------------------------------------------------------------
+// Tests
+// ------------------------------------------------------------------------------
+
+function invalidCode(code, messageId, data) {
+ return { code, errors: [{ messageId, data }] };
+}
+
+process.env.MOZ_XPT_ARTIFACTS_DIR = `${__dirname}/xpidl`;
+
+const tests = {
+ valid: ["Ci.nsIURIFixup", "Ci.nsIURIFixup.FIXUP_FLAG_NONE"],
+ invalid: [
+ invalidCode("Ci.nsIURIFixup.UNKNOWN_CONSTANT", "unknownProperty", {
+ interface: "nsIURIFixup",
+ property: "UNKNOWN_CONSTANT",
+ }),
+ invalidCode("Ci.nsIFoo", "unknownInterface", {
+ interface: "nsIFoo",
+ }),
+ ],
+};
+
+// For ESLint tests, we only have a couple of xpt examples in the xpidl directory.
+// Therefore we can pretend that these interfaces no longer exist.
+switch (os.platform) {
+ case "windows":
+ tests.invalid.push(
+ invalidCode("Ci.nsIJumpListShortcut", "missingInterface")
+ );
+ break;
+ case "darwin":
+ tests.invalid.push(
+ invalidCode("Ci.nsIMacShellService", "missingInterface")
+ );
+ break;
+ case "linux":
+ tests.invalid.push(
+ invalidCode("Ci.mozISandboxReporter", "missingInterface")
+ );
+}
+
+ruleTester.run("valid-ci-uses", rule, tests);