// For the original (development) tests, we want to make a bunch of changes to // the page as it loads. We don't want this for the conformance tests, so let // them opt out. if (typeof testsJsLibraryOnly == "undefined" || !testsJsLibraryOnly) { // Alert the reader of egregious Opera bug that will make the specced // implementation horribly buggy //@{ (function() { var div = document.createElement("div"); div.appendChild(document.createElement("br")); document.body.insertBefore(div, document.body.firstChild); var range = document.createRange(); range.setStart(div, 1); div.insertBefore(document.createElement("p"), div.firstChild); if (range.startOffset > range.startContainer.childNodes.length) { var warningDiv = document.createElement("p"); document.body.insertBefore(warningDiv, document.body.firstChild); warningDiv.style.fontWeight = "bold"; warningDiv.style.fontSize = "2em"; warningDiv.style.color = "red"; warningDiv.innerHTML = 'Your browser suffers from an egregious bug in range mutation that will give incorrect results for the spec columns in many cases. To ensure that the spec column contains the output actually required by the spec, use a different browser.'; } div.parentNode.removeChild(div); })(); //@} // Insert the toolbar thingie as soon as the script file is loaded //@{ (function() { var toolbarDiv = document.createElement("div"); toolbarDiv.id = "toolbar"; // Note: this is completely not a hack at all. toolbarDiv.innerHTML = "" + "" + ""; document.body.appendChild(toolbarDiv); })(); //@} // Confusingly, we're storing a string here, not a boolean. document.querySelector("#alert-checkbox").checked = localStorage["display-alerts"] != "false"; document.querySelector("#browser-checkbox").checked = localStorage["display-browser-tests"] != "false"; function updateAlertRowStyle() { //@{ var checked = document.querySelector("#alert-checkbox").checked; document.querySelector("#alerts").disabled = checked; localStorage["display-alerts"] = checked; } //@} updateAlertRowStyle(); // Feature-test whether the browser wraps at or not, and set word-wrap: // break-word where necessary if not. (IE and Opera don't wrap, Gecko and // WebKit do.) word-wrap: break-word will break anywhere at all, so it looks // significantly uglier. //@{ (function() { var wordWrapTestDiv = document.createElement("div"); wordWrapTestDiv.style.width = "5em"; document.body.appendChild(wordWrapTestDiv); wordWrapTestDiv.innerHTML = "abc"; var height1 = getComputedStyle(wordWrapTestDiv).height; wordWrapTestDiv.innerHTML = "abcabcabcabcabcabc"; var height2 = getComputedStyle(wordWrapTestDiv).height; document.body.removeChild(wordWrapTestDiv); if (height1 == height2) { document.body.className = (document.body.className + " wbr-workaround").trim(); } })(); //@} } // Now for the meat of the file. var tests = { backcolor: [ //@{ Same as hilitecolor (set below) ], //@} bold: [ //@{ 'foo[]bar', '

[foo

bar]

', '[foo bar]', '

[foo

bar

baz]

', '

[foo


bar]', 'foo[]bar', 'foo[]bar', 'foo{}bar', 'foo[]bar', 'foo[bar]baz', 'foo[barbaz]qozquz', 'foo[barbaz]qozquz', '{

foo

}', 'foo[bar]baz', 'fo[obarb]az', 'fooba[rb]az', 'fo[ob]arbaz', 'fo[obarb]az', 'foo[bar]baz', 'fo[obarb]az', 'fooba[rb]az', 'fo[ob]arbaz', 'fo[obarb]az', '
foob[a]rbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '{
foobarbaz
}', 'foo[bar]baz', 'foo[bar]baz', 'foobar[baz]', '[foo]barbaz', 'foo[bar]baz', 'foobar[baz]', '[foo]barbaz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo{}baz', 'foo{}baz', 'foo{}baz', 'foo{}baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', '{

foo

bar

}

baz

', '

foo[bar}

baz

', 'foo [bar baz] qoz quz sic', 'foo bar baz [qoz quz] sic', 'bar [baz] qoz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', '{foobar]baz', '{foobar]baz', '{foobar]baz', '{foobar]baz', 'foo[barbaz}', 'foo[barbaz}', 'foo[barbaz}', 'foo[barbaz}', '

foo[bar]baz

', '{

foobar]baz

', '

foo[barbaz

}', '

[foobarbaz]

', '{

foobarbaz]

', '

