diff options
Diffstat (limited to 'toolkit/themes/osx/reftests/baseline.xul')
-rw-r--r-- | toolkit/themes/osx/reftests/baseline.xul | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/toolkit/themes/osx/reftests/baseline.xul b/toolkit/themes/osx/reftests/baseline.xul deleted file mode 100644 index 2ec6f5132f..0000000000 --- a/toolkit/themes/osx/reftests/baseline.xul +++ /dev/null @@ -1,175 +0,0 @@ -<?xml version="1.0"?> -<?xml-stylesheet href="chrome://global/skin" type="text/css"?> - -<!-- - * This is a complicated test. - * XUL authors like to place several different widgets on the same line by - * putting them in a <hbox align="center">. In order for this to look good, - * the baselines of the text contained in the widgets should line up. - * This is what this test is testing. - * The test passes if it's completely white. - * - * It works like this: - * For every combination of two different widgets (where widget is one of - * label, radio, checkbox, button, textbox, menulist, menulist[editable="true"] or - * filefield), there's a stack with two layers. The back layer in the stack is - * just a vertically centered label with a bunch of underscores. This is the - * baseline that the text on the widgets should hit. - * On the foreground layer in the stack we've placed the pair of widgets we're - * testing. They also have underscores in their labels. - * - * Now we want to test whether the underscores in the foreground layer are directly - * on top of those in the back layer. For that we use color-keying and a tricky - * SVG color transformation. - * The back layer of the stack has a red background; the underscores of the - * back label are in white (and have a white text-shadow in order to fill up the - * gaps between the individual letters). - * Now we want the foreground layer to be solid white, except for those pixels - * that make up the labels: These should be transparent. - * So if the baselines line up, everything is white, since at those pixels where - * the foreground is transparent, only the white pixels from the back layer shine - * through. If the baselines don't line up, red pixels from the background will - * shine through, and the comparison with about:blank (completely white) will fail. - * - * So how do we get the foreground white and transparent? That's the job of the - * SVG color transformation filter. It's a simple matrix that makes turns opaque - * yellow into transparent and all other colors into white. - * --> - -<window title="Baseline test" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - xmlns:html="http://www.w3.org/1999/xhtml" - xmlns:svg="http://www.w3.org/2000/svg" - orient="vertical" - class="reftest-wait" - onload="loaded()"> - -<html:style><![CDATA[ -window { - -moz-appearance: none; - background-color: white; -} -.regular { - font: -moz-dialog; -} -.small { - font: message-box; -} -.spacer { - height: 40px; -} -stack > hbox:first-child { - background: red; - color: white; - text-shadow: 5px 0 white, -5px 0 white; -} -stack > .foreground { - filter: url(#yellow2transparent); -} -stack > hbox:last-child > * { - color: yellow; -} -]]> -</html:style> - - <svg:svg style="visibility: collapse;"> - <svg:filter id="yellow2transparent" color-interpolation-filters="sRGB"> - <svg:feColorMatrix type="matrix" - values="0 0 0 0 1 - 0 0 0 0 1 - 0 0 0 0 1 - -100 -100 100 -100 300"/> - </svg:filter> - </svg:svg> - -<script type="application/javascript;version=1.8"><![CDATA[ - -function cE(elem) { - return document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", elem); -} -function elWithValue(elem, val) { - let e = cE(elem); - e.setAttribute(elem == "label" || elem == "textbox" ? "value" : "label", val); - return e; -} - -function allPairs(set) { - let ps = []; - for(let i = 0; i < set.length; ++i) { - for (let j = i + 1; j < set.length; ++j) { - ps.push([set[i], set[j]]); - } - } - return ps; -} - -function createLabel(v) { - return elWithValue("label", v); -} -function createRadio(v) { - return elWithValue("radio", v); -} -function createCheckbox(v) { - return elWithValue("checkbox", v); -} -function createButton(v) { - return elWithValue("button", v); -} -function createTextField(v) { - return elWithValue("textbox", v); -} -function createMenulist(v) { - let [list, popup, item] = [cE("menulist"), cE("menupopup"), elWithValue("menuitem", v)]; - item.setAttribute("selected", "true"); - popup.appendChild(item); - list.appendChild(popup); - return list; -} -function createEditableMenulist(v) { - let list = createMenulist(v); - list.setAttribute("editable", "true"); - return list; -} -function createFileField(v) { - let field = elWithValue("filefield", v); - field.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrCaTT51nAoFAIBAIBAKB4MoCtVsCPjrGuiwAAAAASUVORK5CYII="); - return field; -} -function loaded() { - let template = document.getElementById("template"); - ["regular", "small"].forEach(function(size) { - let wrapper = document.querySelectorAll("#wrapper > ." + size)[0]; - allPairs([ - createLabel, createRadio, createCheckbox, createButton, createMenulist, createTextField, - /* createEditableMenulist, createFileField, */ /* These don't inherit "color" properly */ - ]).forEach(function(elemList) { - let newBox = template.cloneNode(true); - newBox.className = "spacer"; - let foregroundRow = newBox.firstChild.lastChild; - elemList.forEach(function(creator) { - foregroundRow.appendChild(creator("______")); - }); - wrapper.appendChild(newBox); - }); - }); - document.documentElement.className = ""; -} - -]]></script> - <vbox id="template"> - <stack> - <hbox align="center"> - <label value="______________________________________________"/> - </hbox> - <hbox align="center" class="foreground"> - </hbox> - </stack> - </vbox> - <hbox id="wrapper"> - <vbox class="regular" flex="1"/> - <vbox class="small" flex="1"/> - </hbox> - - <spacer flex="1"/> - -</window> |