",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"formatblock":[false,false,"",false,false,"div"]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["formatblock","
"],["inserttext","a"]],
"
fooa[]bar
",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["forwarddelete",""]],
"foo[]ar",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"forwarddelete":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]],
"foo
a[]ar",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["indent",""]],
"
foo[]bar
",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"indent":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["indent",""],["inserttext","a"]],
"
fooa[]bar
",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["inserthorizontalrule",""]],
"foo
{}bar",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"inserthorizontalrule":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["inserthtml","ab
cd"]],
"fooab
cd{}bar",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"inserthtml":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["inserthtml","ab
cd"],["inserttext","a"]],
"fooab
cd
a[]bar",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"]],
"foo
{}bar",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertimage":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertlinebreak",""]],
"foo
{}bar",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertlinebreak":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertorderedlist",""]],
"
- foo[]bar
",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertorderedlist":[false,false,"",false,true,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]],
"
- fooa[]bar
",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertparagraph",""]],
"
foo
{}bar
",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertparagraph":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]],
"
foo
a[]bar
",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertunorderedlist",""]],
"
",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertunorderedlist":[false,false,"",false,true,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]],
"
",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertunorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["justifycenter",""]],
"
foo[]bar
",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"justifycenter":[false,false,"left",false,true,"center"]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]],
"
fooa[]bar
",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"justifycenter":[false,false,"left",false,true,"center"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["justifyfull",""]],
"
foo[]bar
",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"justifyfull":[false,false,"left",false,true,"justify"]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]],
"
fooa[]bar
",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"justifyfull":[false,false,"left",false,true,"justify"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["justifyleft",""]],
"foo[]bar",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"justifyleft":[false,true,"left",false,true,"left"]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"justifyleft":[false,true,"left",false,true,"left"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["justifyright",""]],
"
foo[]bar
",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"justifyright":[false,false,"left",false,true,"right"]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]],
"
fooa[]bar
",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"justifyright":[false,false,"left",false,true,"right"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["outdent",""]],
"foo[]bar",
[true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"outdent":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","#00FFFF"],["outdent",""],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"outdent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["superscript",""],["subscript",""],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"superscript":[false,false,"",false,false,""],"subscript":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["subscript",""],["superscript",""],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"subscript":[false,false,"",false,false,""],"superscript":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["createlink","http://www.google.com/"],["forecolor","#0000FF"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"createlink":[false,false,"",false,false,""],"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["forecolor","#0000FF"],["createlink","http://www.google.com/"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"createlink":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["createlink","http://www.google.com/"],["forecolor","blue"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"createlink":[false,false,"",false,false,""],"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["forecolor","blue"],["createlink","http://www.google.com/"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"createlink":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["createlink","http://www.google.com/"],["forecolor","brown"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"createlink":[false,false,"",false,false,""],"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(165, 42, 42)"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["forecolor","brown"],["createlink","http://www.google.com/"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(165, 42, 42)"],"createlink":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["createlink","http://www.google.com/"],["forecolor","black"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"createlink":[false,false,"",false,false,""],"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["forecolor","black"],["createlink","http://www.google.com/"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"],"createlink":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["createlink","http://www.google.com/"],["underline",""],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"createlink":[false,false,"",false,false,""],"underline":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["underline",""],["createlink","http://www.google.com/"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"underline":[false,false,"",false,true,""],"createlink":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["createlink","http://www.google.com/"],["underline","","first application"],["underline","","second application"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true,true],
{"createlink":[false,false,"",false,false,""],"underline":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["underline","","first application"],["underline","","second application"],["createlink","http://www.google.com/"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true,true],
{"underline":[false,false,"",false,true,""],"createlink":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["subscript",""],["fontsize","2"],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"subscript":[false,false,"",false,true,""],"fontsize":[false,false,"3",false,false,"2"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["fontsize","2"],["subscript",""],["inserttext","a"]],
"foo
a[]bar",
[true,true,true],
{"fontsize":[false,false,"3",false,false,"2"],"subscript":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["subscript",""],["fontsize","3"],["inserttext","a"]],
"foo
a[]bar", //
should be outer-most element
[true,true,true],
{"subscript":[false,false,"",false,true,""],"fontsize":[false,false,"3",false,false,"3"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["fontsize","3"],["subscript",""],["inserttext","a"]],
"fooa[]bar", // should be outer-most element
[true,true,true],
{"fontsize":[false,false,"3",false,false,"3"],"subscript":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["hilitecolor","aqua"],["backcolor","tan"],["inserttext","a"]],
"fooa[]bar",
[true,true,true],
{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(210, 180, 140)"],"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(210, 180, 140)"],"inserttext":[false,false,"",false,false,""]}],
["foo[]bar",
[["backcolor","tan"],["hilitecolor","aqua"],["inserttext","a"]],
"fooa[]bar",
[true,true,true],
{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz", // should be outer-most element
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz", // should be outer-most element
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[bar]baz",
[["delete",""],["inserttext","a"]],
"fooa[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foobar]baz",
[["delete",""],["inserttext","a"]],
"a[]baz",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]", // should be outer-most element
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]", // should be outer-most element
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["foo[barbaz]",
[["delete",""],["inserttext","a"]],
"fooa[]",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[foo]
",
[["delete",""],["inserttext","a"]],
"a[]
",
[true,true],
{"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
["[abc]
",
[["styleWithCSS", "false"],["delete",""],["inserttext","a"]],
["a",
"a
"], // The should be deleted by "delete"
[true,true,true],
{"bold":[false,true,"",false,true,""]}],
["
abc[def]
",
[["styleWithCSS","false"],["delete",""],["inserttext","d"]],
["
abcd
",
"
abcd
"],
[true,true,true],
{"bold":[false,true,"",false,true,""]}],
["
[abc]
",
[["styleWithCSS", "false"],["delete",""],["insertparagraph",""],["inserttext","a"]],
["
a
",
"
a
"], // The
should be deleted by "delete", but new text should be in new
[true,true,true,true],
{"bold":[false,true,"",false,true,""]}],
["
abc[def]
",
[["styleWithCSS", "false"], ["delete",""],["insertparagraph",""],["inserttext","d"]],
["
abc
d
",
"
abc
d
",
"
abc
d
",
"
abc
d
"],
[true,true,true,true],
{"bold":[false,true,"",false,true,""]}],
["
[abc]
",
[["styleWithCSS", "false"],["insertparagraph",""],["inserttext","a"]],
["
a
",
"
a
"], // The
should be deleted by "insertparagraph", but new text should be in new
[true,true,true],
{"bold":[false,true,"",false,true,""]}],
["
abc[def]
",
[["styleWithCSS", "false"],["insertparagraph",""],["inserttext","d"]],
["
abc
d
",
"
abc
d
",
"
abc
d
",
"
abc
d
"],
[true,true,true],
{"bold":[false,true,"",false,true,""]}],
// Clearing style at end shouldn't leave empty inline element when there is
//
element in inline element
["
abc[]
",
[["styleWithCSS", "false"],["bold",""],["inserttext","d"]],
["
abcd
",
"
abcd
"],
[true,true,true],
{"bold":[false,true,"",false,false,""]}],
["
abc[]
",
[["styleWithCSS", "false"],["bold",""],["inserttext","d"]],
["
abcd
",
"
abcd
",
"
abcd
"],
[true,true,true],
{"bold":[false,true,"",false,false,""]}],
["
abc[]
",
[["styleWithCSS", "false"],["bold",""],["inserttext","d"]],
["
abcd
",
"
abcd
"],
[true,true,true],
{"bold":[false,true,"",false,false,""]}],
["
abc[]
",
[["styleWithCSS", "false"],["bold",""],["inserttext","d"]],
["
abcd
",
"
abcd
",
"
abcd
"],
[true,true,true],
{"bold":[false,true,"",false,false,""]}],
["
abc[]
",
[["styleWithCSS", "false"],["bold",""],["inserttext","d"]],
["
abcd
",
"
abcd
",
"
abcd
"],
[true,true,true],
{"bold":[false,true,"",false,false,""]}],
// In this case, second line text should be keep bold style.
["
abc[]
",
[["styleWithCSS", "false"],["bold",""],["inserttext","d"]],
"
abcd
",
[true,true,true],
{"bold":[false,true,"",false,false,""]}],
// Tests putting caret to right paragraph at insert paragraph, and preserve
// the style.
["abc
[def]ghi",
[["insertparagraph", ""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
["
abc
defghi
",
"abc
defghi
"],
[true,true,true,true],
{}],
["abc[
def]ghi",
[["insertparagraph", ""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
["
abc
defghi
",
"abc
defghi
"],
[true,true,true,true],
{}],
["abc
[def]ghi",
[["insertparagraph", ""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
["
abc
defghi
",
"abc
defghi
"],
[true,true,true,true],
{}],
["abc
{def}ghi",
[["insertparagraph", ""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
["
abc
defghi
",
"abc
defghi
"],
[true,true,true,true],
{}],
["abc{
def}ghi",
[["insertparagraph", ""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
["
abc
defghi
",
"abc
defghi
"],
[true,true,true,true],
{}],
// Tests preserving inline style of the last visible thing in the selection
// even after deleting selection.
// FYI: The expectations of the following similar tests are just based on
// Chrome, some of them may not be reasonable.
["
abc{def}ghi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc{def}ghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[defg]hi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abcdefghi
",
[true,true,true,true,true],
{}],
["
abc[defg]hi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abcdefghi
",
[true,true,true,true,true],
{}],
["
abc[defg]hi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abcdefghi
",
[true,true,true,true,true],
{}],
["
abc[defg]hi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abcdefghi
",
[true,true,true,true,true],
{}],
["
abc{defg]hi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abcdefghi
",
[true,true,true,true,true],
{}],
["
abc{defg]hi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abcdefghi
",
[true,true,true,true,true],
{}],
// ...in these cases, insertParagraph and insertLineBreak should work same as
// delete/forwarddelete (and the case replacing selection with insertText
// directly).
["
abc{def}ghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc[def]ghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc[defg]hi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abc
defghi
",
[true,true,true,true,true],
{}],
["
abc[defg]hi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abc
defghi
",
[true,true,true,true,true],
{}],
["
abc{defg]hi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]],
"
abc
defghi
",
[true,true,true,true,true],
{}],
// If visible first content of selection is not text, Chrome does not preserve
// the style of the content after deletion. This is same behavior as replacing
// the content with insertText directly.
["
abc[
de]fghi
",
[["delete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
["
abc[
de]fghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
["
abc[
def]ghi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[
def]ghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[
def]ghi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc[
def]ghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc{
def]ghi
",
[["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
abc{
def]ghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abcdefghi
",
[true,true,true,true],
{}],
// ...but if insertLineBreak and insertParagraph do not replace all of the
// styles of the first visible content, the style should be preserved because
// caret should be in the inline elements since the styled text is the first
// visible content in the line.
["
abc[
de]fghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
["
abc[
de]fghi
",
[["insertlinebreak",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
["
abc[
def]ghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc[
def]ghi
",
[["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc[
def]ghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc[
def]ghi
",
[["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc{
def]ghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
["
abc{
def]ghi
",
[["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]],
"
abc
defghi
",
[true,true,true,true],
{}],
// Like the case replacing selection with insertText directly, don't preserve
// inline styles even if end boundary is styled after deletion because inline
// elements have gone.
["
ab[cde]fghi
",
[["delete",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true,true],
{}],
["
ab[cde]fghi
",
[["forwarddelete",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true,true],
{}],
// ...but same as the case that first visible content is not text, first
// visible content in the new line becomes styled text after insertParagraph
// and insertLineBreak. In these cases, new text should be styled too.
["
ab[cde]fghi
",
[["insertparagraph",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]],
"
ab
cdefghi
",
[true,true,true,true],
{}],
["
ab[cde]fghi
",
[["insertlinebreak",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]],
"
ab
cdefghi
",
[true,true,true,true],
{}],
// Different from replacing selection with insertText directly, after deleting
// the first visible thing of selection but not deleting the inline elements
// entirely, the inline styles should not be preserved.
// XXX: It seems that these results may not be expected by users because they
// are inconsistent with the result when selection ends at end of the
// styled text node. Why should not it preverses the style of first
// character in the range only when the text node is not deleted, but
// it should preserve the style when the text node is deleted?
["
abc[de]fghi
",
[["delete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
["
abc[de]fghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
["
abc{de]fghi
",
[["delete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
["
abc{de]fghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
// ...but insertParagraph and insertLineBreak put caret at start of the text
// in the new line, the styles should be presrved.
["
abc[de]fghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
["
abc[de]fghi
",
[["insertlinebreak",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
["
abc{de]fghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
["
abc{de]fghi
",
[["insertlinebreak",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
// Different from replacing selection with insertText directly, deletion removes
// unnecessary empty inline elements in the selection and caret is moved to end
// of the preceding text node in Chrome. Therefore, new text should be inserted
// outside the inline elements.
["
abc[de]fghi
",
[["delete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
["
abc[de]fghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
["
abc{de]fghi
",
[["delete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
["
abc{de]fghi
",
[["forwarddelete",""],["inserttext","d"],["inserttext","e"]],
"
abcdefghi
",
[true,true,true],
{}],
// ...but same as above, insertParagraph and insertLineBreak moves caret into
// start of the inline elements because there is the first visible content of
// the new line. Therefore, the style should be preserved.
["
abc[de]fghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
["
abc[de]fghi
",
[["insertlinebreak",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
["
abc{de]fghi
",
[["insertparagraph",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
["
abc{de]fghi
",
[["insertlinebreak",""],["inserttext","d"],["inserttext","e"]],
"
abc
defghi
",
[true,true,true],
{}],
//
element should be reused when the font-size is change for new text.
["{}
",
[["stylewithcss","false"],["fontsize","4"],["insertText","a"]],
["a[]
",
"a[]"],
[true,true,true],
{"fontsize":[false,false,"7",false,false,"4"]}],
["{}
",
[["stylewithcss","true"],["italic",""],["insertText","a"]],
["a[]
",
"a[]"],
[true,true,true],
{}],
// element may be taller than parent inline elements. Therefore, for
// applying background color to new text, element should be put inner-
// most.
["abc[]ef",
[["stylewithcss","false"],["fontSize","4"],["backColor","#00dddd"],["insertText","d"]],
["abcdef",
"abcdef",
"abcdef"],
[true,true,true,true],
{}],
["abc[]ef",
[["stylewithcss","false"],["foreColor","#ff0000"],["backColor","#00dddd"],["insertText","d"]],
["abcdef",
"abcdef",
"abcdef"],
[true,true,true,true],
{}],
["abc[]ef",
[["stylewithcss","false"],["fontName","monospace"],["backColor","#00dddd"],["insertText","d"]],
["abcdef",
"abcdef",
"abcdef"],
[true,true,true,true],
{}],
["abc[]ef",
[["stylewithcss","false"],["backColor","#00dddd"],["fontSize","4"],["insertText","d"]],
["abcdef",
"abcdef",
"abcdef"],
[true,true,true,true],
{}],
["abc[]ef",
[["stylewithcss","false"],["backColor","#00dddd"],["foreColor","#ff0000"],["insertText","d"]],
["abcdef",
"abcdef",
"abcdef"],
[true,true,true,true],
{}],
["abc[]ef",
[["stylewithcss","false"],["backColor","#00dddd"],["fontName","monospace"],["insertText","d"]],
["abcdef",
"abcdef",
"abcdef"],
[true,true,true,true],
{}],
["abc[]ef",
[["stylewithcss","false"],["fontName","monospace"],["foreColor","#ff0000"],["fontSize","7"],["backColor","#00dddd"],["insertText","d"]],
["abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef",
"abc[d]ef"],
[true,true,true,true,true,true],
{}],
// Typed text after joining paragraphs should be inserted into the previous text node.
["foo
[]bar
",
[["styleWithCSS","false"],["delete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo
[]bar
",
[["styleWithCSS","false"],["delete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo
[]bar
",
[["styleWithCSS","false"],["delete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo
[]bar",
[["styleWithCSS","false"],["delete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo
[]bar",
[["styleWithCSS","false"],["delete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo
[]bar",
[["styleWithCSS","false"],["delete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo
[]bar
",
[["styleWithCSS","false"],["delete",""],["insertText","A"]],
"fooA[]bar",
[true,true,true],
{}],
["foo
[]bar
",
[["styleWithCSS","false"],["delete",""],["insertText","A"]],
"fooA[]bar",
[true,true,true],
{}],
["foo[]
bar
",
[["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo[]
bar
",
[["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo[]
bar
",
[["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo[]
bar",
[["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo[]
bar",
[["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo[]
bar",
[["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]],
"fooA[]bar
",
[true,true,true],
{}],
["foo[]
bar
",
[["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]],
"fooA[]bar",
[true,true,true],
{}],
["foo[]
bar
",
[["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]],
"fooA[]bar",
[true,true,true],
{}],
// First style should be applied outer, that is same as applying styles to
// non-collapsed selection.
["a[]c",
[["styleWithCSS","false"],["bold",""],["italic",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["italic",""],["bold",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["bold",""],["italic",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["bold",""],["italic",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["bold",""],["italic",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["bold",""],["italic",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
// but should be applied outer-most.
["a[]c",
[["styleWithCSS","false"],["foreColor","#ff0000"],["bold",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["bold",""],["foreColor","#ff0000"],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["fontName","monospace"],["bold",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["bold",""],["fontName","monospace"],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["fontSize","5"],["bold",""],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["bold",""],["fontSize","5"],["insertText","b"]],
"abc",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["foreColor","#ff0000"],["bold",""],["fontSize","5"],["fontName","monospace"],["insertText","b"]],
["abc",
"abc",
"abc",
"abc",
"abc",
"abc"],
[true,true,true,true,true,true],
{}],
// After joining paragraphs, web app may set same style explicitly again.
// Note that the font styles are not toggle. Therefore, it's important to
// keep the style for the new text.
["a
[]c
",
[["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]],
"ab[]c
",
[true,true,true,true],
{}],
["a
[]c
",
[["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]],
"ab[]c
",
[true,true,true,true,true],
{}],
["a
[]c
",
[["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]],
"ab[]c
",
[true,true,true,true],
{}],
["a
[]c
",
[["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]],
"ab[]c
",
[true,true,true,true],
{}],
// Same tests for forwardDelete
["a[]
c
",
[["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]],
"ab[]c
",
[true,true,true,true],
{}],
["a[]
c
",
[["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]],
"ab[]c
",
[true,true,true,true,true],
{}],
["a[]
c
",
[["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]],
"ab[]c
",
[true,true,true,true],
{}],
["a[]
c
",
[["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]],
"ab[]c
",
[true,true,true,true],
{}],
// Don't remove parent blocks of selection start to insert new text into the
// selection start container.
["{abc
def
}",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["gh
",
"gh
"],
[true,true,true],
{}],
["abc
{def
}",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["abc
gh
",
"abc
gh
"],
[true,true,true],
{}],
["{abcdef}
",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["gh
",
"gh
"],
[true,true,true],
{}],
["abc{def}
",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["abcgh
",
"abcgh
"],
[true,true,true],
{}],
["{abcdef}
",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["gh
",
"gh
"],
[true,true,true],
{}],
["abc{def}
",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["abcgh
",
"abcgh
"],
[true,true,true],
{}],
// The inline style at selection start should be preserved for typed text.
["{abc
def
}",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["gh
",
"gh
",
"gh
"],
[true,true,true],
{}],
["abc
{def
}",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["abc
gh
",
"abc
gh
",
"abc
gh
"],
[true,true,true],
{}],
["{abcdef}
",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["gh
",
"gh
",
"gh
"],
[true,true,true],
{}],
["abc{def}
",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["abcgh
",
"abcgh
",
"abcgh
"],
[true,true,true],
{}],
["{abcdef}
",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["gh
",
"gh
",
"gh
"],
[true,true,true],
{}],
["abc{def}
",
[["delete",""],["inserttext","g"],["inserttext","h"]],
["abcgh
",
"abcgh
",
"abcgh
"],
[true,true,true],
{}],
// Do not delete non-editable when deleting an editable character and preseve
// the style for new text.
["X[]abcdef",
[["delete",""],["inserttext","Y"]],
["Yabcdef",
"Yabcdef"],
[true,true],
{}],
["abcX[]def",
[["delete",""],["inserttext","Y"]],
["abcYdef",
"abcYdef"],
[true,true],
{}],
["[]Xabcdef",
[["forwarddelete",""],["inserttext","Y"]],
["Yabcdef",
"Yabcdef"],
[true,true],
{}],
["abc[]Xdef",
[["forwarddelete",""],["inserttext","Y"]],
["abcYdef",
"abcYdef"],
[true,true],
{}],
]