[foobarbaz

}', '{

foobarbaz

}', 'foobar[baz]quzqoz', 'foo[bar]baz', '{foo bar}', '{

foo

bar}', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]', 'foo{bar}baz', '[foobarbaz]', '[foo]', 'foo[bar]baz', '

foo[bar]baz

', // Tests for queryCommandIndeterm() and queryCommandState() 'fo[ob]arbaz', 'fooba[rb]az', 'fo[obarb]az', 'foo[b]arbaz', 'fooba[r]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo{bar}baz', 'fo[ob]arbaz', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', ], //@} createlink: [ //@{ 'foo[]bar', '

[foo

bar]

', '[foo bar]', '

[foo

bar

baz]

', '

[foo


bar]', 'foo[]bar', 'foo[]bar', 'foo{}bar', 'foo[]bar', 'foo[bar]baz', 'foo[barbaz]qozquz', 'foo[barbaz]qozquz', '{

foo

}', '
foob[a]rbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '{
foobarbaz
}', 'foo[bar]baz', 'foo[barbaz}', '{foobar]baz', '{foobarbaz}', '[foobarbaz]', 'foo[bar]baz', '[foo]barbaz', 'foobar[baz]', 'foo[bar]baz', 'foo[barbaz]', '[foobar]baz', '[foobarbaz]', 'foo[bar]baz', 'foo[barbaz}', '{foobar]baz', '{foobarbaz}', '[foobarbaz]', 'foo[bar]baz', 'foo[bar]baz', 'foo[barbaz]', '[foobar]baz', '[foobarbaz]', 'foo[bar]baz', 'foo[barbaz}', '{foobar]baz', '[foobarbaz]', 'foo[bar]baz', 'foo[bar]baz', ['', 'foo[bar]baz'], ], //@} // Opera requires this to be quoted, contrary to ES5 11.1.5 which allows // PropertyName to be any IdentifierName, and see 7.6 which defines // IdentifierName to include ReservedWord; Identifier excludes it. "delete": [ //@{ // Collapsed selection // // These three commented-out test call Firefox 5.0a2 to blow up, not // just throwing exceptions on the tests themselves but on many // subsequent tests too. //'[]foo', //'[]foo', //'

[]foo

', 'foo[]bar', 'foo{}bar', 'foo[]bar', 'foobar[]baz', 'foo[]baz', 'foö[]bar', 'foö[]bar', 'foö̧[]bar', 'ö[]bar', 'ö[]bar', 'ö̧[]bar', 'שָׁ[]לוֹם', 'שָׁלוֹ[]ם', '

foo

[]bar

', '

foo

[]bar', 'foo

[]bar

', '

foo

[]bar

', '

foo

[]bar', 'foo

[]bar

', '

foo

[]bar

', '

foo

[]bar', 'foo

[]bar

', '

foo

[]bar

', '

foo

[]bar

', '

foo

[]bar

', '

foo

[]bar', 'foo

[]bar

', '
foo
[]bar
', '
foo
[]bar', 'foo
[]bar', 'foo
[]bar', 'foo
[]bar', '

foo


[]bar', '

foo


[]bar

', '

foo



[]bar

', '

foo

