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

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

michael@0 1 <!DOCTYPE HTML>
michael@0 2 <html><head>
michael@0 3 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
michael@0 4 <title>Testcase #3 for bug 448329</title>
michael@0 5 </head>
michael@0 6 <body>
michael@0 7
michael@0 8 <iframe id="frame448329"></iframe>
michael@0 9
michael@0 10 <script>
michael@0 11
michael@0 12 function test448329(id,cmd,val) {
michael@0 13
michael@0 14 var elm = document.getElementById(id);
michael@0 15 var doc = elm.contentDocument;
michael@0 16 doc.designMode = "On";
michael@0 17
michael@0 18 // Work around getSelection depending on a presshell but not flushing to get
michael@0 19 // one.
michael@0 20 doc.body.offsetWidth;
michael@0 21 var s = doc.defaultView.getSelection();
michael@0 22
michael@0 23 // Test document node
michael@0 24 if (s.rangeCount > 0)
michael@0 25 s.removeAllRanges();
michael@0 26 var range = doc.createRange();
michael@0 27 range.setStart(doc, 0);
michael@0 28 range.setEnd(doc, 0);
michael@0 29 s.addRange(range);
michael@0 30 doc.execCommand(cmd,false,val);
michael@0 31
michael@0 32 // Test HTML node
michael@0 33 if (s.rangeCount > 0)
michael@0 34 s.removeAllRanges();
michael@0 35 range = doc.createRange();
michael@0 36 range.setStart(doc.documentElement, 0);
michael@0 37 range.setEnd(doc.documentElement, 0);
michael@0 38 s.addRange(range);
michael@0 39 doc.execCommand(cmd,false,val);
michael@0 40
michael@0 41 // Test BODY node
michael@0 42 if (s.rangeCount > 0)
michael@0 43 s.removeAllRanges();
michael@0 44 range = doc.createRange();
michael@0 45 var body = doc.documentElement.childNodes[1];
michael@0 46 range.setStart(body, 0);
michael@0 47 range.setEnd(body, 0);
michael@0 48 s.addRange(range);
michael@0 49 doc.execCommand(cmd,false,val);
michael@0 50
michael@0 51 var text = doc.createTextNode("Hello Kitty");
michael@0 52 body.insertBefore(text, null)
michael@0 53
michael@0 54 // Test TEXT node
michael@0 55 if (s.rangeCount > 0)
michael@0 56 s.removeAllRanges();
michael@0 57 range = doc.createRange();
michael@0 58 range.setStart(text, 0);
michael@0 59 range.setEnd(text, 1);
michael@0 60 s.addRange(range);
michael@0 61 doc.execCommand(cmd,false,val);
michael@0 62
michael@0 63 // Test BODY[0,0] + TEXT node
michael@0 64 if (s.rangeCount > 0)
michael@0 65 s.removeAllRanges();
michael@0 66 range = doc.createRange();
michael@0 67 range.setStart(body, 0);
michael@0 68 range.setEnd(body, 0);
michael@0 69 s.addRange(range);
michael@0 70 range = doc.createRange();
michael@0 71 range.setStart(text, 0);
michael@0 72 range.setEnd(text, 1);
michael@0 73 s.addRange(range);
michael@0 74 doc.execCommand(cmd,false,val);
michael@0 75
michael@0 76 // Test BODY[0,1] + TEXT node
michael@0 77 if (s.rangeCount > 0)
michael@0 78 s.removeAllRanges();
michael@0 79 range = doc.createRange();
michael@0 80 range.setStart(body, 0);
michael@0 81 range.setEnd(body, 1);
michael@0 82 s.addRange(range);
michael@0 83 range = doc.createRange();
michael@0 84 range.setStart(text, 0);
michael@0 85 range.setEnd(text, 1);
michael@0 86 s.addRange(range);
michael@0 87 doc.execCommand(cmd,false,val);
michael@0 88
michael@0 89 // Test BODY[0,1] + TEXT node without a parent
michael@0 90 if (s.rangeCount > 0)
michael@0 91 s.removeAllRanges();
michael@0 92 range = doc.createRange();
michael@0 93 range.setStart(body, 0);
michael@0 94 range.setEnd(body, 1);
michael@0 95 s.addRange(range);
michael@0 96 range = doc.createRange();
michael@0 97 text = doc.createTextNode("Hello Kitty"); // not in doc
michael@0 98 range.setStart(text, 0);
michael@0 99 range.setEnd(text, 1);
michael@0 100 s.addRange(range);
michael@0 101 doc.execCommand(cmd,false,val);
michael@0 102
michael@0 103 }
michael@0 104
michael@0 105 test448329("frame448329", "backcolor", "green")
michael@0 106 test448329("frame448329", "hilitecolor", "green")
michael@0 107
michael@0 108 </script>
michael@0 109
michael@0 110
michael@0 111 </body>
michael@0 112 </html>

mercurial