Index: chrome/test/data/extensions/api_test/filebrowser_component/main.html |
=================================================================== |
--- chrome/test/data/extensions/api_test/filebrowser_component/main.html (revision 112170) |
+++ chrome/test/data/extensions/api_test/filebrowser_component/main.html (working copy) |
@@ -1,160 +1,9 @@ |
-<script> |
- |
-/* |
-This component extension test does the following: |
- |
-1. Creates a txt file on the local file system with some random text. |
-2. Finds a registered task (file item context menu) and invokes it with url |
- of the test file. |
-3. Listens for a message from context menu handler and makes sure its payload |
- matches the random text from the test file. |
-*/ |
- |
-// The ID of this extension. |
-var fileBrowserExtensionId = "ddammdhioacbehjngdmkjcjbnfginlla"; |
- |
-var fileSystem = null; |
-var testDirName = "tmp/test_dir_" + Math.floor(Math.random()*10000); |
-var testFileName = "test_file_" + Math.floor(Math.random()*10000)+".Txt"; |
-var fileUrl = "filesystem:chrome-extension://" + fileBrowserExtensionId + |
- "/external/" + testDirName + "/" + testFileName; |
-var testDirectory = null; |
-var randomText = "random file text " + Math.floor(Math.random()*10000); |
- |
-function onFileSystemFetched(fs) { |
- if (!fs) { |
- errorCallback(chrome.extensions.lastError); |
- return; |
- } |
- fileSystem = fs; |
- console.log("DONE requesting local filesystem: " + fileSystem.name); |
- console.log("Creating directory : " + testDirName); |
- fileSystem.root.getDirectory(testDirName, {create:true}, |
- directoryCreateCallback, errorCallback); |
-} |
- |
-function directoryCreateCallback(directory) { |
- testDirectory = directory; |
- console.log("DONE creating directory: " + directory.fullPath); |
- directory.getFile(testFileName, {create:true}, fileCreatedCallback, |
- errorCallback); |
-} |
- |
-function fileCreatedCallback(fileEntry) { |
- console.log("DONE creating file: " + fileEntry.fullPath); |
- fileEntry.createWriter(onGetFileWriter); |
-} |
- |
-function onGetFileWriter(writer) { |
- // Start |
- console.log("Got file writer"); |
- writer.onerror = errorCallback; |
- writer.onwrite = onFileWriteCompleted; |
- var bb = new WebKitBlobBuilder(); |
- bb.append(randomText); |
- writer.write(bb.getBlob('text/plain')); |
-} |
- |
-function onFileWriteCompleted(e) { |
- // Start |
- console.log("DONE writing file content"); |
- console.log("Get registered tasks now..."); |
- chrome.fileBrowserPrivate.getFileTasks([fileUrl], onGetTasks); |
- |
-} |
- |
-function onGetTasks(tasks) { |
- console.log("Tasks: "); |
- console.log(tasks); |
- if (!tasks || !tasks.length) { |
- chrome.test.fail("No tasks registered"); |
- return; |
- } |
- |
- var expected_tasks = {'TextAction': ['filesystem:*.txt'], |
- 'BaseAction': ['filesystem:*', 'filesystem:*.*']}; |
- |
- console.log("DONE fetching " + tasks.length + " tasks"); |
- |
- if (tasks.length != 2) |
- chrome.test.fail('Wrong number of tasks found.'); |
- |
- for (var i = 0; i < tasks.length; ++i) { |
- var task_name = /^.*[|](\w+)$/.exec(tasks[i].taskId)[1]; |
- var patterns = tasks[i].patterns; |
- var expected_patterns = expected_tasks[task_name]; |
- if (!expected_patterns) |
- chrome.test.fail('Wrong task from getFileTasks(): ' + task_name); |
- patterns = patterns.sort(); |
- expected_patterns = expected_patterns.sort(); |
- for (var j = 0; j < patterns.length; ++j) { |
- if (patterns[j] != expected_patterns[j]) |
- chrome.test.fail('Wrong patterns set for task ' + task_name + '. ' + |
- 'Got: ' + patterns + |
- ' expected: ' + expected_patterns); |
- } |
- } |
- |
- chrome.fileBrowserPrivate.executeTask(tasks[0].taskId, [fileUrl]); |
-} |
- |
-function errorCallback(e) { |
- var msg = ''; |
- if (!e.code) { |
- msg = e.message; |
- } else { |
- switch (e.code) { |
- case FileError.QUOTA_EXCEEDED_ERR: |
- msg = 'QUOTA_EXCEEDED_ERR'; |
- break; |
- case FileError.NOT_FOUND_ERR: |
- msg = 'NOT_FOUND_ERR'; |
- break; |
- case FileError.SECURITY_ERR: |
- msg = 'SECURITY_ERR'; |
- break; |
- case FileError.INVALID_MODIFICATION_ERR: |
- msg = 'INVALID_MODIFICATION_ERR'; |
- break; |
- case FileError.INVALID_STATE_ERR: |
- msg = 'INVALID_STATE_ERR'; |
- break; |
- default: |
- msg = 'Unknown Error'; |
- break; |
- }; |
- } |
- chrome.test.fail("Got unexpected error: " + msg); |
- console.log('Error: ' + msg); |
- alert('Error: ' + msg); |
-} |
- |
-function onCleanupFinished(entry) { |
- chrome.test.succeed(); |
-} |
- |
-// For simple requests: |
-chrome.extension.onRequestExternal.addListener( |
- function(request, sender, sendResponse) { |
- if (request.fileContent && request.fileContent == randomText) { |
- sendResponse({success: true}); |
- testDirectory.removeRecursively(onCleanupFinished, errorCallback); |
- } else { |
- sendResponse({success: false}); |
- console.log('Error message received'); |
- console.log(request); |
- chrome.test.fail("Got error: " + request.error); |
- } |
- }); |
- |
-chrome.test.runTests([function tab() { |
- // Get local FS, create dir with a file in it. |
- console.log("Requesting local file system..."); |
- chrome.fileBrowserPrivate.requestLocalFileSystem(onFileSystemFetched); |
-}]); |
- |
- |
-</script> |
+<!-- |
+ * 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. |
+--> |
+<script src="main.js"></script> |
<html> |
<head><title>file browser component test</title></head> |
<body><h2>chrome.fileBrowserPrivate.* tests</h2></body> |