/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ /* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; // Test - Toggling rules linked to the element and the class // Checking whether the compatibility warning icon is displayed // correctly. // If a rule is disabled, it is marked compatible to keep // consistency with compatibility panel. // We test both the compatible and incompatible rules here const TEST_URI = `
`; const TEST_DATA_INITIAL = [ { selector: ".test-class-linked", rules: [ {}, { color: { value: "green" }, "background-color": { value: "black" }, "-moz-float-edge": { value: "content-box", expected: COMPATIBILITY_TOOLTIP_MESSAGE.deprecated, }, }, ], }, { selector: ".test-inline", rules: [ { color: { value: "pink" }, "user-select": { value: "none", expected: COMPATIBILITY_TOOLTIP_MESSAGE.default, }, }, { color: { value: "green" }, "background-color": { value: "black" }, "-moz-float-edge": { value: "content-box", expected: COMPATIBILITY_TOOLTIP_MESSAGE.deprecated, }, }, ], }, ]; const TEST_DATA_TOGGLE_CLASS_DECLARATION = [ { selector: ".test-class-linked", rules: [ {}, { color: { value: "green" }, "background-color": { value: "black" }, "-moz-float-edge": { value: "content-box" }, }, ], }, { selector: ".test-inline", rules: [ { color: { value: "pink" }, "user-select": { value: "none", expected: COMPATIBILITY_TOOLTIP_MESSAGE.default, }, }, { color: { value: "green" }, "background-color": { value: "black" }, "-moz-float-edge": { value: "content-box" }, }, ], }, ]; const TEST_DATA_TOGGLE_INLINE = [ { selector: ".test-class-linked", rules: [ {}, { color: { value: "green" }, "background-color": { value: "black" }, "-moz-float-edge": { value: "content-box" }, }, ], }, { selector: ".test-inline", rules: [ { color: { value: "pink" }, "user-select": { value: "none" }, }, { color: { value: "green" }, "background-color": { value: "black" }, "-moz-float-edge": { value: "content-box" }, }, ], }, ]; add_task(async function () { await pushPref( "devtools.inspector.ruleview.inline-compatibility-warning.enabled", true ); await addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)); const { inspector, view } = await openRuleView(); const mozFloatEdge = { "-moz-float-edge": "content-box" }; const userSelect = { "user-select": "none" }; await runCSSCompatibilityTests(view, inspector, TEST_DATA_INITIAL); info( 'Disable -moz-float-edge: "content-box" which is not cross browser compatible declaration' ); await toggleDeclaration(view, 1, mozFloatEdge); await runCSSCompatibilityTests( view, inspector, TEST_DATA_TOGGLE_CLASS_DECLARATION ); info( 'Toggle inline declaration "user-select": "none" and check the compatibility status' ); await selectNode(".test-inline", inspector); await toggleDeclaration(view, 0, userSelect); await runCSSCompatibilityTests(view, inspector, TEST_DATA_TOGGLE_INLINE); });