1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/base/test/test_domcursor.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,145 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<head> 1.7 + <title>Test for DOMCursor</title> 1.8 + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.9 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 1.10 +</head> 1.11 +<body> 1.12 +<p id="display"></p> 1.13 +<div id="content" style="display: none"> 1.14 + 1.15 +</div> 1.16 +<pre id="test"> 1.17 +<script class="testbody" type="application/javascript;version=1.7"> 1.18 +"use strict"; 1.19 + 1.20 +SimpleTest.waitForExplicitFinish(); 1.21 + 1.22 +var reqserv = SpecialPowers.getDOMRequestService(); 1.23 +ok("createRequest" in reqserv, "appears to be a service"); 1.24 + 1.25 +var req; 1.26 +var lastContinue = false; 1.27 + 1.28 +var index = 0; 1.29 + 1.30 +function next() { 1.31 + if (index < tests.length) { 1.32 + ok(true, "Begin test"); 1.33 + tests[index++](); 1.34 + } else { 1.35 + ok(true, "All done"); 1.36 + SimpleTest.finish(); 1.37 + } 1.38 +} 1.39 + 1.40 +var tests = [ 1.41 + function() { 1.42 + // create a cursor, test its interface and its initial state 1.43 + req = reqserv.createCursor(window, function() { 1.44 + if (lastContinue) { 1.45 + reqserv.fireDone(req); 1.46 + } else { 1.47 + reqserv.fireSuccess(req, "next result") 1.48 + } 1.49 + }); 1.50 + ok("result" in req, "cursor has result"); 1.51 + ok("error" in req, "cursor has error"); 1.52 + ok("onsuccess" in req, "cursor has onsuccess"); 1.53 + ok("onerror" in req, "cursor has onerror"); 1.54 + ok("readyState" in req, "cursor has readyState"); 1.55 + ok("done" in req, "cursor has finished"); 1.56 + ok("continue" in req, "cursor has continue"); 1.57 + 1.58 + is(req.readyState, "pending", "readyState is pending"); 1.59 + is(req.result, undefined, "result is undefined"); 1.60 + is(req.onsuccess, null, "onsuccess is null"); 1.61 + is(req.onerror, null, "onerror is null"); 1.62 + next(); 1.63 + }, 1.64 + function() { 1.65 + // fire success 1.66 + req.onsuccess = function(e) { 1.67 + ok(e, "got success event"); 1.68 + is(e.type, "success", "correct type during success"); 1.69 + is(e.target, req, "correct target during success"); 1.70 + is(req.readyState, "done", "correct readyState after success"); 1.71 + is(req.error, null, "correct error after success"); 1.72 + is(req.result, "my result", "correct result after success"); 1.73 + is(req.done, false, "cursor is not done after continue") 1.74 + next(); 1.75 + } 1.76 + reqserv.fireSuccess(req, "my result"); 1.77 + }, 1.78 + function() { 1.79 + // continue 1.80 + req.onsuccess = function(e) { 1.81 + ok(e, "got success event after continue"); 1.82 + is(e.type, "success", "correct type during continue"); 1.83 + is(e.target, req, "correct target during continue"); 1.84 + is(req.readyState, "done", "correct readyState after continue"); 1.85 + is(req.error, null, "correct error after continue"); 1.86 + is(req.result, "next result", "correct result after continue"); 1.87 + is(req.done, false, "cursor is not done after continue") 1.88 + next(); 1.89 + } 1.90 + req.continue(); 1.91 + try { 1.92 + req.continue(); 1.93 + ok(false, "calling continue twice should fail"); 1.94 + } catch (e) { 1.95 + ok(true, "calling continue twice should fail"); 1.96 + } 1.97 + }, 1.98 + function() { 1.99 + // FireDone 1.100 + req.onsuccess = function(e) { 1.101 + ok(e, "got success event after continue"); 1.102 + is(e.type, "success", "correct type during continue"); 1.103 + is(e.target, req, "correct target during continue"); 1.104 + is(req.readyState, "done", "correct readyState after continue"); 1.105 + is(req.error, null, "correct error after continue"); 1.106 + is(req.result, undefined, "no result after last continue"); 1.107 + is(req.done, true, "cursor is done after last continue") 1.108 + try { 1.109 + req.continue(); 1.110 + ok(false, "continue when cursor is done should fail"); 1.111 + } catch (e) { 1.112 + ok(true, "continue when cursor is done should fail"); 1.113 + } 1.114 + 1.115 + next(); 1.116 + } 1.117 + lastContinue = true; 1.118 + req.continue(); 1.119 + }, 1.120 + function() { 1.121 + // fire error 1.122 + req = reqserv.createCursor(window, function(){}); 1.123 + req.onerror = function(e) { 1.124 + ok(e, "got success event"); 1.125 + is(e.type, "error", "correct type during error"); 1.126 + is(e.target, req, "correct target during error"); 1.127 + is(req.readyState, "done", "correct readyState after error"); 1.128 + is(req.error.name, "error msg", "correct error after error"); 1.129 + is(req.result, undefined, "correct result after error"); 1.130 + try { 1.131 + req.continue(); 1.132 + ok(false, "continue while in an error state should fail"); 1.133 + } catch (e) { 1.134 + ok(true, "continue while in an error state should fail"); 1.135 + } 1.136 + 1.137 + next(); 1.138 + } 1.139 + reqserv.fireError(req, "error msg"); 1.140 + } 1.141 +]; 1.142 + 1.143 +next(); 1.144 + 1.145 +</script> 1.146 +</pre> 1.147 +</body> 1.148 +</html>