| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| 'use strict'; |
| |
| /** |
| * Sets up the tests. Called once per all test cases. In case of a failure, |
| * the callback is not called. |
| * |
| * @param {function()} callback Success callback. |
| */ |
| function setUp(callback) { |
| test_util.mountFileSystem(callback); |
| } |
| |
| /** |
| * Runs all of the test cases, one by one. |
| */ |
| function runTests() { |
| chrome.test.runTests([ |
| // Verify that the configuration flag is propagated properly. |
| function configureConfigurable() { |
| var onConfigureRequested = chrome.test.callbackPass( |
| function(options, onSuccess, onError) { |
| chrome.fileSystemProvider.onConfigureRequested.removeListener( |
| onConfigureRequested); |
| onSuccess(); |
| }); |
| chrome.fileSystemProvider.onConfigureRequested.addListener( |
| onConfigureRequested); |
| |
| chrome.fileManagerPrivate.getProviders( |
| chrome.test.callbackPass(function(providers) { |
| providers = providers.filter(function(provider) { |
| // Filter out native providers. |
| return provider.providerId.length == 0 || |
| provider.providerId[0] != "@"; |
| }); |
| chrome.test.assertEq(providers.length, 1); |
| // For extension based providers, provider id is the same as |
| // extension id. |
| chrome.test.assertEq(chrome.runtime.id, providers[0].providerId); |
| chrome.test.assertEq( |
| chrome.runtime.getManifest().name, providers[0].name); |
| chrome.test.assertTrue(providers[0].configurable); |
| chrome.test.assertFalse(providers[0].multipleMounts); |
| chrome.test.assertEq('device', providers[0].source); |
| })); |
| |
| chrome.fileManagerPrivate.configureVolume(test_util.volumeId, |
| chrome.test.callbackPass(function() {})); |
| }, |
| |
| // Verify that chrome.fileManager.configureVolume is well wired |
| // to onConfigureRequested(). |
| function configureSuccess() { |
| var configured = false; |
| var onConfigureRequested = chrome.test.callbackPass( |
| function(options, onSuccess, onError) { |
| chrome.fileSystemProvider.onConfigureRequested.removeListener( |
| onConfigureRequested); |
| configured = true; |
| onSuccess(); |
| }); |
| chrome.fileSystemProvider.onConfigureRequested.addListener( |
| onConfigureRequested); |
| |
| chrome.fileManagerPrivate.configureVolume(test_util.volumeId, |
| chrome.test.callbackPass(function() { |
| chrome.test.assertTrue(configured); |
| })); |
| }, |
| |
| // Verify that a failure is propagated properly. |
| function configureFailure() { |
| var onConfigureRequested = chrome.test.callbackPass( |
| function(options, onSuccess, onError) { |
| chrome.fileSystemProvider.onConfigureRequested.removeListener( |
| onConfigureRequested); |
| onError('FAILED'); |
| }); |
| |
| chrome.fileSystemProvider.onConfigureRequested.addListener( |
| onConfigureRequested); |
| |
| chrome.fileManagerPrivate.configureVolume(test_util.volumeId, |
| chrome.test.callbackFail('Failed to complete configuration.')); |
| } |
| |
| ]); |
| } |
| |
| // Setup and run all of the test cases. |
| setUp(runTests); |