Ranges/Nodes set by a Selection method and returned by a corresoponding Selection method should be identical. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Testing selection on non-editable nodes... position = [text1, 1] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [span1, 1] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [rootElement, 1] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [span2, 0] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [rootElement, 2] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [span3, 0] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [text2, 0] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset Testing selection on editable nodes... position = [text1, 1] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [span1, 1] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [rootElement, 1] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [span2, 0] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [rootElement, 2] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [span3, 0] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset position = [text2, 0] PASS gotRange.startContainer === originalRange.startContainer is true PASS gotRange.startOffset is originalRange.startOffset PASS gotRange.endContainer === originalRange.endContainer is true PASS gotRange.endOffset is originalRange.endOffset PASS gotRange.startContainer === originalAnchorNode is true PASS gotRange.startOffset is originalAnchorOffset PASS gotRange.endContainer === originalAnchorNode is true PASS gotRange.endOffset is originalAnchorOffset PASS successfullyParsed is true TEST COMPLETE