Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Unified Diff: chrome/test/data/extensions/api_test/file_system_provider/read_file/test.js

Issue 294073007: [fsp] Let extensions decide about the file system id. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/api_test/file_system_provider/read_file/test.js
diff --git a/chrome/test/data/extensions/api_test/file_system_provider/read_file/test.js b/chrome/test/data/extensions/api_test/file_system_provider/read_file/test.js
index b9d7b0846a3f040030f247c015e21752daa74bf6..6cff9d2be9bf8e01534d3c4de77dd54166946864 100644
--- a/chrome/test/data/extensions/api_test/file_system_provider/read_file/test.js
+++ b/chrome/test/data/extensions/api_test/file_system_provider/read_file/test.js
@@ -5,12 +5,7 @@
'use strict';
/**
- * @type {number}
- */
-var fileSystemId = 0;
-
-/**
- * @type {?DOMFileSystem}
+ * @type {DOMFileSystem}
*/
var fileSystem = null;
@@ -22,6 +17,12 @@ var fileSystem = null;
var openedFiles = {};
/**
+ * @type {string}
+ * @const
+ */
+var FILE_SYSTEM_ID = 'chocolate-id';
+
+/**
* @type {Object}
* @const
*/
@@ -64,20 +65,39 @@ var TESTING_BROKEN_TIRAMISU_FILE = Object.freeze({
});
/**
+ * Gets volume information for the provided file system.
+ *
+ * @param {string} fileSystemId Id of the provided file system.
+ * @param {function(Object)} callback Callback to be called on result, with the
+ * volume information object in case of success, or null if not found.
+ */
+function getVolumeInfo(fileSystemId, callback) {
+ chrome.fileBrowserPrivate.getVolumeMetadataList(function(volumeList) {
+ for (var i = 0; i < volumeList.length; i++) {
+ if (volumeList[i].extensionId == chrome.runtime.id &&
+ volumeList[i].fileSystemId == fileSystemId) {
+ callback(volumeList[i]);
+ return;
+ }
+ }
+ callback(null);
+ });
+}
+
+/**
* Returns metadata for the requested entry.
*
* To successfully acquire a DirectoryEntry, or even a DOMFileSystem, this event
* must be implemented and return correct values.
*
- * @param {number} inFileSystemId ID of the file system.
+ * @param {string} inFileSystemId ID of the file system.
* @param {string} entryPath Path of the requested entry.
* @param {function(Object)} onSuccess Success callback with metadata passed
* an argument.
* @param {function(string)} onError Error callback with an error code.
*/
-function onGetMetadataRequested(
- inFileSystemId, entryPath, onSuccess, onError) {
- if (inFileSystemId != fileSystemId) {
+function onGetMetadataRequested(inFileSystemId, entryPath, onSuccess, onError) {
+ if (inFileSystemId != FILE_SYSTEM_ID) {
onError('SECURITY_ERROR'); // enum ProviderError.
return;
}
@@ -104,7 +124,7 @@ function onGetMetadataRequested(
* Requests opening a file at <code>filePath</code>. Further file operations
* will be associated with the <code>requestId</code>
*
- * @param {number} inFileSystemId ID of the file system.
+ * @param {string} inFileSystemId ID of the file system.
* @param {number} requestId ID of the opening request. Used later for reading.
* @param {string} filePath Path of the file to be opened.
* @param {string} mode Mode, either reading or writing.
@@ -114,7 +134,7 @@ function onGetMetadataRequested(
*/
function onOpenFileRequested(
inFileSystemId, requestId, filePath, mode, create, onSuccess, onError) {
- if (inFileSystemId != fileSystemId || mode != 'READ' || create) {
+ if (inFileSystemId != FILE_SYSTEM_ID || mode != 'READ' || create) {
onError('SECURITY_ERROR'); // enum ProviderError.
return;
}
@@ -131,14 +151,14 @@ function onOpenFileRequested(
/**
* Requests closing a file previously opened with <code>openRequestId</code>.
*
- * @param {number} inFileSystemId ID of the file system.
+ * @param {string} inFileSystemId ID of the file system.
* @param {number} openRequestId ID of the request used to open the file.
* @param {function()} onSuccess Success callback.
* @param {function(string)} onError Error callback.
*/
function onCloseFileRequested(
inFileSystemId, openRequestId, onSuccess, onError) {
- if (inFileSystemId != fileSystemId || !openedFiles[openRequestId]) {
+ if (inFileSystemId != FILE_SYSTEM_ID || !openedFiles[openRequestId]) {
onError('SECURITY_ERROR'); // enum ProviderError.
return;
}
@@ -151,7 +171,7 @@ function onCloseFileRequested(
* Requests reading contents of a file, previously opened with <code>
* openRequestId</code>.
*
- * @param {number} inFileSystemId ID of the file system.
+ * @param {string} inFileSystemId ID of the file system.
* @param {number} openRequestId ID of the request used to open the file.
* @param {number} offset Offset of the file.
* @param {number} length Number of bytes to read.
@@ -162,7 +182,7 @@ function onCloseFileRequested(
function onReadFileRequested(
inFileSystemId, openRequestId, offset, length, onSuccess, onError) {
var filePath = openedFiles[openRequestId];
- if (inFileSystemId != fileSystemId || !filePath) {
+ if (inFileSystemId != FILE_SYSTEM_ID || !filePath) {
onError('SECURITY_ERROR'); // enum ProviderError.
return;
}
@@ -201,8 +221,7 @@ function onReadFileRequested(
* @param {function()} callback Success callback.
*/
function setUp(callback) {
- chrome.fileSystemProvider.mount('chocolate.zip', function(id) {
- fileSystemId = id;
+ chrome.fileSystemProvider.mount(FILE_SYSTEM_ID, 'chocolate.zip', function() {
chrome.fileSystemProvider.onGetMetadataRequested.addListener(
onGetMetadataRequested);
chrome.fileSystemProvider.onOpenFileRequested.addListener(
@@ -210,16 +229,19 @@ function setUp(callback) {
chrome.fileSystemProvider.onReadFileRequested.addListener(
onReadFileRequested);
var volumeId =
- 'provided:' + chrome.runtime.id + '-' + fileSystemId + '-user';
+ 'provided:' + chrome.runtime.id + '-' + FILE_SYSTEM_ID + '-user';
- chrome.fileBrowserPrivate.requestFileSystem(
- volumeId,
- function(inFileSystem) {
- chrome.test.assertTrue(!!inFileSystem);
+ getVolumeInfo(FILE_SYSTEM_ID, function(volumeInfo) {
+ chrome.test.assertTrue(!!volumeInfo);
+ chrome.fileBrowserPrivate.requestFileSystem(
+ volumeInfo.volumeId,
+ function(inFileSystem) {
+ chrome.test.assertTrue(!!inFileSystem);
- fileSystem = inFileSystem;
- callback();
- });
+ fileSystem = inFileSystem;
+ callback();
+ });
+ });
}, function() {
chrome.test.fail();
});

Powered by Google App Engine
This is Rietveld 408576698