[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo  []', ' [] foo', 'foo  []bar', 'foo  []bar', 'foo  []bar', 'foo []bar', 'foo []  bar', 'foo  [] bar', 'foo   []bar', 'foo []  bar', 'foo  [] bar', 'foo   []bar', 'foo  []bar', 'foo  []bar', 'foo  []bar', 'foo []bar', '

foo

[] bar

', '
foo  []
', '
 [] foo
', '
foo  []bar
', '
foo  []bar
', '
foo  []bar
', '
foo  []
', '
 [] foo
', '
foo  []bar
', '
foo  []bar
', '
foo []bar
', '
foo  []
', '
 [] foo
', '
foo  []bar
', '
foo  []bar
', '
foo []bar
', '
foo  []
', '
 [] foo
', '
foo  []bar
', '
foo  []bar
', '
foo []bar
', '
foo  []
', '
 [] foo
', '
foo  []bar
', '
foo  []bar
', '
foo []bar
', // Tables with collapsed selection 'foo
[]bar
baz', 'foo
bar
[]baz', '

foo
[]bar

baz', '

foo
bar

[]baz', '
foo[]bar
', '
foo
[]bar
', 'foo
[]bar
baz', 'foo
bar
[]baz', '

foo
[]bar

baz', '

foo
bar

[]baz', '
foo
[]bar
', '
foo
[]bar
', 'foo

[]bar
baz', 'foo
bar

[]baz', '

foo

[]bar

baz', '

foo
bar

[]baz', '
foo

[]bar
', '
foo

[]bar
', 'foo


[]bar
baz', 'foo
bar
[]baz', '
foo
[]bar
', '
foo
[]bar
', // Lists with collapsed selection 'foo
  1. []bar
  2. baz
', 'foo
  1. []bar
  2. baz
', 'foo

  1. []bar
  2. baz
', '
  1. foo
  2. []bar
', '
  1. foo
  2. []bar
', '
  1. foo

  2. []bar
', '
  1. foo
  2. []bar
    baz
', '
  1. foo
    bar
  2. []baz
', '
  1. foo

    {}bar
', '
  1. foo

  2. []bar
', '
  1. foo
  2. []bar

', '
  1. foo

  2. []bar

', '
  1. foo
', 'foo
    1. []bar
', 'foo
  1. []bar
', 'foo
[]bar
baz
', 'foo
[]bar
', '
foo
[]bar
', '
foo
[]bar
baz
', '
foo
bar
[]baz
', '
  1. foo
[]bar', '
  1. foo
[]bar', '
  1. foo

[]bar', '

[]bar', '
  1. foo

[]bar', '
  1. foo

[]bar', '

  1. foo

[]bar', '

  1. foo

[]bar', '


[]bar', '

  1. foo

[]bar', '

  1. foo
{}
', '
  1. foo
{}
', '
  1. foo

{}
', '

{}
', '
  1. foo

{}
', '
  1. foo

{}
', '

  1. foo

{}
', '

  1. foo

{}
', '


{}
', '

  1. foo

{}
', // Indented stuff with collapsed selection 'foo

[]bar
', 'foo
[]bar
', 'foo
[]bar
', 'foo
[]bar
', 'foo

[]bar

baz

', 'foo

[]bar

baz

', 'foo

[]bar

baz

', 'foo

[]bar

baz

', 'foo

[]bar

baz

', 'foo

[]bar

baz

', 'foo
  1. []bar

extra', 'foo

bar
  1. []baz
quz

extra', 'foo

  1. bar
    1. []baz
  2. quz

extra', // Invisible stuff with collapsed selection 'foo[]bar', 'foo[]bar', 'foo[]bar', 'foo
[]bar', 'foo[]bar', 'foo[]bar', 'foo

[]bar

', 'foo

[]bar

', 'foo

[]bar

', 'foo

[]bar

', 'foo

[]bar

', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar
', '

foo

[]bar
', '

foo

[]bar
', '

foo

[]bar
', '

foo

[]bar
', '

foo

[]bar
', '

foo

[]bar
', '

foo

[]bar
', // Styled stuff with collapsed selection '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', 'foo

[]bar', '

foo

[]bar', '

foo

[]bar', '

foo

[]bar', // Uncollapsed selection 'foo[bar]baz', '

foo[bar]baz', '

foo{bar}baz', '

foo{bar}baz', '

[foobar]baz', '

{foobar}baz', '

foo[barbaz]', '

foo{barbaz}', '

foo[barbaz]quz', 'foo[bar]baz', 'foo{bar}baz', 'foo{bar}baz', 'foo[bar]baz', 'foo{bar}baz', 'foo{bar}baz', 'foo[barbaz]quz', '

foo

[bar]

baz

', '

foo

{bar}

baz

', '

foo

{bar

}

baz

', '

foo

{

bar}

baz

', '

foo

{

bar

}

baz

', '

foo[bar

baz]quz', '

foo[bar

baz]quz
', '

foo[bar

baz]quz

', '
foo[bar

baz]quz', '

foo[bar
baz]quz
', '

foo[bar

baz]quz', '

foo[bar

baz]quz', '

foo[bar

baz]quz

qozfoo[bar

baz]quz', '

foo[bar

baz]quz', '

foo

[bar

baz]

', 'foo[
]bar', '

foo[

]bar

', '

foo[

]bar
baz

', 'foo[

]bar

', 'foo{

}bar

', 'foo[

]bar
baz

', 'foo[

]bar

baz', 'foo{

bar

}baz', 'foo

{bar

}baz', 'foo{

bar}

baz', '

foo[

]bar', '

foo{

}bar', '

foo[

]bar
baz', '

foo[

]bar

baz

', 'foo[

]bar

', '

foo[

]bar', 'foo[

]bar

baz
', 'foo[
]bar

baz

', '

foo

bar[
]baz', '
foo

bar[

]baz', '

foo
{

]bar', '

foo

{

]bar', 'foo
{

]bar

', 'foo

{

]bar

', '

foo
{

}bar

', '

foo

{

}bar

', '
foo[bar]baz
quzqozqiz
', '
fooba[rb]az
quzqozqiz
', '
fo[obarb]az
quzqozqiz
', '
foobarba[z
q]uzqozqiz
', '
[foobarbaz]
quzqozqiz
', '
[foobarbaz
quzqozqiz]
', '{
foobarbaz
quzqozqiz
}', '
fooba[r
bazquz
q]ozqiz
', '

fo[o
b]ar

baz', '

foo
ba[r

b]az', '

fo[o
bar

b]az', '

foo

  1. ba[r
  2. b]az

quz', '

foo

  1. bar
  2. [baz]

quz', '

fo[o

  1. b]ar
  2. baz

quz', '

foo

  1. bar
  2. ba[z

q]uz', '

fo[o

  1. bar
  2. b]az

quz', '

fo[o

  1. bar
  2. baz

q]uz', '

  1. fo[o
  1. b]ar
', '
  1. fo[o
', 'foo[
  1. ]bar
', '
  1. foo[
  2. ]bar
', 'foo[
]bar
baz
', 'foo[
]bar
', '
foo[
]bar
', '
foo[
]bar
baz
', '
foo
bar[
]baz
', 'foo [ bar]', 'foo [ bar]', '[foo ] bar', '[foo ] bar', // Do we merge based on element names or the display property? '

fo[o

b]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', // https://bugs.webkit.org/show_bug.cgi?id=35281 // http://www.w3.org/Bugs/Public/show_bug.cgi?id=13976 '

  1. foo
{}
  1. bar
', '
  1. foo

{}

  1. bar
', '
  1. foo

{}

  1. bar
', '
  1. foo
{}
  1. bar
', '
  1. foo
{}
  1. bar
', '
  1. foo
{}
  1. bar
', '
  1. foo
{}
  1. bar
', // Broken test: http://www.w3.org/Bugs/Public/show_bug.cgi?id=14727 '!
    1. foo
  1. {}
    1. bar
', '
    1. foo
  1. {}
    1. bar
', '
  1. foo[
bar]
  1. baz
', '
  1. foo[

bar]

  1. baz
', '
  1. foo[

bar]

  1. baz
', '
  1. foo[]
  1. bar
', '
  1. foo
[bar
  1. ]baz
', '
  1. foo

[bar

  1. ]baz
', '
  1. foo

[bar

  1. ]baz

', '
  1. foo
  1. b[]ar
', '
    1. foo[
  1. bar
baz]
  1. quz
', '{}
', '

{}

', '
  1. foo[
  2. bar]
  1. baz
  1. quz
', '
  1. foo
{}
', '
  1. foo

{}

', '{}
  1. bar
', '

{}

  1. bar
', // http://www.w3.org/Bugs/Public/show_bug.cgi?id=13831 '

[foo]', '

[foo]', '

[foo]', '

{foo}', '

{foo}', '

f[]', '[foo]', '

[foo]
', ], //@} fontname: [ //@{ 'foo[]bar', '

[foo

bar]

', '[foo bar]', '

[foo

bar

baz]

', '

[foo


bar]', 'foo[]bar', 'foo[]bar', 'foo{}bar', 'foo[]bar', 'foo[bar]baz', 'foo[barbaz]qozquz', 'foo[barbaz]qozquz', '{

foo

}', '
foob[a]rbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '{
foobarbaz
}', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo
[bar]
baz', 'foo[bar]baz', 'foo[bar]baz', 'foob[a]rbaz', 'foob[a]rbaz', 'foob[a]rbaz', 'foo
b[a]r
baz', 'foob[a]rbaz', 'foob[a]rbaz', '[foobarbaz]', '[foobarbaz]', '[foobarbaz]', '[foo
bar
baz]', '[foobarbaz]', '[foobarbaz]', '[fooba]rbaz', '[fooba]rbaz', '[fooba]rbaz', '[foo
ba]r
baz', '[fooba]rbaz', '[fooba]rbaz', 'foob[arbaz]', 'foob[arbaz]', 'foob[arbaz]', 'foo
b[ar
baz]', 'foob[arbaz]', 'foob[arbaz]', 'foo[bar]baz', 'foob[a]rbaz', 'foo[bar]baz', 'foob[a]rbaz', 'fooba[rb]az', 'fo[ob]arbaz', 'foo{}
bar', 'foo{
}bar', 'foo{
b]ar', // Tests for queryCommandIndeterm() and queryCommandState() 'fo[ob]arbaz', 'fooba[rb]az', 'fo[obarb]az', 'foo[b]arbaz', 'fooba[r]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo{bar}baz', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[o
b]ar
', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', '
fo[o
b]ar', 'fo[ob]ar', ], //@} fontsize: [ //@{ 'foo[]bar', '

