dom/base/test/test_domcursor.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4   <title>Test for DOMCursor</title>
     5   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     7 </head>
     8 <body>
     9 <p id="display"></p>
    10 <div id="content" style="display: none">
    12 </div>
    13 <pre id="test">
    14 <script class="testbody" type="application/javascript;version=1.7">
    15 "use strict";
    17 SimpleTest.waitForExplicitFinish();
    19 var reqserv = SpecialPowers.getDOMRequestService();
    20 ok("createRequest" in reqserv, "appears to be a service");
    22 var req;
    23 var lastContinue = false;
    25 var index = 0;
    27 function next() {
    28   if (index < tests.length) {
    29     ok(true, "Begin test");
    30     tests[index++]();
    31   } else {
    32     ok(true, "All done");
    33     SimpleTest.finish();
    34   }
    35 }
    37 var tests = [
    38   function() {
    39     // create a cursor, test its interface and its initial state
    40     req = reqserv.createCursor(window, function() {
    41       if (lastContinue) {
    42         reqserv.fireDone(req);
    43       } else {
    44         reqserv.fireSuccess(req, "next result")
    45       }
    46     });
    47     ok("result" in req, "cursor has result");
    48     ok("error" in req, "cursor has error");
    49     ok("onsuccess" in req, "cursor has onsuccess");
    50     ok("onerror" in req, "cursor has onerror");
    51     ok("readyState" in req, "cursor has readyState");
    52     ok("done" in req, "cursor has finished");
    53     ok("continue" in req, "cursor has continue");
    55     is(req.readyState, "pending", "readyState is pending");
    56     is(req.result, undefined, "result is undefined");
    57     is(req.onsuccess, null, "onsuccess is null");
    58     is(req.onerror, null, "onerror is null");
    59     next();
    60   },
    61   function() {
    62     // fire success
    63     req.onsuccess = function(e) {
    64       ok(e, "got success event");
    65       is(e.type, "success", "correct type during success");
    66       is(e.target, req, "correct target during success");
    67       is(req.readyState, "done", "correct readyState after success");
    68       is(req.error, null, "correct error after success");
    69       is(req.result, "my result", "correct result after success");
    70       is(req.done, false, "cursor is not done after continue")
    71       next();
    72     }
    73     reqserv.fireSuccess(req, "my result");
    74   },
    75   function() {
    76     // continue
    77     req.onsuccess = function(e) {
    78       ok(e, "got success event after continue");
    79       is(e.type, "success", "correct type during continue");
    80       is(e.target, req, "correct target during continue");
    81       is(req.readyState, "done", "correct readyState after continue");
    82       is(req.error, null, "correct error after continue");
    83       is(req.result, "next result", "correct result after continue");
    84       is(req.done, false, "cursor is not done after continue")
    85       next();
    86     }
    87     req.continue();
    88     try {
    89       req.continue();
    90       ok(false, "calling continue twice should fail");
    91     } catch (e) {
    92       ok(true, "calling continue twice should fail");
    93     }
    94   },
    95   function() {
    96     // FireDone
    97     req.onsuccess = function(e) {
    98       ok(e, "got success event after continue");
    99       is(e.type, "success", "correct type during continue");
   100       is(e.target, req, "correct target during continue");
   101       is(req.readyState, "done", "correct readyState after continue");
   102       is(req.error, null, "correct error after continue");
   103       is(req.result, undefined, "no result after last continue");
   104       is(req.done, true, "cursor is done after last continue")
   105       try {
   106         req.continue();
   107         ok(false, "continue when cursor is done should fail");
   108       } catch (e) {
   109         ok(true, "continue when cursor is done should fail");
   110       }
   112       next();
   113     }
   114     lastContinue = true;
   115     req.continue();
   116   },
   117   function() {
   118     // fire error
   119     req = reqserv.createCursor(window, function(){});
   120     req.onerror = function(e) {
   121       ok(e, "got success event");
   122       is(e.type, "error", "correct type during error");
   123       is(e.target, req, "correct target during error");
   124       is(req.readyState, "done", "correct readyState after error");
   125       is(req.error.name, "error msg", "correct error after error");
   126       is(req.result, undefined, "correct result after error");
   127       try {
   128         req.continue();
   129         ok(false, "continue while in an error state should fail");
   130       } catch (e) {
   131         ok(true, "continue while in an error state should fail");
   132       }
   134       next();
   135     }
   136     reqserv.fireError(req, "error msg");
   137   }
   138 ];
   140 next();
   142 </script>
   143 </pre>
   144 </body>
   145 </html>

mercurial