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

Side by Side Diff: chrome/test/data/extensions/api_test/filebrowser_component/main.html

Issue 6749021: Added new fileBrowserPrivate and fileHandler extension APIs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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 unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 <script>
2
3 /*
4 This component extension test does the following:
5
6 1. Creates a txt file on the local file system with some random text.
7 2. Finds a registered task (file item context menu) and invokes it with url
8 of the test file.
9 3. Listens for a message from context menu handler and makes sure its payload
10 matches the random text from the test file.
11 */
12
13 // The ID of this extension.
14 var fileBrowserExtensionId = "ddammdhioacbehjngdmkjcjbnfginlla";
15
16 var fileSystem = null;
17 var testDirName = "tmp/test_dir_" + Math.floor(Math.random()*10000);
18 var testFileName = "test_file_" + Math.floor(Math.random()*10000)+".txt";
19 var fileUrl = "filesystem:chrome-extension://" + fileBrowserExtensionId +
20 "/external/" + testDirName + "/" + testFileName;
21 var testDirectory = null;
22 var randomText = "random file text " + Math.floor(Math.random()*10000);
23
24 function onFileSystemFetched(fs) {
25 if (!fs) {
26 errorCallback(chrome.extensions.lastError);
27 return;
28 }
29 fileSystem = fs;
30 console.log("DONE requesting local filesystem: " + fileSystem.name);
31 console.log("Creating directory : " + testDirName);
32 fileSystem.root.getDirectory(testDirName, {create:true},
33 directoryCreateCallback, errorCallback);
34 }
35
36 function directoryCreateCallback(directory) {
37 testDirectory = directory;
38 console.log("DONE creating directory: " + directory.fullPath);
39 directory.getFile(testFileName, {create:true}, fileCreatedCallback,
40 errorCallback);
41 }
42
43 function fileCreatedCallback(fileEntry) {
44 console.log("DONE creating file: " + fileEntry.fullPath);
45 fileEntry.createWriter(onGetFileWriter);
46 }
47
48 function onGetFileWriter(writer) {
49 // Start
50 console.log("Got file writter");
51 writer.onerror = errorCallback;
52 writer.onwrite = onFileWriteCompleted;
53 var bb = new WebKitBlobBuilder();
54 bb.append(randomText);
55 writer.write(bb.getBlob('text/plain'));
56 }
57
58 function onFileWriteCompleted(e) {
59 // Start
60 console.log("DONE writing file content");
61 console.log("Get registered tasks now...");
62 chrome.fileBrowserPrivate.getFileTasks([fileUrl], onGetTasks);
63
64 }
65
66 function onGetTasks(tasks) {
67 console.log("Tasks: ");
68 console.log(tasks);
69 if (!tasks || !tasks.length) {
70 chrome.test.fail("No tasks registered");
71 return;
72 }
73 console.log("DONE fetching tasks: " + tasks[0].taskId);
74 chrome.fileBrowserPrivate.executeTask(tasks[0].taskId, [fileUrl]);
75 }
76
77 function errorCallback(e) {
78 var msg = '';
79 if (!e.code) {
80 msg = e.message;
81 } else {
82 switch (e.code) {
83 case FileError.QUOTA_EXCEEDED_ERR:
84 msg = 'QUOTA_EXCEEDED_ERR';
85 break;
86 case FileError.NOT_FOUND_ERR:
87 msg = 'NOT_FOUND_ERR';
88 break;
89 case FileError.SECURITY_ERR:
90 msg = 'SECURITY_ERR';
91 break;
92 case FileError.INVALID_MODIFICATION_ERR:
93 msg = 'INVALID_MODIFICATION_ERR';
94 break;
95 case FileError.INVALID_STATE_ERR:
96 msg = 'INVALID_STATE_ERR';
97 break;
98 default:
99 msg = 'Unknown Error';
100 break;
101 };
102 }
103 chrome.test.fail("Got unexpected error: " + msg);
104 console.log('Error: ' + msg);
105 alert('Error: ' + msg);
106 }
107
108 function onCleanupFinished(entry) {
109 chrome.test.succeed();
110 }
111
112 // For simple requests:
113 chrome.extension.onRequestExternal.addListener(
114 function(request, sender, sendResponse) {
115 if (request.fileContent && request.fileContent == randomText) {
116 sendResponse({success: true});
117 testDirectory.removeRecursively(onCleanupFinished, errorCallback);
118 } else {
119 sendResponse({success: false});
120 console.log('Error message received');
121 console.log(request);
122 chrome.test.fail("Got error: " + request.error);
123 }
124 });
125
126 chrome.test.runTests([function tab() {
127 // Get local FS, create dir with a file in it.
128 console.log("Requesting local file system...");
129 chrome.fileBrowserPrivate.requestLocalFileSystem(onFileSystemFetched);
130 }]);
131
132
133 </script>
134 <html>
135 <body><h2>chrome.fileBrowserPrivate.* tests</h2></body>
136 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698