Chromium Code Reviews| OLD | NEW |
|---|---|
| (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); | |
| OLD | NEW |