OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Set up string assets. | 5 // Set up string assets. |
6 loadTimeData.data = { | 6 loadTimeData.data = { |
7 DRIVE_DIRECTORY_LABEL: 'My Drive', | 7 DRIVE_DIRECTORY_LABEL: 'My Drive', |
8 DOWNLOADS_DIRECTORY_LABEL: 'Downloads' | 8 DOWNLOADS_DIRECTORY_LABEL: 'Downloads' |
9 }; | 9 }; |
10 | 10 |
11 // A providing extension which has mounted a file system, and doesn't support | 11 // A providing extension which has mounted a file system, and doesn't support |
12 // multiple mounts. | 12 // multiple mounts. |
13 var MOUNTED_SINGLE_PROVIDING_EXTENSION = { | 13 var MOUNTED_SINGLE_PROVIDING_EXTENSION = { |
14 extensionId: 'mounted-single-extension-id', | 14 extensionId: 'mounted-single-extension-id', |
15 name: 'mounted-single-extension-name', | 15 name: 'mounted-single-extension-name', |
16 configurable: false, | 16 configurable: false, |
| 17 watchable: true, |
17 multipleMounts: false, | 18 multipleMounts: false, |
18 source: 'network' | 19 source: 'network' |
19 }; | 20 }; |
20 | 21 |
21 // A providing extension which has not mounted a file system, and doesn't | 22 // A providing extension which has not mounted a file system, and doesn't |
22 // support multiple mounts. | 23 // support multiple mounts. |
23 var NOT_MOUNTED_SINGLE_PROVIDING_EXTENSION = { | 24 var NOT_MOUNTED_SINGLE_PROVIDING_EXTENSION = { |
24 extensionId: 'not-mounted-single-extension-id', | 25 extensionId: 'not-mounted-single-extension-id', |
25 name: 'not-mounted-single-extension-name', | 26 name: 'not-mounted-single-extension-name', |
26 configurable: false, | 27 configurable: false, |
| 28 watchable: true, |
27 multipleMounts: false, | 29 multipleMounts: false, |
28 source: 'network' | 30 source: 'network' |
29 }; | 31 }; |
30 // A providing extension which has not mounted a file system, and doesn't | 32 // A providing extension which has not mounted a file system, and doesn't |
31 // support multiple mounts. | 33 // support multiple mounts. |
32 var NOT_MOUNTED_SINGLE_PROVIDING_EXTENSION = { | 34 var NOT_MOUNTED_SINGLE_PROVIDING_EXTENSION = { |
33 extensionId: 'not-mounted-single-extension-id', | 35 extensionId: 'not-mounted-single-extension-id', |
34 name: 'not-mounted-single-extension-name', | 36 name: 'not-mounted-single-extension-name', |
35 configurable: false, | 37 configurable: false, |
| 38 watchable: true, |
36 multipleMounts: false, | 39 multipleMounts: false, |
37 source: 'network' | 40 source: 'network' |
38 }; | 41 }; |
39 | 42 |
40 // A providing extension which has mounted a file system and supports mounting | 43 // A providing extension which has mounted a file system and supports mounting |
41 // more. | 44 // more. |
42 var MOUNTED_MULTIPLE_PROVIDING_EXTENSION = { | 45 var MOUNTED_MULTIPLE_PROVIDING_EXTENSION = { |
43 extensionId: 'mounted-multiple-extension-id', | 46 extensionId: 'mounted-multiple-extension-id', |
44 name: 'mounted-multiple-extension-name', | 47 name: 'mounted-multiple-extension-name', |
45 configurable: true, | 48 configurable: true, |
| 49 watchable: false, |
46 multipleMounts: true, | 50 multipleMounts: true, |
47 source: 'network' | 51 source: 'network' |
48 }; | 52 }; |
49 | 53 |
50 // A providing extension which has not mounted a file system but it's of "file" | 54 // A providing extension which has not mounted a file system but it's of "file" |
51 // source. Such extensions do mounting via file handlers. | 55 // source. Such extensions do mounting via file handlers. |
52 var NOT_MOUNTED_FILE_PROVIDING_EXTENSION = { | 56 var NOT_MOUNTED_FILE_PROVIDING_EXTENSION = { |
53 extensionId: 'file-extension-id', | 57 extensionId: 'file-extension-id', |
54 name: 'file-extension-name', | 58 name: 'file-extension-name', |
55 configurable: false, | 59 configurable: false, |
| 60 watchable: true, |
56 multipleMounts: true, | 61 multipleMounts: true, |
57 source: 'file' | 62 source: 'file' |
58 }; | 63 }; |
59 | 64 |
60 // A providing extension which has not mounted a file system but it's of | 65 // A providing extension which has not mounted a file system but it's of |
61 // "device" source. Such extensions are not mounted by user, but automatically | 66 // "device" source. Such extensions are not mounted by user, but automatically |
62 // when the device is attached. | 67 // when the device is attached. |
63 var NOT_MOUNTED_DEVICE_PROVIDING_EXTENSION = { | 68 var NOT_MOUNTED_DEVICE_PROVIDING_EXTENSION = { |
64 extensionId: 'device-extension-id', | 69 extensionId: 'device-extension-id', |
65 name: 'device-extension-name', | 70 name: 'device-extension-name', |
66 configurable: false, | 71 configurable: false, |
| 72 watchable: true, |
67 multipleMounts: true, | 73 multipleMounts: true, |
68 source: 'device' | 74 source: 'device' |
69 }; | 75 }; |
70 | 76 |
71 var volumeManager = null; | 77 var volumeManager = null; |
72 | 78 |
73 function addProvidedVolume(volumeManager, extensionId, volumeId) { | 79 function addProvidedVolume(volumeManager, extensionId, volumeId) { |
74 var fileSystem = new MockFileSystem(volumeId, 'filesystem:' + volumeId); | 80 var fileSystem = new MockFileSystem(volumeId, 'filesystem:' + volumeId); |
75 fileSystem.entries['/'] = new MockDirectoryEntry(fileSystem, ''); | 81 fileSystem.entries['/'] = new MockDirectoryEntry(fileSystem, ''); |
76 | 82 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 var model = new ProvidersModel(volumeManager); | 121 var model = new ProvidersModel(volumeManager); |
116 reportPromise(model.getInstalledProviders().then( | 122 reportPromise(model.getInstalledProviders().then( |
117 function(extensions) { | 123 function(extensions) { |
118 assertEquals(5, extensions.length); | 124 assertEquals(5, extensions.length); |
119 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.extensionId, | 125 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.extensionId, |
120 extensions[0].extensionId); | 126 extensions[0].extensionId); |
121 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.name, | 127 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.name, |
122 extensions[0].extensionName); | 128 extensions[0].extensionName); |
123 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.configurable, | 129 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.configurable, |
124 extensions[0].configurable); | 130 extensions[0].configurable); |
| 131 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.watchable, |
| 132 extensions[0].watchable); |
125 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.multipleMounts, | 133 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.multipleMounts, |
126 extensions[0].multipleMounts); | 134 extensions[0].multipleMounts); |
127 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.source, | 135 assertEquals(MOUNTED_SINGLE_PROVIDING_EXTENSION.source, |
128 extensions[0].source); | 136 extensions[0].source); |
129 | 137 |
130 assertEquals(NOT_MOUNTED_SINGLE_PROVIDING_EXTENSION.extensionId, | 138 assertEquals(NOT_MOUNTED_SINGLE_PROVIDING_EXTENSION.extensionId, |
131 extensions[1].extensionId); | 139 extensions[1].extensionId); |
132 assertEquals(MOUNTED_MULTIPLE_PROVIDING_EXTENSION.extensionId, | 140 assertEquals(MOUNTED_MULTIPLE_PROVIDING_EXTENSION.extensionId, |
133 extensions[2].extensionId); | 141 extensions[2].extensionId); |
134 assertEquals(NOT_MOUNTED_FILE_PROVIDING_EXTENSION.extensionId, | 142 assertEquals(NOT_MOUNTED_FILE_PROVIDING_EXTENSION.extensionId, |
135 extensions[3].extensionId); | 143 extensions[3].extensionId); |
136 assertEquals(NOT_MOUNTED_DEVICE_PROVIDING_EXTENSION.extensionId, | 144 assertEquals(NOT_MOUNTED_DEVICE_PROVIDING_EXTENSION.extensionId, |
137 extensions[4].extensionId); | 145 extensions[4].extensionId); |
138 }), callback); | 146 }), callback); |
139 } | 147 } |
140 | 148 |
141 function testGetMountableProviders(callback) { | 149 function testGetMountableProviders(callback) { |
142 var model = new ProvidersModel(volumeManager); | 150 var model = new ProvidersModel(volumeManager); |
143 reportPromise(model.getMountableProviders().then( | 151 reportPromise(model.getMountableProviders().then( |
144 function(extensions) { | 152 function(extensions) { |
145 assertEquals(2, extensions.length); | 153 assertEquals(2, extensions.length); |
146 assertEquals(NOT_MOUNTED_SINGLE_PROVIDING_EXTENSION.extensionId, | 154 assertEquals(NOT_MOUNTED_SINGLE_PROVIDING_EXTENSION.extensionId, |
147 extensions[0].extensionId); | 155 extensions[0].extensionId); |
148 assertEquals(MOUNTED_MULTIPLE_PROVIDING_EXTENSION.extensionId, | 156 assertEquals(MOUNTED_MULTIPLE_PROVIDING_EXTENSION.extensionId, |
149 extensions[1].extensionId); | 157 extensions[1].extensionId); |
150 }), callback); | 158 }), callback); |
151 } | 159 } |
OLD | NEW |