1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/editor/libeditor/html/crashtests/448329-3.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,112 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html><head> 1.6 + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 1.7 + <title>Testcase #3 for bug 448329</title> 1.8 +</head> 1.9 +<body> 1.10 + 1.11 +<iframe id="frame448329"></iframe> 1.12 + 1.13 +<script> 1.14 + 1.15 +function test448329(id,cmd,val) { 1.16 + 1.17 + var elm = document.getElementById(id); 1.18 + var doc = elm.contentDocument; 1.19 + doc.designMode = "On"; 1.20 + 1.21 + // Work around getSelection depending on a presshell but not flushing to get 1.22 + // one. 1.23 + doc.body.offsetWidth; 1.24 + var s = doc.defaultView.getSelection(); 1.25 + 1.26 + // Test document node 1.27 + if (s.rangeCount > 0) 1.28 + s.removeAllRanges(); 1.29 + var range = doc.createRange(); 1.30 + range.setStart(doc, 0); 1.31 + range.setEnd(doc, 0); 1.32 + s.addRange(range); 1.33 + doc.execCommand(cmd,false,val); 1.34 + 1.35 + // Test HTML node 1.36 + if (s.rangeCount > 0) 1.37 + s.removeAllRanges(); 1.38 + range = doc.createRange(); 1.39 + range.setStart(doc.documentElement, 0); 1.40 + range.setEnd(doc.documentElement, 0); 1.41 + s.addRange(range); 1.42 + doc.execCommand(cmd,false,val); 1.43 + 1.44 + // Test BODY node 1.45 + if (s.rangeCount > 0) 1.46 + s.removeAllRanges(); 1.47 + range = doc.createRange(); 1.48 + var body = doc.documentElement.childNodes[1]; 1.49 + range.setStart(body, 0); 1.50 + range.setEnd(body, 0); 1.51 + s.addRange(range); 1.52 + doc.execCommand(cmd,false,val); 1.53 + 1.54 + var text = doc.createTextNode("Hello Kitty"); 1.55 + body.insertBefore(text, null) 1.56 + 1.57 + // Test TEXT node 1.58 + if (s.rangeCount > 0) 1.59 + s.removeAllRanges(); 1.60 + range = doc.createRange(); 1.61 + range.setStart(text, 0); 1.62 + range.setEnd(text, 1); 1.63 + s.addRange(range); 1.64 + doc.execCommand(cmd,false,val); 1.65 + 1.66 + // Test BODY[0,0] + TEXT node 1.67 + if (s.rangeCount > 0) 1.68 + s.removeAllRanges(); 1.69 + range = doc.createRange(); 1.70 + range.setStart(body, 0); 1.71 + range.setEnd(body, 0); 1.72 + s.addRange(range); 1.73 + range = doc.createRange(); 1.74 + range.setStart(text, 0); 1.75 + range.setEnd(text, 1); 1.76 + s.addRange(range); 1.77 + doc.execCommand(cmd,false,val); 1.78 + 1.79 + // Test BODY[0,1] + TEXT node 1.80 + if (s.rangeCount > 0) 1.81 + s.removeAllRanges(); 1.82 + range = doc.createRange(); 1.83 + range.setStart(body, 0); 1.84 + range.setEnd(body, 1); 1.85 + s.addRange(range); 1.86 + range = doc.createRange(); 1.87 + range.setStart(text, 0); 1.88 + range.setEnd(text, 1); 1.89 + s.addRange(range); 1.90 + doc.execCommand(cmd,false,val); 1.91 + 1.92 + // Test BODY[0,1] + TEXT node without a parent 1.93 + if (s.rangeCount > 0) 1.94 + s.removeAllRanges(); 1.95 + range = doc.createRange(); 1.96 + range.setStart(body, 0); 1.97 + range.setEnd(body, 1); 1.98 + s.addRange(range); 1.99 + range = doc.createRange(); 1.100 + text = doc.createTextNode("Hello Kitty"); // not in doc 1.101 + range.setStart(text, 0); 1.102 + range.setEnd(text, 1); 1.103 + s.addRange(range); 1.104 + doc.execCommand(cmd,false,val); 1.105 + 1.106 +} 1.107 + 1.108 +test448329("frame448329", "backcolor", "green") 1.109 +test448329("frame448329", "hilitecolor", "green") 1.110 + 1.111 +</script> 1.112 + 1.113 + 1.114 +</body> 1.115 +</html>