
Harness Error (TIMEOUT), message = null

PASS test of input.setSelectionRange 
PASS input typeof(input.setSelectionRange)' 
PASS input setSelectionRange return void 
PASS input setSelectionRange(0,1) 
PASS input setSelectionRange(0,input.value.length+1) 
PASS input setSelectionRange(input.value.length+1,input.value.length+1) 
PASS input setSelectionRange(input.value.length+1,1) 
PASS input setSelectionRange(2,2) 
PASS input setSelectionRange(2,1) 
PASS input direction of setSelectionRange(0,1,"backward") 
PASS input direction of setSelectionRange(0,1,"forward") 
PASS input direction of setSelectionRange(0,1,"none") 
PASS input direction of setSelectionRange(0,1,"hoge") 
PASS input direction of setSelectionRange(0,1,"BACKWARD") 
PASS input direction of setSelectionRange(0,1) 
FAIL input setSelectionRange(1,-1) assert_equals: element.selectionStart should be 1 expected 1 but got 0
FAIL input setSelectionRange(-1,1) assert_equals: ECMAScript conversion to unsigned long + if end is less than or equal to start then the start of the selection and the end of the selection must both be placed immediately before the character with offset end expected 1 but got 0
PASS input setSelectionRange("string",1) 
PASS input setSelectionRange(true,1) 
PASS input setSelectionRange([],1) 
PASS input setSelectionRange({},1) 
PASS input setSelectionRange(NaN,1) 
PASS input setSelectionRange(null,1) 
PASS input setSelectionRange(undefined,1) 
FAIL input setSelectionRange(Math.pow(2,32) - 2, Math.pow(2,32) - 1) assert_equals: element.selectionStart should be value.length expected 5 but got 0
FAIL input setSelectionRange(Math.pow(2,31), Math.pow(2,32) - 1) assert_equals: element.selectionStart should be value.length expected 5 but got 0
TIMEOUT input setSelectionRange fires a select event Test timed out
PASS test of textarea.setSelectionRange 
PASS textarea typeof(input.setSelectionRange)' 
PASS textarea setSelectionRange return void 
PASS textarea setSelectionRange(0,1) 
PASS textarea setSelectionRange(0,textarea.value.length+1) 
PASS textarea setSelectionRange(2,2) 
PASS textarea setSelectionRange(2,1) 
PASS textarea direction of setSelectionRange(0,1,"backward") 
PASS textarea direction of setSelectionRange(0,1,"forward") 
PASS textarea direction of setSelectionRange(0,1,"none") 
PASS textarea direction of setSelectionRange(0,1,"hoge") 
PASS textarea direction of setSelectionRange(0,1,"BACKWARD") 
PASS textarea direction of setSelectionRange(0,1) 
PASS textarea setSelectionRange("string",1) 
PASS textarea setSelectionRange(true,1) 
PASS textarea setSelectionRange([],1) 
PASS textarea setSelectionRange({},1) 
PASS textarea setSelectionRange(NaN,1) 
PASS textarea setSelectionRange(null,1) 
PASS textarea setSelectionRange(undefined,1) 
FAIL textarea setSelectionRange(Math.pow(2,32) - 2, Math.pow(2,32) - 1) assert_equals: element.selectionStart should be value.length expected 5 but got 0
FAIL textarea setSelectionRange(Math.pow(2,31), Math.pow(2,32) - 1) assert_equals: element.selectionStart should be value.length expected 5 but got 0
  
