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

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

Issue 8758008: Move another block of extension tests to manifest_version 2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years 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
OLDNEW
1 <script> 1 <!--
2 2 * Copyright (c) 2011 The Chromium Authors. All rights reserved. Use of this
3 /* 3 * source code is governed by a BSD-style license that can be found in the
4 This component extension test does the following: 4 * LICENSE file.
5 5 -->
6 1. Creates a txt file on the local file system with some random text. 6 <script src="main.js"></script>
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 writer");
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
74 var expected_tasks = {'TextAction': ['filesystem:*.txt'],
75 'BaseAction': ['filesystem:*', 'filesystem:*.*']};
76
77 console.log("DONE fetching " + tasks.length + " tasks");
78
79 if (tasks.length != 2)
80 chrome.test.fail('Wrong number of tasks found.');
81
82 for (var i = 0; i < tasks.length; ++i) {
83 var task_name = /^.*[|](\w+)$/.exec(tasks[i].taskId)[1];
84 var patterns = tasks[i].patterns;
85 var expected_patterns = expected_tasks[task_name];
86 if (!expected_patterns)
87 chrome.test.fail('Wrong task from getFileTasks(): ' + task_name);
88 patterns = patterns.sort();
89 expected_patterns = expected_patterns.sort();
90 for (var j = 0; j < patterns.length; ++j) {
91 if (patterns[j] != expected_patterns[j])
92 chrome.test.fail('Wrong patterns set for task ' + task_name + '. ' +
93 'Got: ' + patterns +
94 ' expected: ' + expected_patterns);
95 }
96 }
97
98 chrome.fileBrowserPrivate.executeTask(tasks[0].taskId, [fileUrl]);
99 }
100
101 function errorCallback(e) {
102 var msg = '';
103 if (!e.code) {
104 msg = e.message;
105 } else {
106 switch (e.code) {
107 case FileError.QUOTA_EXCEEDED_ERR:
108 msg = 'QUOTA_EXCEEDED_ERR';
109 break;
110 case FileError.NOT_FOUND_ERR:
111 msg = 'NOT_FOUND_ERR';
112 break;
113 case FileError.SECURITY_ERR:
114 msg = 'SECURITY_ERR';
115 break;
116 case FileError.INVALID_MODIFICATION_ERR:
117 msg = 'INVALID_MODIFICATION_ERR';
118 break;
119 case FileError.INVALID_STATE_ERR:
120 msg = 'INVALID_STATE_ERR';
121 break;
122 default:
123 msg = 'Unknown Error';
124 break;
125 };
126 }
127 chrome.test.fail("Got unexpected error: " + msg);
128 console.log('Error: ' + msg);
129 alert('Error: ' + msg);
130 }
131
132 function onCleanupFinished(entry) {
133 chrome.test.succeed();
134 }
135
136 // For simple requests:
137 chrome.extension.onRequestExternal.addListener(
138 function(request, sender, sendResponse) {
139 if (request.fileContent && request.fileContent == randomText) {
140 sendResponse({success: true});
141 testDirectory.removeRecursively(onCleanupFinished, errorCallback);
142 } else {
143 sendResponse({success: false});
144 console.log('Error message received');
145 console.log(request);
146 chrome.test.fail("Got error: " + request.error);
147 }
148 });
149
150 chrome.test.runTests([function tab() {
151 // Get local FS, create dir with a file in it.
152 console.log("Requesting local file system...");
153 chrome.fileBrowserPrivate.requestLocalFileSystem(onFileSystemFetched);
154 }]);
155
156
157 </script>
158 <html> 7 <html>
159 <head><title>file browser component test</title></head> 8 <head><title>file browser component test</title></head>
160 <body><h2>chrome.fileBrowserPrivate.* tests</h2></body> 9 <body><h2>chrome.fileBrowserPrivate.* tests</h2></body>
161 </html> 10 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698