summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/rules/test/browser_rules_edit-property-remove_01.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/rules/test/browser_rules_edit-property-remove_01.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/devtools/client/inspector/rules/test/browser_rules_edit-property-remove_01.js b/devtools/client/inspector/rules/test/browser_rules_edit-property-remove_01.js
new file mode 100644
index 0000000000..c929d252da
--- /dev/null
+++ b/devtools/client/inspector/rules/test/browser_rules_edit-property-remove_01.js
@@ -0,0 +1,66 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Tests removing a property by clearing the property name and pressing the
+// return key, and checks if the focus is moved to the appropriate editable
+// field.
+
+const TEST_URI = `
+ <style type='text/css'>
+ #testid {
+ background-color: #00F;
+ color: #00F;
+ }
+ </style>
+ <div id='testid'>Styled Node</div>
+`;
+
+add_task(async function () {
+ await addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI));
+ const { inspector, view } = await openRuleView();
+ await selectNode("#testid", inspector);
+
+ info("Getting the first property in the #testid rule");
+ const rule = getRuleViewRuleEditor(view, 1).rule;
+ let prop = rule.textProps[0];
+
+ info("Deleting the name of that property to remove the property");
+ await removeProperty(view, prop, false);
+
+ let newValue = await getRulePropertyValue(0, 0, "background-color");
+ is(newValue, "", "background-color should have been unset.");
+
+ info("Getting the new first property in the rule");
+ prop = rule.textProps[0];
+
+ let editor = inplaceEditor(view.styleDocument.activeElement);
+ is(
+ inplaceEditor(prop.editor.nameSpan),
+ editor,
+ "Focus should have moved to the next property name"
+ );
+
+ info("Deleting the name of that property to remove the property");
+ view.styleDocument.activeElement.blur();
+ await removeProperty(view, prop, false);
+
+ newValue = await getRulePropertyValue(0, 0, "color");
+ is(newValue, "", "color should have been unset.");
+
+ editor = inplaceEditor(view.styleDocument.activeElement);
+ is(
+ inplaceEditor(rule.editor.newPropSpan),
+ editor,
+ "Focus should have moved to the new property span"
+ );
+ is(rule.textProps.length, 0, "All properties should have been removed.");
+ is(
+ rule.editor.propertyList.children.length,
+ 1,
+ "Should have the new property span."
+ );
+
+ view.styleDocument.activeElement.blur();
+});