Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / api_test / image_writer_private / write_from_file / test.js
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 function assertNotNullOrUndefined(value, message) {
6   chrome.test.assertTrue(value !== null, message);
7   chrome.test.assertTrue(value !== undefined, message);
8 }
9
10 function testWriteFromFile() {
11   var fileEntry;
12   var storageDevice;
13   var currentStage = "none";
14   var currentProgress = -1;
15   var started = true;
16
17   function chooseEntryCallback(entry) {
18     fileEntry = entry;
19
20     chrome.imageWriterPrivate.listRemovableStorageDevices(
21         listDevicesCallback);
22   }
23
24   function listDevicesCallback(deviceList) {
25     chrome.test.assertTrue(deviceList.length >= 1);
26     storageDevice = deviceList[0];
27
28     startWrite();
29   }
30
31   function startWrite() {
32     assertNotNullOrUndefined(fileEntry, "FileEntry should be defined.");
33     assertNotNullOrUndefined(
34         storageDevice.storageUnitId, "Storage Unit should be defined.");
35
36     chrome.imageWriterPrivate.writeFromFile(
37         storageDevice.storageUnitId,
38         fileEntry,
39         startWriteCallback);
40   }
41
42   function startWriteCallback() {
43     started = true;
44   }
45
46   function writeProgressCallback(progressInfo) {
47     currentProgress = progressInfo.percentComplete;
48     currentStage = progressInfo.stage;
49   }
50
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.");
55   }
56
57   function writeErrorCallback(message) {
58     chrome.test.fail("An error occurred during writing.");
59   }
60
61   chrome.imageWriterPrivate.onWriteProgress.
62       addListener(writeProgressCallback);
63   chrome.imageWriterPrivate.onWriteComplete.
64       addListener(writeCompleteCallback);
65   chrome.imageWriterPrivate.onWriteError.
66       addListener(writeErrorCallback);
67
68   chrome.fileSystem.chooseEntry(chooseEntryCallback);
69 }
70
71 testWriteFromFile();