| Index: chrome/test/data/fileapi/quota_test.js
|
| diff --git a/chrome/test/data/fileapi/quota_test.js b/chrome/test/data/fileapi/quota_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..382d6230448bef7acf4fc22d2cfff7484b01a519
|
| --- /dev/null
|
| +++ b/chrome/test/data/fileapi/quota_test.js
|
| @@ -0,0 +1,66 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +function truncateFailByQuota(fs) {
|
| + fs.root.getFile('fd', {create: false, exclusive: false}, function(fileEntry) {
|
| + fileEntry.createWriter(function(fileWriter) {
|
| + var failedInTruncate = false;
|
| + fileWriter.onerror = function(e) {
|
| + failedInTruncate = true;
|
| + };
|
| + fileWriter.onwriteend = function(e) {
|
| + if (failedInTruncate) {
|
| + fail(e.currentTarget.error);
|
| + } else {
|
| + done();
|
| + }
|
| + };
|
| + fileWriter.truncate(2500 * 1024);
|
| + }, unexpectedErrorCallback)
|
| + }, function(e) { fail('Open for 2nd truncate:' + fileErrorToString(e)); } );
|
| +}
|
| +
|
| +function requestFileSystemSuccess(fs) {
|
| + fs.root.getFile('fd', {create: true, exclusive: false}, function(fileEntry) {
|
| + fileEntry.createWriter(function(fileWriter) {
|
| + var failedInTruncate = false;
|
| + fileWriter.onerror = function(e) {
|
| + debug(e.currentTarget.error);
|
| + failedInTruncate = true;
|
| + };
|
| + fileWriter.onwriteend = function() {
|
| + if (failedInTruncate) {
|
| + truncateFailByQuota(fs);
|
| + } else {
|
| + fail('Unexpectedly succeeded to truncate. It should fail by quota.');
|
| + }
|
| + };
|
| + fileWriter.truncate(10000 * 1024);
|
| + }, unexpectedErrorCallback)
|
| + }, function(e) { fail('Open for 1st truncate:' + fileErrorToString(e)); } );
|
| +}
|
| +
|
| +function quotaSuccess(usage, quota) {
|
| + if (usage != 0)
|
| + fail('Usage is not zero: ' + usage);
|
| + if (quota != 5000 * 1024)
|
| + fail('Quota is not 5000KiB: ' + quota);
|
| +
|
| + window.webkitRequestFileSystem(
|
| + window.TEMPORARY,
|
| + 1024 * 1024,
|
| + requestFileSystemSuccess,
|
| + unexpectedErrorCallback);
|
| +}
|
| +
|
| +function test() {
|
| + if (window.webkitStorageInfo) {
|
| + debug('Querying usage and quota.');
|
| + webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.TEMPORARY,
|
| + quotaSuccess,
|
| + unexpectedErrorCallback);
|
| + } else {
|
| + debug('This test requires window.webkitStorageInfo.');
|
| + }
|
| +}
|
|
|