summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/rules/test/browser_rules_urls-clickable.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/rules/test/browser_rules_urls-clickable.js77
1 files changed, 77 insertions, 0 deletions
diff --git a/devtools/client/inspector/rules/test/browser_rules_urls-clickable.js b/devtools/client/inspector/rules/test/browser_rules_urls-clickable.js
new file mode 100644
index 0000000000..1d9574d73f
--- /dev/null
+++ b/devtools/client/inspector/rules/test/browser_rules_urls-clickable.js
@@ -0,0 +1,77 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Tests to make sure that URLs are clickable in the rule view
+
+const TEST_URI = URL_ROOT_SSL + "doc_urls_clickable.html";
+const TEST_IMAGE = URL_ROOT_SSL + "doc_test_image.png";
+const BASE_64_URL =
+ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAA" +
+ "FCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAA" +
+ "BJRU5ErkJggg==";
+
+add_task(async function () {
+ await addTab(TEST_URI);
+ const { inspector, view } = await openRuleView();
+ await selectNodes(inspector, view);
+});
+
+async function selectNodes(inspector, ruleView) {
+ const relative1 = ".relative1";
+ const relative2 = ".relative2";
+ const absolute = ".absolute";
+ const inline = ".inline";
+ const base64 = ".base64";
+ const noimage = ".noimage";
+ const inlineresolved = ".inline-resolved";
+
+ await selectNode(relative1, inspector);
+ let relativeLink = ruleView.styleDocument.querySelector(
+ ".ruleview-propertyvaluecontainer a"
+ );
+ ok(relativeLink, "Link exists for relative1 node");
+ is(relativeLink.getAttribute("href"), TEST_IMAGE, "href matches");
+
+ await selectNode(relative2, inspector);
+ relativeLink = ruleView.styleDocument.querySelector(
+ ".ruleview-propertyvaluecontainer a"
+ );
+ ok(relativeLink, "Link exists for relative2 node");
+ is(relativeLink.getAttribute("href"), TEST_IMAGE, "href matches");
+
+ await selectNode(absolute, inspector);
+ const absoluteLink = ruleView.styleDocument.querySelector(
+ ".ruleview-propertyvaluecontainer a"
+ );
+ ok(absoluteLink, "Link exists for absolute node");
+ is(absoluteLink.getAttribute("href"), TEST_IMAGE, "href matches");
+
+ await selectNode(inline, inspector);
+ const inlineLink = ruleView.styleDocument.querySelector(
+ ".ruleview-propertyvaluecontainer a"
+ );
+ ok(inlineLink, "Link exists for inline node");
+ is(inlineLink.getAttribute("href"), TEST_IMAGE, "href matches");
+
+ await selectNode(base64, inspector);
+ const base64Link = ruleView.styleDocument.querySelector(
+ ".ruleview-propertyvaluecontainer a"
+ );
+ ok(base64Link, "Link exists for base64 node");
+ is(base64Link.getAttribute("href"), BASE_64_URL, "href matches");
+
+ await selectNode(inlineresolved, inspector);
+ const inlineResolvedLink = ruleView.styleDocument.querySelector(
+ ".ruleview-propertyvaluecontainer a"
+ );
+ ok(inlineResolvedLink, "Link exists for style tag node");
+ is(inlineResolvedLink.getAttribute("href"), TEST_IMAGE, "href matches");
+
+ await selectNode(noimage, inspector);
+ const noimageLink = ruleView.styleDocument.querySelector(
+ ".ruleview-propertyvaluecontainer a"
+ );
+ ok(!noimageLink, "There is no link for the node with no background image");
+}