[foo

bar]

', '[foo bar]', '

[foo

bar

baz]

', '

[foo


bar]', 'foo[]bar', 'foo[]bar', 'foo{}bar', 'foo[]bar', 'foo[bar]baz', 'foo[barbaz]qozquz', 'foo[barbaz]qozquz', '{

foo

}', ["1", 'foo[bar]baz'], ["0", 'foo[bar]baz'], ["-5", 'foo[bar]baz'], ["6", 'foo[bar]baz'], ["7", 'foo[bar]baz'], ["8", 'foo[bar]baz'], ["100", 'foo[bar]baz'], ["2em", 'foo[bar]baz'], ["20pt", 'foo[bar]baz'], ["xx-large", 'foo[bar]baz'], [" 1 ", 'foo[bar]baz'], ["1.", 'foo[bar]baz'], ["1.0", 'foo[bar]baz'], ["1.0e2", 'foo[bar]baz'], ["1.1", 'foo[bar]baz'], ["1.9", 'foo[bar]baz'], ["+0", 'foo[bar]baz'], ["+1", 'foo[bar]baz'], ["+9", 'foo[bar]baz'], ["-0", 'foo[bar]baz'], ["-1", 'foo[bar]baz'], ["-9", 'foo[bar]baz'], ["", 'foo[bar]baz'], '
foob[a]rbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '{
foobarbaz
}', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foob[a]rbaz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foob[a]rbaz', 'foo[bar]baz', 'foo[bar]baz', '

