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.
5 function assertNotNullOrUndefined(value, message) {
6 chrome.test.assertTrue(value !== null, message);
7 chrome.test.assertTrue(value !== undefined, message);
10 function testWriteFromFile() {
13 var currentStage = "none";
14 var currentProgress = -1;
17 function chooseEntryCallback(entry) {
20 chrome.imageWriterPrivate.listRemovableStorageDevices(
24 function listDevicesCallback(deviceList) {
25 chrome.test.assertTrue(deviceList.length >= 1);
26 storageDevice = deviceList[0];
31 function startWrite() {
32 assertNotNullOrUndefined(fileEntry, "FileEntry should be defined.");
33 assertNotNullOrUndefined(
34 storageDevice.storageUnitId, "Storage Unit should be defined.");
36 chrome.imageWriterPrivate.writeFromFile(
37 storageDevice.storageUnitId,
42 function startWriteCallback() {
46 function writeProgressCallback(progressInfo) {
47 currentProgress = progressInfo.percentComplete;
48 currentStage = progressInfo.stage;
51 function writeCompleteCallback() {
52 chrome.test.assertTrue(started, "Complete triggered before being started.");
53 chrome.test.assertEq(100, currentProgress);
54 chrome.test.succeed("Write completed successfully.");
57 function writeErrorCallback(message) {
58 chrome.test.fail("An error occurred during writing.");
61 chrome.imageWriterPrivate.onWriteProgress.
62 addListener(writeProgressCallback);
63 chrome.imageWriterPrivate.onWriteComplete.
64 addListener(writeCompleteCallback);
65 chrome.imageWriterPrivate.onWriteError.
66 addListener(writeErrorCallback);
68 chrome.fileSystem.chooseEntry(chooseEntryCallback);