1eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockdescription("Test to make sure that getRangeAt does not modify the range when returning it.") 2eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block 3eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockvar div = document.createElement('div'); 4eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockdocument.body.appendChild(div); 5eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockvar textNode = document.createTextNode("asd"); 6eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockdiv.appendChild(textNode); 7eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block 8eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockvar sel = window.getSelection(); 9eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blocksel.collapse(textNode, 0); 10eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockvar range = sel.getRangeAt(0); 11eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block 12eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockvar result = range.comparePoint(textNode, 0); 13eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockif (result == 0) { 14eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block testPassed("range is correctly (text, 0)"); 15eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block} else { 16eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block testFailed("range did not match (text, 0)"); 17eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("window.getSelection():"); 18eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("anchorNode: " + sel.anchorNode); 19eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("anchorOffset: " + sel.anchorOffset); 20eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("focusNode: " + sel.focusNode); 21eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("focusOffset: " + sel.focusOffset); 22eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block 23eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("window.getSelection().getRangeAt(0):"); 24eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("startContainer: " + range.startContainer); 25eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("startOffset: " + range.startOffset); 26eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("endContainer: " + range.endContainer); 27eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block debug("endOffset: " + range.endOffset); 28eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block} 29eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block 30eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block// Clean up after ourselves 31eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockdocument.body.removeChild(div); 32eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block 33eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockvar successfullyParsed = true; 34