summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-addon-folder.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-addon-folder.js')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-addon-folder.js90
1 files changed, 90 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-addon-folder.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-addon-folder.js
new file mode 100644
index 0000000..4b98c42
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-addon-folder.js
@@ -0,0 +1,90 @@
+'use strict';
+
+const JETPACK_DIR_BASENAME = "jetpack";
+
+const FOLDER = require('pathfinder/addon/folder');
+
+const { Loader } = require('sdk/test/loader');
+const { Cc, Ci } = require('chrome');
+const file = require('sdk/io/file');
+const jpSelf = require('sdk/self');
+
+let storeFile = Cc['@mozilla.org/file/directory_service;1']
+ .getService(Ci.nsIProperties)
+ .get('ProfD', Ci.nsIFile);
+storeFile.append(JETPACK_DIR_BASENAME);
+storeFile.append(jpSelf.id);
+storeFile.append('addon-folder');
+
+const ADDON_FOLDER_PATH = storeFile.path;
+
+exports.testFolderCreated = function(assert) {
+ let loader = Loader(module);
+ assert.ok(file.exists(ADDON_FOLDER_PATH), ADDON_FOLDER_PATH + ' was created');
+ FOLDER.destroy();
+ assert.ok(!file.exists(ADDON_FOLDER_PATH), ADDON_FOLDER_PATH + ' was destroyed');
+ loader.require('pathfinder/addon/folder');
+ assert.ok(file.exists(ADDON_FOLDER_PATH), ADDON_FOLDER_PATH + ' was created');
+ loader.unload();
+ assert.ok(file.exists(ADDON_FOLDER_PATH), ADDON_FOLDER_PATH + 'exists after unload');
+}
+
+exports.testFileLifecycle = function(assert, done) {
+ let filename = 'test.json';
+ let fileStream = FOLDER.write(filename);
+ try {
+ fileStream.writeAsync('{}', function(err) {
+ assert.equal(FOLDER.exists(filename), true, 'the file was created');
+
+ if (err)
+ assert.fail(err);
+ else
+ assert.equal(FOLDER.read(filename), '{}', 'the file was written correctly');
+
+ let entries = FOLDER.list();
+ assert.ok(entries.length > 0, 'there is more than one entry');
+ for each (let entry in entries) {
+ assert.equal(entry, filename, filename + ' is the only entry listed');
+ }
+
+ let testFile = Cc['@mozilla.org/file/directory_service;1']
+ .getService(Ci.nsIProperties)
+ .get('ProfD', Ci.nsIFile);
+ testFile.append(JETPACK_DIR_BASENAME);
+ testFile.append(jpSelf.id);
+ testFile.append('addon-folder');
+ testFile.append(filename);
+
+ assert.ok(testFile.exists(), 'the test file does exist.')
+
+ FOLDER.remove(filename);
+
+ assert.equal(FOLDER.exists(filename), false, 'the file was removed');
+
+ done();
+ });
+ }
+ catch(e) {
+ assert.fail(e);
+ fileStream.close();
+ done();
+ }
+}
+
+exports.testBackPath = function(assert, done) {
+ let filename = '../../test.json';
+ let fileStream = { close: function(){} };
+ try {
+ fileStream = FOLDER.write(filename);
+ assert.fail(filename + ' should not be useable');
+ }
+ catch(e) {
+ assert.pass(e);
+ }
+
+ fileStream.close();
+ done();
+}
+
+
+require('sdk/test').run(exports);