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

Side by Side Diff: chrome/test/data/extensions/api_test/file_system_provider/unmount/test.js

Issue 194693002: [fsp] Add requestUnmount() method together with the request manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. Created 6 years, 9 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
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 var firstFileSystemId;
6 var secondFileSystemId;
7
8 function setUp(callback) {
9 chrome.fileSystemProvider.mount('chocolate.zip', function(id) {
10 firstFileSystemId = id;
11 if (firstFileSystemId && secondFileSystemId)
12 callback();
13 }, function() {
14 chrome.test.fail();
15 });
16
17 chrome.fileSystemProvider.mount('banana.zip', function(id) {
18 secondFileSystemId = id;
19 if (firstFileSystemId && secondFileSystemId)
20 callback();
21 }, function() {
22 chrome.test.fail();
23 });
24 }
25
26 function runTests() {
27 chrome.test.runTests([
28 // Tests the fileBrowserPrivate.unmount(). Verifies if the unmount event
satorux1 2014/03/27 04:43:24 Did you mean: fileSystemProvider.unmount
mtomasz 2014/03/27 04:55:30 Done.
29 // is emitted by VolumeManager.
30 function unmount() {
31 var firstVolumeId =
32 'provided:' + chrome.runtime.id + '-' + firstFileSystemId + '-user';
33
34 var onMountCompleted = function(event) {
35 chrome.test.assertEq('unmount', event.eventType);
36 chrome.test.assertEq('success', event.status);
37 chrome.test.assertEq(firstVolumeId, event.volumeMetadata.volumeId);
38 chrome.fileBrowserPrivate.onMountCompleted.removeListener(
39 onMountCompleted);
40 chrome.test.succeed();
41 };
42
43 chrome.fileBrowserPrivate.onMountCompleted.addListener(
44 onMountCompleted);
45 chrome.fileSystemProvider.unmount(firstFileSystemId, function() {
46 // Wait for the unmount event.
47 }, function(error) {
48 chrome.test.fail();
49 });
50 },
51
52 // Tests the fileBrowserPrivate.unmount() with a wrong id. Verifies that
satorux1 2014/03/27 04:43:24 ditto
mtomasz 2014/03/27 04:55:30 Done.
53 // it fails with a correct error code.
54 function unmountWrongId() {
55 chrome.fileSystemProvider.unmount(1337, function() {
56 chrome.test.fail();
57 }, function(error) {
58 chrome.test.assertEq('SecurityError', error.name);
59 chrome.test.succeed();
60 });
61 },
62
63 // Tests if fileBrowserPrivate.removeMount() for provided file systems emits
64 // the onMountRequested() event with correct arguments.
65 function requestUnmountSuccess() {
66 var secondVolumeId =
67 'provided:' + chrome.runtime.id + '-' + secondFileSystemId + '-user';
68
69 var onUnmountRequested = function(fileSystemId, onSuccess, onError) {
70 chrome.test.assertEq(secondFileSystemId, fileSystemId);
71 onSuccess();
72 // Not calling fileSystemProvider.unmount(), so the onMountCompleted
73 // event will not be raised.
74 chrome.fileSystemProvider.onUnmountRequested.removeListener(
75 onUnmountRequested);
76 chrome.test.succeed();
77 };
78
79 chrome.fileSystemProvider.onUnmountRequested.addListener(
80 onUnmountRequested);
81 chrome.fileBrowserPrivate.removeMount(secondVolumeId);
82 },
83
84 // End to end test with a failure. Invokes fileSystemProvider.removeMount()
85 // on a provided file system, and verifies (1) if the onMountRequested()
86 // event is called with correct aguments, and (2) if calling onError(),
87 // results in an unmount event fired from the VolumeManager instance.
satorux1 2014/03/27 04:43:24 I found these comments very useful. Could you add
mtomasz 2014/03/27 04:55:30 Done.
88 function requestUnmountError() {
89 var secondVolumeId =
90 'provided:' + chrome.runtime.id + '-' + secondFileSystemId + '-user';
91 var unmountRequested = false;
92
93 var onUnmountRequested = function(fileSystemId, onSuccess, onError) {
94 chrome.test.assertEq(false, unmountRequested);
95 chrome.test.assertEq(secondFileSystemId, fileSystemId);
96 onError('IN_USE'); // enum ProviderError.
97 unmountRequested = true;
98 chrome.fileSystemProvider.onUnmountRequested.removeListener(
99 onUnmountRequested);
100 };
101
102 var onMountCompleted = function(event) {
103 chrome.test.assertEq('unmount', event.eventType);
104 chrome.test.assertEq('error_unknown', event.status);
105 chrome.test.assertEq(secondVolumeId, event.volumeMetadata.volumeId);
106 chrome.test.assertTrue(unmountRequested);
107
108 // Remove the handlers and mark the test as succeeded.
109 chrome.fileBrowserPrivate.removeMount(secondVolumeId);
110 chrome.fileBrowserPrivate.onMountCompleted.removeListener(
111 onMountCompleted);
112 chrome.test.succeed();
113 };
114
115 chrome.fileSystemProvider.onUnmountRequested.addListener(
116 onUnmountRequested);
117 chrome.fileBrowserPrivate.onMountCompleted.addListener(onMountCompleted);
118 chrome.fileBrowserPrivate.removeMount(secondVolumeId);
119 }
120 ]);
121 };
122
123 setUp(runTests);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698