dom/indexedDB/test/test_file_os_delete.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 <!--
     2   Any copyright is dedicated to the Public Domain.
     3   http://creativecommons.org/publicdomain/zero/1.0/
     4 -->
     5 <html>
     6 <head>
     7   <title>Indexed Database Property Test</title>
     9   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    10   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    12   <script type="text/javascript;version=1.7">
    13   function testSteps()
    14   {
    15     const READ_WRITE = "readwrite";
    17     const name = window.location.pathname;
    19     const objectStoreName = "Blobs";
    21     getUsage(grabFileUsageAndContinueHandler);
    22     let startUsage = yield undefined;
    24     const fileData1 = {
    25       key: 1,
    26       obj: { id: 1, file: getRandomFile("random.bin", 100000) }
    27     };
    28     const fileData2 = {
    29       key: 2,
    30       obj: { id: 1, file: getRandomFile("random.bin", 100000) }
    31     };
    33     {
    34       let request = indexedDB.open(name, 1);
    35       request.onerror = errorHandler;
    36       request.onupgradeneeded = grabEventAndContinueHandler;
    37       request.onsuccess = grabEventAndContinueHandler;
    38       let event = yield undefined;
    40       is(event.type, "upgradeneeded", "Got correct event type");
    42       let db = event.target.result;
    43       db.onerror = errorHandler;
    45       let objectStore = db.createObjectStore(objectStoreName, { });
    47       objectStore.createIndex("index", "id", { unique: true });
    49       objectStore.add(fileData1.obj, fileData1.key);
    51       request = objectStore.add(fileData2.obj, fileData2.key);
    52       request.addEventListener("error", new ExpectError("ConstraintError", true));
    53       request.onsuccess = unexpectedSuccessHandler;
    54       yield undefined;
    56       event = yield undefined;
    58       is(event.type, "success", "Got correct event type");
    60       getUsage(grabFileUsageAndContinueHandler);
    61       let usage = yield undefined;
    63       is(usage, startUsage + fileData1.obj.file.size + fileData2.obj.file.size,
    64          "Correct file usage");
    66       let trans = db.transaction([objectStoreName], READ_WRITE);
    67       trans.objectStore(objectStoreName).delete(fileData1.key);
    68       trans.oncomplete = grabEventAndContinueHandler;
    69       event = yield undefined;
    71       is(event.type, "complete", "Got correct event type");
    73       getUsage(grabFileUsageAndContinueHandler);
    74       usage = yield undefined;
    76       is(usage, startUsage + fileData1.obj.file.size + fileData2.obj.file.size,
    77          "OS files exists");
    79       fileData1.obj.file = null;
    80       fileData2.obj.file = null;
    81     }
    83     scheduleGC();
    84     yield undefined;
    86     getUsage(grabFileUsageAndContinueHandler);
    87     let endUsage = yield undefined;
    89     is(endUsage, startUsage, "OS files deleted");
    91     finishTest();
    92     yield undefined;
    93   }
    94   </script>
    95   <script type="text/javascript;version=1.7" src="file.js"></script>
    96   <script type="text/javascript;version=1.7" src="helpers.js"></script>
    98 </head>
   100 <body onload="runTest();"></body>
   102 </html>

mercurial