dom/devicestorage/test/test_fs_createDirectory.html

Thu, 15 Jan 2015 15:55:04 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:55:04 +0100
branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
permissions
-rw-r--r--

Back out 97036ab72558 which inappropriately compared turds to third parties.

     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=910412
     8 -->
     9 <head>
    10   <title>Test createDirectory of the FileSystem API for device storage</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=910412">Mozilla Bug 910412</a>
    18 <p id="display"></p>
    19 <div id="content" style="display: none">
    20 </div>
    21 <pre id="test">
    22 <script class="testbody" type="text/javascript">
    24 devicestorage_setup();
    26 // The root directory object.
    27 var gRoot;
    28 var gTestCount = 0;
    29 var gPath = '';
    30 var gName = '';
    32 function testCreateDirectory(rootDir, path) {
    33   rootDir.createDirectory(path).then(createDirectorySuccess, cbError);
    34 }
    36 function createDirectorySuccess(d) {
    37   ok(d.name === gName, "Failed to create directory: name mismatch.");
    39   // Get the new created directory from the root.
    40   gRoot.get(gPath).then(getSuccess, cbError);
    41 }
    43 function getSuccess(d) {
    44   ok(d.name === gName, "Should get directory - " + (gPath || "[root]") + ".");
    45   switch (gTestCount) {
    46     case 0:
    47       gRoot = d;
    48       // Create a new directory under the root.
    49       gName = gPath = randomFilename(12);
    50       testCreateDirectory(gRoot, gName);
    51       break;
    52     case 1:
    53       // Create a sub-directory under current directory.
    54       gName = randomFilename(12);
    55       gPath = gPath + '/' + gName;
    56       testCreateDirectory(d, gName);
    57       break;
    58     case 2:
    59       // Create directory with an existing path.
    60       gRoot.createDirectory(gPath).then(function(what) {
    61         ok(false, "Should not overwrite an existing directory.");
    62         devicestorage_cleanup();
    63       }, function(e) {
    64         ok(true, "Creating directory should fail if it already exists.");
    66         // Create a directory whose intermediate directory doesn't exit.
    67         gName = randomFilename(12);
    68         gPath = 'sub1/sub2/' + gName;
    69         testCreateDirectory(gRoot, gPath);
    70       });
    71       break;
    72     default:
    73       // Create the parent directory.
    74       d.createDirectory('..').then(function(what) {
    75         ok(false, "Should not overwrite an existing directory.");
    76         devicestorage_cleanup();
    77       }, function(e) {
    78         ok(true, "Accessing parent directory with '..' is not allowed.");
    79         devicestorage_cleanup();
    80       });
    81       break;
    82   }
    83   gTestCount++;
    84 }
    86 function cbError(e) {
    87   ok(false, e.name + " error should not arrive here!");
    88   devicestorage_cleanup();
    89 }
    91 ok(navigator.getDeviceStorage, "Should have getDeviceStorage.");
    93 var storage = navigator.getDeviceStorage("pictures");
    94 ok(storage, "Should have gotten a storage.");
    96 var promise = storage.getRoot();
    97 ok(promise, "Should have a non-null promise for getRoot.");
    99 gName = storage.storageName;
   100 promise.then(getSuccess, cbError);
   101 </script>
   102 </pre>
   103 </body>
   104 </html>

mercurial