| Index: chrome/test/data/extensions/api_test/runtime/get_package_directory/app/window/test.js
|
| diff --git a/chrome/test/data/extensions/api_test/runtime/get_package_directory/app/window/test.js b/chrome/test/data/extensions/api_test/runtime/get_package_directory/app/window/test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b1c741e157a5779b4246b8a55322b8e800a1f5cf
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/runtime/get_package_directory/app/window/test.js
|
| @@ -0,0 +1,56 @@
|
| +// Copyright 2013 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.
|
| +
|
| +expectedDirectoryEntries = {
|
| + 'background.js': true,
|
| + 'manifest.json': true,
|
| + 'window': {
|
| + 'test.html': true,
|
| + 'test.js': true
|
| + }
|
| +};
|
| +
|
| +function checkTree(root, expectedEntries) {
|
| + var directoryReader = root.createReader();
|
| + var contents = [];
|
| + directoryReader.readEntries(chrome.test.callbackPass(
|
| + function readEntriesCallback(entries) {
|
| + if (entries.length == 0) {
|
| + chrome.test.assertEq(Object.keys(expectedEntries).length, 0);
|
| + } else {
|
| + for (var i = 0; i < entries.length; i++) {
|
| + // Ignore files or directories like .svn.
|
| + if (entries[i].name[0] == '.')
|
| + continue;
|
| + chrome.test.assertTrue(expectedEntries[entries[i].name] != null);
|
| + if (entries[i].isDirectory) {
|
| + chrome.test.assertEq(typeof expectedEntries[entries[i].name],
|
| + 'object');
|
| + checkTree(entries[i], expectedEntries[entries[i].name]);
|
| + } else {
|
| + chrome.test.assertEq(expectedEntries[entries[i].name], true);
|
| + chrome.fileSystem.isWritableEntry(
|
| + entries[i], chrome.test.callbackPass(function(isWritable) {
|
| + chrome.test.assertFalse(isWritable);
|
| + }));
|
| + chrome.fileSystem.getWritableEntry(
|
| + entries[i], chrome.test.callbackFail(
|
| + 'Cannot write to file in a restricted location'));
|
| + }
|
| + delete expectedEntries[entries[i].name];
|
| + }
|
| + directoryReader.readEntries(chrome.test.callbackPass(
|
| + readEntriesCallback));
|
| + }
|
| + }));
|
| +}
|
| +
|
| +chrome.test.runTests([
|
| + function getPackageDirectoryEntry() {
|
| + chrome.runtime.getPackageDirectoryEntry(chrome.test.callbackPass(
|
| + function(directoryEntry) {
|
| + checkTree(directoryEntry, expectedDirectoryEntries);
|
| + }));
|
| + }
|
| +]);
|
|
|