gecko-dev/browser/devtools/styleinspector/test/browser_bug683672.js

106 строки
2.9 KiB
JavaScript
Исходник Обычный вид История

/* vim: set ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
// Tests that the style inspector works properly
let doc;
let stylePanel;
Bug 692625 - Move browser/devtools/styleinspector/test/browser/ to browser/devtools/styleinspector/test/; r=rcampbell --HG-- rename : browser/devtools/styleinspector/test/browser/Makefile.in => browser/devtools/styleinspector/test/Makefile.in rename : browser/devtools/styleinspector/test/browser/browser_bug683672.html => browser/devtools/styleinspector/test/browser_bug683672.html rename : browser/devtools/styleinspector/test/browser/browser_bug683672.js => browser/devtools/styleinspector/test/browser_bug683672.js rename : browser/devtools/styleinspector/test/browser/browser_bug_692400_element_style.js => browser/devtools/styleinspector/test/browser_bug_692400_element_style.js rename : browser/devtools/styleinspector/test/browser/browser_csslogic_inherited.js => browser/devtools/styleinspector/test/browser_csslogic_inherited.js rename : browser/devtools/styleinspector/test/browser/browser_ruleview_editor.js => browser/devtools/styleinspector/test/browser_ruleview_editor.js rename : browser/devtools/styleinspector/test/browser/browser_ruleview_inherit.js => browser/devtools/styleinspector/test/browser_ruleview_inherit.js rename : browser/devtools/styleinspector/test/browser/browser_ruleview_manipulation.js => browser/devtools/styleinspector/test/browser_ruleview_manipulation.js rename : browser/devtools/styleinspector/test/browser/browser_ruleview_override.js => browser/devtools/styleinspector/test/browser_ruleview_override.js rename : browser/devtools/styleinspector/test/browser/browser_ruleview_ui.js => browser/devtools/styleinspector/test/browser_ruleview_ui.js rename : browser/devtools/styleinspector/test/browser/browser_styleinspector.js => browser/devtools/styleinspector/test/browser_styleinspector.js rename : browser/devtools/styleinspector/test/browser/browser_styleinspector_bug_672744_search_filter.js => browser/devtools/styleinspector/test/browser_styleinspector_bug_672744_search_filter.js rename : browser/devtools/styleinspector/test/browser/browser_styleinspector_bug_672746_default_styles.js => browser/devtools/styleinspector/test/browser_styleinspector_bug_672746_default_styles.js rename : browser/devtools/styleinspector/test/browser/browser_styleinspector_bug_689759_no_results_placeholder.js => browser/devtools/styleinspector/test/browser_styleinspector_bug_689759_no_results_placeholder.js rename : browser/devtools/styleinspector/test/browser/head.js => browser/devtools/styleinspector/test/head.js
2011-12-16 13:11:21 +04:00
const TEST_URI = "http://example.com/browser/browser/devtools/styleinspector/test/browser_bug683672.html";
let tempScope = {};
Cu.import("resource:///modules/devtools/CssHtmlTree.jsm", tempScope);
let CssHtmlTree = tempScope.CssHtmlTree;
let PropertyView = tempScope.PropertyView;
function test()
{
waitForExplicitFinish();
addTab(TEST_URI);
browser.addEventListener("load", tabLoaded, true);
}
function tabLoaded()
{
browser.removeEventListener("load", tabLoaded, true);
doc = content.document;
// ok(StyleInspector.isEnabled, "style inspector preference is enabled");
stylePanel = new StyleInspector(window);
Services.obs.addObserver(runTests, "StyleInspector-opened", false);
stylePanel.createPanel(false, function() {
stylePanel.open(doc.body);
});
}
function runTests()
{
Services.obs.removeObserver(runTests, "StyleInspector-opened", false);
ok(stylePanel.isOpen(), "style inspector is open");
testMatchedSelectors();
//testUnmatchedSelectors();
info("finishing up");
Services.obs.addObserver(finishUp, "StyleInspector-closed", false);
stylePanel.close();
}
function testMatchedSelectors()
{
info("checking selector counts, matched rules and titles");
let div = content.document.getElementById("test");
ok(div, "captain, we have the div");
info("selecting the div");
stylePanel.selectNode(div);
let htmlTree = stylePanel.cssHtmlTree;
is(div, htmlTree.viewedElement,
"style inspector node matches the selected node");
let propertyView = new PropertyView(htmlTree, "color");
let numMatchedSelectors = propertyView.propertyInfo.matchedSelectors.length;
is(numMatchedSelectors, 6,
"CssLogic returns the correct number of matched selectors for div");
is(propertyView.hasMatchedSelectors, true,
"hasMatchedSelectors returns true");
}
function testUnmatchedSelectors()
{
info("checking selector counts, unmatched rules and titles");
let body = content.document.body;
ok(body, "captain, we have a body");
info("selecting content.document.body");
stylePanel.selectNode(body);
let htmlTree = stylePanel.cssHtmlTree;
is(body, htmlTree.viewedElement,
"style inspector node matches the selected node");
let propertyView = new PropertyView(htmlTree, "color");
let numUnmatchedSelectors = propertyView.propertyInfo.unmatchedSelectors.length;
is(numUnmatchedSelectors, 13,
"CssLogic returns the correct number of unmatched selectors for body");
is(propertyView.hasUnmatchedSelectors, true,
"hasUnmatchedSelectors returns true");
}
function finishUp()
{
Services.obs.removeObserver(finishUp, "StyleInspector-closed", false);
ok(!stylePanel.isOpen(), "style inspector is closed");
doc = stylePanel = null;
gBrowser.removeCurrentTab();
finish();
}