mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-06-20 23:38:58 +00:00
d7ee65a30f
- Bug 1180189 - Fix crash in mozilla::a11y::HTMLTableRowAccessible::GroupPosition, r=MarcoZ (a2ee5f2df8) - Bug 1194859 - crash in mozilla::a11y::ARIAGridCellAccessible::GroupPosition, r=marcoz (879bad005f) - Bug 1194859 - crash in mozilla::a11y::ARIAGridCellAccessible::GroupPosition(), part2, r=marcoz (38193050c0) - comment and style (a3ae06e5e6) - var/let (7b3552e2ba) - var-let and some misspatch fixes (a6d3b0c9cb) - Bug 1141978 - Support rowgroup and colgroup HTML scope, r=marcoz (11eedb88f0) - Bug 1146257 - spanned headers don't work well in our table code, r=marcoz (d9b11584c2) - remove unused MultiCompartmentMatcher (480d895553) - Bug 1168170 - Mark reference counted members of nsTimerImpl::mCallback as MOZ_OWNING_REF. r=froydnj (b84c55460a) - Bug 1178363 - make nsTimerImpl::SetDelayInternal a private method; r=poiru (5f70ed869e) - Bug 1178363 - make nsTimerImpl::Fire a private method; r=poiru (4b6007c376) - Bug 1178363 - make MOZ_TASK_TRACER-dependent bits of nsTimerImpl private; r=poiru (e1f54cde97) - Bug 1178363 - make nsTimerImpl::PostTimerEvent a private method; r=poiru (0a0b71eae3) - Bug 1178363 - make nsTimerImpl::GetGeneration a private method; r=poiru (593d3a3f2d) - Bug 1059572 - Part 0: Fuzz test for timers. r=nfroyd (7b03728aa4) - Bug 1059572 - Part 0.5: Fixes for pre-existing problems in TestTimers. r=nfroyd (e463afc995) - Bug 1059572 - Part 1: Move PostTimerEvent to TimerThread to allow TimerThread's monitor to protect it. r=nfroyd (5e56ce272a) - Bug 1059572 - Part 2: Make absolutely sure a timer is removed before reinitting it. r=nfroyd (7d916a9aa9) - Bug 1190735 - Remove nsITimer.TYPE_REPEATING_PRECISE. r=froydnj. (34f7e4c02e) - Bug 1203427 (part 5) - Add logging of timer firings. r=froydnj. (664954eef7)
137 lines
5.3 KiB
JavaScript
137 lines
5.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
var plaintextURL = "data:text/plain,hello+world";
|
|
var htmlURL = "about:mozilla";
|
|
|
|
add_task(function* setup() {
|
|
registerCleanupFunction(function() {
|
|
SpecialPowers.clearUserPref("view_source.tab_size");
|
|
SpecialPowers.clearUserPref("view_source.wrap_long_lines");
|
|
SpecialPowers.clearUserPref("view_source.syntax_highlight");
|
|
});
|
|
});
|
|
|
|
add_task(function*() {
|
|
yield exercisePrefs(plaintextURL, false);
|
|
yield exercisePrefs(htmlURL, true);
|
|
});
|
|
|
|
var exercisePrefs = Task.async(function* (source, highlightable) {
|
|
let win = yield loadViewSourceWindow(source);
|
|
let wrapMenuItem = win.document.getElementById("menu_wrapLongLines");
|
|
let syntaxMenuItem = win.document.getElementById("menu_highlightSyntax");
|
|
|
|
// Strip checked="false" attributes, since we're not interested in them.
|
|
if (wrapMenuItem.getAttribute("checked") == "false") {
|
|
wrapMenuItem.removeAttribute("checked");
|
|
}
|
|
if (syntaxMenuItem.getAttribute("checked") == "false") {
|
|
syntaxMenuItem.removeAttribute("checked");
|
|
}
|
|
|
|
// Test the default states of these menu items.
|
|
is(wrapMenuItem.hasAttribute("checked"), false,
|
|
"Wrap menu item not checked by default");
|
|
is(syntaxMenuItem.hasAttribute("checked"), true,
|
|
"Syntax menu item checked by default");
|
|
|
|
yield checkStyle(win, "-moz-tab-size", 4);
|
|
yield checkStyle(win, "white-space", "pre");
|
|
|
|
// Next, test that the Wrap Long Lines menu item works.
|
|
let prefReady = waitForPrefChange("view_source.wrap_long_lines");
|
|
simulateClick(wrapMenuItem);
|
|
is(wrapMenuItem.hasAttribute("checked"), true, "Wrap menu item checked");
|
|
yield prefReady;
|
|
is(SpecialPowers.getBoolPref("view_source.wrap_long_lines"), true, "Wrap pref set");
|
|
|
|
yield checkStyle(win, "white-space", "pre-wrap");
|
|
|
|
prefReady = waitForPrefChange("view_source.wrap_long_lines");
|
|
simulateClick(wrapMenuItem);
|
|
is(wrapMenuItem.hasAttribute("checked"), false, "Wrap menu item unchecked");
|
|
yield prefReady;
|
|
is(SpecialPowers.getBoolPref("view_source.wrap_long_lines"), false, "Wrap pref set");
|
|
yield checkStyle(win, "white-space", "pre");
|
|
|
|
// Check that the Syntax Highlighting menu item works.
|
|
prefReady = waitForPrefChange("view_source.syntax_highlight");
|
|
simulateClick(syntaxMenuItem);
|
|
is(syntaxMenuItem.hasAttribute("checked"), false, "Syntax menu item unchecked");
|
|
yield prefReady;
|
|
is(SpecialPowers.getBoolPref("view_source.syntax_highlight"), false, "Syntax highlighting pref set");
|
|
yield checkHighlight(win, false);
|
|
|
|
prefReady = waitForPrefChange("view_source.syntax_highlight");
|
|
simulateClick(syntaxMenuItem);
|
|
is(syntaxMenuItem.hasAttribute("checked"), true, "Syntax menu item checked");
|
|
yield prefReady;
|
|
is(SpecialPowers.getBoolPref("view_source.syntax_highlight"), true, "Syntax highlighting pref set");
|
|
yield checkHighlight(win, highlightable);
|
|
yield BrowserTestUtils.closeWindow(win);
|
|
|
|
// Open a new view-source window to check that the prefs are obeyed.
|
|
SpecialPowers.setIntPref("view_source.tab_size", 2);
|
|
SpecialPowers.setBoolPref("view_source.wrap_long_lines", true);
|
|
SpecialPowers.setBoolPref("view_source.syntax_highlight", false);
|
|
|
|
win = yield loadViewSourceWindow(source);
|
|
wrapMenuItem = win.document.getElementById("menu_wrapLongLines");
|
|
syntaxMenuItem = win.document.getElementById("menu_highlightSyntax");
|
|
|
|
// Strip checked="false" attributes, since we're not interested in them.
|
|
if (wrapMenuItem.getAttribute("checked") == "false") {
|
|
wrapMenuItem.removeAttribute("checked");
|
|
}
|
|
if (syntaxMenuItem.getAttribute("checked") == "false") {
|
|
syntaxMenuItem.removeAttribute("checked");
|
|
}
|
|
|
|
is(wrapMenuItem.hasAttribute("checked"), true, "Wrap menu item checked");
|
|
is(syntaxMenuItem.hasAttribute("checked"), false, "Syntax menu item unchecked");
|
|
yield checkStyle(win, "-moz-tab-size", 2);
|
|
yield checkStyle(win, "white-space", "pre-wrap");
|
|
yield checkHighlight(win, false);
|
|
|
|
SpecialPowers.clearUserPref("view_source.tab_size");
|
|
SpecialPowers.clearUserPref("view_source.wrap_long_lines");
|
|
SpecialPowers.clearUserPref("view_source.syntax_highlight");
|
|
|
|
yield BrowserTestUtils.closeWindow(win);
|
|
});
|
|
|
|
// Simulate a menu item click, including toggling the checked state.
|
|
// This saves us from opening the menu and trying to click on the item,
|
|
// which doesn't work on Mac OS X.
|
|
function simulateClick(aMenuItem) {
|
|
if (aMenuItem.hasAttribute("checked"))
|
|
aMenuItem.removeAttribute("checked");
|
|
else
|
|
aMenuItem.setAttribute("checked", "true");
|
|
|
|
aMenuItem.click();
|
|
}
|
|
|
|
var checkStyle = Task.async(function* (win, styleProperty, expected) {
|
|
let browser = win.gBrowser;
|
|
let value = yield ContentTask.spawn(browser, styleProperty, function* (styleProperty) {
|
|
let style = content.getComputedStyle(content.document.body, null);
|
|
return style.getPropertyValue(styleProperty);
|
|
});
|
|
is(value, expected, "Correct value of " + styleProperty);
|
|
});
|
|
|
|
var checkHighlight = Task.async(function* (win, expected) {
|
|
let browser = win.gBrowser;
|
|
let highlighted = yield ContentTask.spawn(browser, {}, function* () {
|
|
let spans = content.document.getElementsByTagName("span");
|
|
return Array.some(spans, (span) => {
|
|
let style = content.getComputedStyle(span, null);
|
|
return style.getPropertyValue("color") !== "rgb(0, 0, 0)";
|
|
});
|
|
});
|
|
is(highlighted, expected, "Syntax highlighting " + (expected ? "on" : "off"));
|
|
});
|