diff -r 000000000000 -r 6474c204b198 browser/devtools/styleinspector/test/browser_styleinspector_tooltip-transform.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/devtools/styleinspector/test/browser_styleinspector_tooltip-transform.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,87 @@ +/* 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 that the css transform preview tooltip is shown on transform properties + +const PAGE_CONTENT = [ + '', + '
transformed element
' +].join("\n"); + +let test = asyncTest(function*() { + yield addTab("data:text/html,rule view css transform tooltip test"); + content.document.body.innerHTML = PAGE_CONTENT; + let {toolbox, inspector, view} = yield openRuleView(); + + info("Selecting the test node"); + yield selectNode("#testElement", inspector); + + info("Checking that transforms tooltips are shown in various rule-view properties"); + for (let selector of [".test-element", "div", "#testElement"]) { + yield testTransformTooltipOnSelector(view, selector); + } + + info("Checking that the transform tooltip doesn't appear for invalid transforms"); + yield testTransformTooltipNotShownOnInvalidTransform(view); + + info("Checking transforms in the computed-view"); + let {view} = yield openComputedView(); + yield testTransformTooltipOnComputedView(view); +}); + +function* testTransformTooltipOnSelector(view, selector) { + info("Testing that a transform tooltip appears on transform in " + selector); + + let {valueSpan} = getRuleViewProperty(view, selector, "transform"); + ok(valueSpan, "The transform property was found"); + yield assertHoverTooltipOn(view.previewTooltip, valueSpan); + + // The transform preview is canvas, so there's not much we can test, so for + // now, let's just be happy with the fact that the tooltips is shown! + ok(true, "Tooltip shown on the transform property in " + selector); +} + +function* testTransformTooltipNotShownOnInvalidTransform(view) { + let ruleEditor; + for (let rule of view._elementStyle.rules) { + if (rule.matchedSelectors[0] === "[attr]") { + ruleEditor = rule.editor; + } + } + ruleEditor.addProperty("transform", "muchTransform(suchAngle)", ""); + + let {valueSpan} = getRuleViewProperty(view, "[attr]", "transform"); + let isValid = yield isHoverTooltipTarget(view.previewTooltip, valueSpan); + ok(!isValid, "The tooltip did not appear on hover of an invalid transform value"); +} + +function* testTransformTooltipOnComputedView(view) { + info("Testing that a transform tooltip appears in the computed view too"); + + let {valueSpan} = getComputedViewProperty(view, "transform"); + yield assertHoverTooltipOn(view.tooltip, valueSpan); + + // The transform preview is canvas, so there's not much we can test, so for + // now, let's just be happy with the fact that the tooltips is shown! + ok(true, "Tooltip shown on the computed transform property"); +}