editor/libeditor/html/crashtests/448329-3.html

changeset 0
6474c204b198
     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>

mercurial