foo[bar]baz

', '

foo[bar]baz

', '

foo[bar]baz

', '

foo[bar]baz

', ["3", '

foo[bar]baz

'], ["3", '

foo[bar]baz

'], ["3", '

foo[bar]baz

'], ["3", '

foo[bar]baz

'], // Minor algorithm bug: this changes the size of the "b" and "r" in // "bar" when we pull down styles ["3", 'foo b[a]r baz'], ["3", 'foo[bar]baz'], ["3", 'foob[a]rbaz'], ["3", 'foo[bar]baz'], ["3", 'foob[a]rbaz'], // Tests for queryCommandIndeterm() and queryCommandState() 'fo[ob]arbaz', 'fooba[rb]az', 'fo[obarb]az', 'foo[b]arbaz', 'fooba[r]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo{bar}baz', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', 'fo[ob]ar', // http://www.w3.org/Bugs/Public/show_bug.cgi?id=13829 ["!6", '[foo]'], ["!6", 'foo[bar]baz'], ["!6", '[foobarbaz]'], ], //@} forecolor: [ //@{ 'foo[]bar', '

[foo

bar]

', '[foo bar]', '

[foo

bar

baz]

', '

[foo


bar]', 'foo[]bar', 'foo[]bar', 'foo{}bar', 'foo[]bar', 'foo[bar]baz', 'foo[barbaz]qozquz', 'foo[barbaz]qozquz', '{

foo

}', ['blue', 'foo[bar]baz'], ['f', 'foo[bar]baz'], ['#f', 'foo[bar]baz'], ['00f', 'foo[bar]baz'], ['#00f', 'foo[bar]baz'], ['0000ff', 'foo[bar]baz'], ['#0000ff', 'foo[bar]baz'], ['000000fff', 'foo[bar]baz'], ['#000000fff', 'foo[bar]baz'], ['rgb(0, 0, 255)', 'foo[bar]baz'], ['rgb(0%, 0%, 100%)', 'foo[bar]baz'], ['rgb( 0 ,0 ,255)', 'foo[bar]baz'], ['rgba(0, 0, 255, 0.0)', 'foo[bar]baz'], ['rgb(15, -10, 375)', 'foo[bar]baz'], ['rgba(0, 0, 0, 1)', 'foo[bar]baz'], ['rgba(255, 255, 255, 1)', 'foo[bar]baz'], ['rgba(0, 0, 255, 0.5)', 'foo[bar]baz'], ['hsl(240, 100%, 50%)', 'foo[bar]baz'], ['cornsilk', 'foo[bar]baz'], ['potato quiche', 'foo[bar]baz'], ['transparent', 'foo[bar]baz'], ['currentColor', 'foo[bar]baz'], '
foob[a]rbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '{
foobarbaz
}', 'foo[bar]baz', 'foo{bar}baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo[bar]baz', 'foob[ar]baz', 'fooba[rba]z', 'foob[a]rbaz', ['blue', 'foo[bar]baz'], ['#0000ff', 'foo[bar]baz'], ['rgb(0,0,255)', 'foo[bar]baz'], // Tests for queryCommandValue() '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', '[foo]', // Tests for queryCommandIndeterm() and queryCommandState() 'fo[ob]arbaz', 'fooba[rb]az', 'fo[obarb]az', 'foo[b]arbaz', 'fooba[r]baz', 'foo[bar]baz', 'foo[bar]baz', 'foo{bar}baz', 'fo[ob]ar', 'fo[ob]ar', ], //@} formatblock: [ //@{ 'foo[]bar

