1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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);
|