dom/devicestorage/test/test_enumerateNoParam.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 <!--
     2   Any copyright is dedicated to the Public Domain.
     3   http://creativecommons.org/publicdomain/zero/1.0/
     4 -->
     5 <!DOCTYPE HTML>
     6 <html> <!--
     7 https://bugzilla.mozilla.org/show_bug.cgi?id=717103
     8 -->
     9 <head>
    10   <title>Test for the device storage API </title>
    11   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    12   <script type="text/javascript" src="devicestorage_common.js"></script>
    14 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
    15 </head>
    16 <body>
    17 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=717103">Mozilla Bug 717103</a>
    18 <p id="display"></p>
    19 <div id="content" style="display: none">
    21 </div>
    22 <pre id="test">
    23 <script class="testbody" type="text/javascript">
    25 // Array Remove - By John Resig (MIT Licensed)
    26 Array.prototype.remove = function(from, to) {
    27   var rest = this.slice((to || from) + 1 || this.length);
    28   this.length = from < 0 ? this.length + from : from;
    29   return this.push.apply(this, rest);
    30 };
    32 devicestorage_setup();
    34 function enumerateSuccess(e) {
    36   if (e.target.result == null) {
    37     ok(files.length == 0, "when the enumeration is done, we shouldn't have any files in this array")
    38     devicestorage_cleanup();
    39     return;
    40   }
    42   var filename = e.target.result.name;
    43   if (filename[0] == "/") {
    44     // We got /storageName/prefix/filename
    45     // Remove the storageName (this shows up on FirefoxOS)
    46     filename = filename.substring(1); // Remove leading slash
    47     var slashIndex = filename.indexOf("/");
    48     if (slashIndex >= 0) {
    49       filename = filename.substring(slashIndex + 1); // Remove storageName
    50     }
    51   }
    52   if (filename.startsWith(prefix)) {
    53     filename = filename.substring(prefix.length + 1); // Remove prefix
    54   }
    56   var index = files.indexOf(enumFilename);
    57   files.remove(index);
    59   ok(index > -1, "filename should be in the enumeration : " + e.target.result.name);
    61   // clean up
    62   var cleanup = storage.delete(e.target.result.name);
    63   cleanup.onsuccess = function(e) {}  // todo - can i remove this?
    65   e.target.continue();
    66 }
    68 function handleError(e) {
    69   ok(false, "handleError was called : " + e.target.error.name);
    70   devicestorage_cleanup();
    71 }
    73 function addSuccess(e) {
    74   addedSoFar = addedSoFar + 1;
    75   if (addedSoFar == files.length) {
    77     var cursor = storage.enumerate();
    78     cursor.onsuccess = enumerateSuccess;
    79     cursor.onerror = handleError;
    80   }
    81 }
    83 function addError(e) {
    84   ok(false, "addError was called : " + e.target.error.name);
    85   devicestorage_cleanup();
    86 }
    88 var storage = navigator.getDeviceStorage("pictures");
    89 ok(navigator.getDeviceStorage, "Should have getDeviceStorage");
    90 var prefix = "devicestorage/" + randomFilename(12)
    92 var files = [ "a.png", "b.png", "c.png" ]
    93 var addedSoFar = 0;
    96 for (var i=0; i<files.length; i++) {
    98  request = storage.addNamed(createRandomBlob('image/png'), prefix + '/' + files[i]);
   100  ok(request, "Should have a non-null request");
   101  request.onsuccess = addSuccess;
   102  request.onerror = addError;
   103 }
   105 </script>
   106 </pre>
   107 </body>
   108 </html>

mercurial