extra', 'foo{}bar

extra', 'foo[]bar

extra', 'foo[bar]baz

extra', 'foo]bar[baz

extra', '{

foo

}', 'foo[barbaz]qozquz

extra', '
foob[a]rbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '
foobarbaz
', '{
foobarbaz
}', '

[foobar]
', '

[foobar]

', '
[foobar]
', '

[foobar]

', '

[foobar]

', '

[foobar]

', '

[foobar]

', '
[foobar]
', '
[foobar]
', '
[foo]
bar
', '
foo
[bar]
', '
[foo
bar]
', '
  1. [foobar]
', '', '
[foobar]
', '
[foobar]
', '
[foobar]
', '[foobar]', '[foobar]', '[foobar]', '[foobar]', ['

', 'foo[]bar

extra'], ['

', 'foo{}bar

extra'], ['

', 'foo[]bar

extra'], ['

', 'foo[bar]baz

extra'], ['

', 'foo]bar[baz

extra'], ['

', '{

foo

}'], ['

', 'foo[barbaz]qozquz

extra'], ['

', '
foob[a]rbaz
'], ['

', '
foobarbaz
'], ['

', '
foobarbaz
'], ['

', '
foobarbaz
'], ['

', '
foobarbaz
'], ['

', '{
foobarbaz
}'], ['

', '

[foobar]
'], ['

', '

[foobar]

'], ['

', '

[foobar]
'], ['

', '

[foobar]

'], ['

', '

[foobar]

'], ['

', '

[foobar]

'], ['

', '

[foobar]

'], ['

', '

[foobar]
'], ['

', '

[foobar]
'], ['

', '

[foo]
bar
'], ['

', '

foo
[bar]
'], ['

', '

[foo
bar]
'], ['

', '

  1. [foobar]
'], ['

', '

'], ['

', '

[foobar]
'], ['

', '

[foobar]
'], ['

', '

[foobar]'], ['

', '

[foobar]'], ['

', '

[foobar]
'], ['

', '[foobar]'], ['

', '[foobar]'], ['

', '[foobar]'], ['

', '[foobar]'], ['

', '
[foo]

extra'], ['

', '

[foo]

bar

extra'], ['

', '[foo]
bar

extra'], ['

', '

[foo

bar]

baz'], ['

', '
[foo]
'], ['
', '

[foo]

'], ['
', '

[foo]

bar

baz

'], ['
', '
[foo]
'], ['
', '
[foobar]
'], ['
', '
[foobar]
'], ['
', '
[foobar]
'], ['
', '
[foobar]
'], ['', '
[foobar]
'], ['
', '
[foobar]
'], ['
', '
[foobar]
'], ['

', '
[foobar]
'], ['

', '
[foobar]
'], ['

', '
[foobar]
'], ['

', '
[foobar]
'], ['

', '
[foobar]
'], ['
', '
[foobar]
'], ['', '
[foobar]
'], ['
  • ', '
    [foobar]
    '], ['
      ', '
      [foobar]
      '], ['

      ', '

      [foobar]
      '], ['
      ', '
      [foobar]
      '], ['
        ', '
        [foobar]
        '], ['', '
        [foobar]
        '], ['
        ', '

        [foobar]

        '], ['
        ', '

        [foobar]

        '], ['