<!doctype html>
<html>
<head>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
</head>
<!-- copy of google.com/ -->
<body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 topmargin=3 marginheight=3><center><table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td align=right nowrap><font size=-1><a href="/url?sa=p&pref=ig&pval=2&q=http://www.google.com/ig">Personalized Home</a></font></td></tr><tr height=4><td><img alt="" width=1 height=1></td></tr></table><br><br>
<div contentEditable id="sample">
<table border=0 cellspacing=0 cellpadding=4><tr><td nowrap><font size=-1><b>Web</b>&nbsp;&nbsp;&nbsp;&nbsp;<a id=1a class=q href="/imghp?hl=en&tab=wi" onClick="return qs(this);">Images</a>&nbsp;&nbsp;&nbsp;&nbsp;<a id=2a class=q href="http://groups.google.com/grphp?hl=en&tab=wg" onClick="return qs(this);">Groups</a>&nbsp;&nbsp;&nbsp;&nbsp;<a id=4a class=q href="http://news.google.com/nwshp?hl=en&tab=wn" onClick="return qs(this);">News</a>&nbsp;&nbsp;&nbsp;&nbsp;<a id=5a class=q href="http://froogle.google.com/frghp?hl=en&tab=wf" onClick="return qs(this);">Froogle</a>&nbsp;&nbsp;&nbsp;&nbsp;<a id=7a class=q href="/lochp?hl=en&tab=wl" onClick="return qs(this);">Local<sup><a style="text-decoration:none"><font color=red>New!</font></a></sup></a>&nbsp;&nbsp;&nbsp;&nbsp;<b><a href="/intl/en/options/" class=q>more&nbsp;&raquo;</a></b></font></td></tr></table><table cellspacing=0 cellpadding=0><tr><td width=25%>&nbsp;</td><td id="focus" align=center><input type=hidden name=hl value=en><input maxLength=256 size=55 name=q value=""><br><input type=submit value="Google Search" name=btnG><input type=submit value="I'm Feeling Lucky" name=btnI></td><td valign=top nowrap width=25%><font size=-2 id="anchor">&nbsp;&nbsp;<a href=/advanced_search?hl=en>Advanced Search</a><br>&nbsp;&nbsp;<a href=/preferences?hl=en>Preferences</a><br>&nbsp;&nbsp;<a href=/language_tools?hl=en>Language Tools</a></font></td></tr></table></form><br><font size=-1 id="sample2"><font color=#ff0000>New!</font> <a href="http://www.google.com/ig" onmousedown="return asq(event,this,'pro','hppweb:en_us','')">Personalize this page</a>.</font>
</div>
<br><br><br><font size=-1><a href="/ads/">Advertising&nbsp;Programs</a> - <a href=/services/>Business Solutions</a> - <a href=/intl/en/about.html>About Google</a></font><p><font size=-2>&copy;2005 Google</font></p></center>
<div id="log"></div>
<script>
test(function() {
    var selection = window.getSelection();
    var sample = document.getElementById('sample');
    selection.collapse(sample, 0);
    for (var i = 0; i < 6; i++)
        selection.modify('move', 'forward', 'line');
    for (var i = 0; i < 2; i++)
        selection.modify('extend', 'backward', 'line');

    assert_equals(selection.anchorNode, document.getElementById('anchor'), 'anchorNode');
    assert_equals(selection.anchorOffset, 3, 'anchorOffset');
    assert_equals(selection.focusNode, document.getElementById('focus'), 'focusNode');
    assert_equals(selection.focusOffset, 3, 'focusOffset');
});
</script>
</body>
</html>
