<!DOCTYPE HTML> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Testcase #3 for bug 448329</title> </head> <body> <iframe id="frame448329"></iframe> <script> function test448329(id,cmd,val) { var elm = document.getElementById(id); var doc = elm.contentDocument; doc.designMode = "On"; // Work around getSelection depending on a presshell but not flushing to get // one. doc.body.offsetWidth; var s = doc.defaultView.getSelection(); // Test document node if (s.rangeCount > 0) s.removeAllRanges(); var range = doc.createRange(); range.setStart(doc, 0); range.setEnd(doc, 0); s.addRange(range); doc.execCommand(cmd,false,val); // Test HTML node if (s.rangeCount > 0) s.removeAllRanges(); range = doc.createRange(); range.setStart(doc.documentElement, 0); range.setEnd(doc.documentElement, 0); s.addRange(range); doc.execCommand(cmd,false,val); // Test BODY node if (s.rangeCount > 0) s.removeAllRanges(); range = doc.createRange(); var body = doc.documentElement.childNodes[1]; range.setStart(body, 0); range.setEnd(body, 0); s.addRange(range); doc.execCommand(cmd,false,val); var text = doc.createTextNode("Hello Kitty"); body.insertBefore(text, null) // Test TEXT node if (s.rangeCount > 0) s.removeAllRanges(); range = doc.createRange(); range.setStart(text, 0); range.setEnd(text, 1); s.addRange(range); doc.execCommand(cmd,false,val); // Test BODY[0,0] + TEXT node if (s.rangeCount > 0) s.removeAllRanges(); range = doc.createRange(); range.setStart(body, 0); range.setEnd(body, 0); s.addRange(range); range = doc.createRange(); range.setStart(text, 0); range.setEnd(text, 1); s.addRange(range); doc.execCommand(cmd,false,val); // Test BODY[0,1] + TEXT node if (s.rangeCount > 0) s.removeAllRanges(); range = doc.createRange(); range.setStart(body, 0); range.setEnd(body, 1); s.addRange(range); range = doc.createRange(); range.setStart(text, 0); range.setEnd(text, 1); s.addRange(range); doc.execCommand(cmd,false,val); // Test BODY[0,1] + TEXT node without a parent if (s.rangeCount > 0) s.removeAllRanges(); range = doc.createRange(); range.setStart(body, 0); range.setEnd(body, 1); s.addRange(range); range = doc.createRange(); text = doc.createTextNode("Hello Kitty"); // not in doc range.setStart(text, 0); range.setEnd(text, 1); s.addRange(range); doc.execCommand(cmd,false,val); } test448329("frame448329", "backcolor", "green") test448329("frame448329", "hilitecolor", "green") </script> </body> </html>