| Index: chrome/test/data/extensions/api_test/sync_file_system/write_file_then_get_usage/test.js | 
| diff --git a/chrome/test/data/extensions/api_test/sync_file_system/write_file_then_get_usage/test.js b/chrome/test/data/extensions/api_test/sync_file_system/write_file_then_get_usage/test.js | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..4813dbdc285dfb07217bac2ed584ff9eae3e7478 | 
| --- /dev/null | 
| +++ b/chrome/test/data/extensions/api_test/sync_file_system/write_file_then_get_usage/test.js | 
| @@ -0,0 +1,73 @@ | 
| +// Copyright (c) 2012 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. | 
| + | 
| +var fileEntry; | 
| +var fileSystem; | 
| +var usageBeforeWrite; | 
| +var testData = "12345"; | 
| + | 
| +var testStep = [ | 
| +  function () { | 
| +    chrome.syncFileSystem.requestFileSystem('drive', testStep.shift()); | 
| +  }, | 
| +  // Create empty file. | 
| +  function(fs) { | 
| +    fileSystem = fs; | 
| +    fileSystem.root.getFile('Test.txt', {create: true}, testStep.shift(), | 
| +        errorHandler); | 
| +  }, | 
| +  function(entry) { | 
| +    fileEntry = entry; | 
| +    testStep.shift()(); | 
| +  }, | 
| +  // Record usage before write. | 
| +  function() { | 
| +    chrome.syncFileSystem.getUsageAndQuota(fileSystem, testStep.shift()); | 
| +  }, | 
| +  function(storageInfo) { | 
| +    usageBeforeWrite = storageInfo.usage_bytes; | 
| +    testStep.shift()(); | 
| +  }, | 
| +  // Write a known number of bytes. | 
| +  function() { | 
| +    fileEntry.createWriter(testStep.shift(), errorHandler); | 
| +  }, | 
| +  function (fileWriter) { | 
| +    fileWriter.onwriteend = function(e) { | 
| +      testStep.shift()(); | 
| +    }; | 
| +    fileWriter.onerror = function(e) { | 
| +      chrome.test.fail('Write failed: ' + e.toString()); | 
| +    }; | 
| +    fileWriter.seek(fileWriter.length); | 
| +    var blob = new Blob([testData], {type: "text/plain"}); | 
| +    fileWriter.write(blob); | 
| +  }, | 
| +  // Check the meta data for updated usage. | 
| +  function() { | 
| +    fileEntry.getMetadata(testStep.shift(), errorHandler); | 
| +  }, | 
| +  function (metadata) { | 
| +    chrome.test.assertEq(testData.length, metadata.size); | 
| +    testStep.shift()(); | 
| +  }, | 
| +  // Check global usage was updated. | 
| +  function() { | 
| +    chrome.syncFileSystem.getUsageAndQuota(fileSystem, testStep.shift()); | 
| +  }, | 
| +  function(storageInfo) { | 
| +    var usageAfterWrite = storageInfo.usage_bytes; | 
| +    chrome.test.assertEq(testData.length, usageAfterWrite - usageBeforeWrite); | 
| +    chrome.test.succeed(); | 
| +  } | 
| +]; | 
| + | 
| +function errorHandler() { | 
| +  chrome.test.fail(); | 
| +} | 
| + | 
| +chrome.test.runTests([ | 
| +  testStep[0] | 
| +]); | 
| + | 
|  |