Merge pull request #378 from humphd/karma
Automate tests using Headless Chrome + Karma runner
This commit is contained in:
commit
de45918cbc
15
.travis.yml
15
.travis.yml
|
@ -1,9 +1,16 @@
|
|||
sudo: true
|
||||
|
||||
language: node_js
|
||||
node_js:
|
||||
- "8.11.3"
|
||||
before_install: npm install -g grunt-cli
|
||||
- "lts/*"
|
||||
|
||||
# Setup headless Chrome support
|
||||
# https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-the-Chrome-addon-in-the-headless-mode
|
||||
addons:
|
||||
chrome: stable
|
||||
before_install:
|
||||
- google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost &
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
irc: "irc.mozilla.org#filer"
|
||||
env:
|
||||
- "FILER_UPSTREAM_URI=\"default\" FILER_UPSTREAM_BRANCH=\"default\" FILER_UPSTREAM_REMOTE_NAME=\"default\""
|
||||
|
|
|
@ -17,10 +17,14 @@ npm install
|
|||
|
||||
You can now run the following `npm` scripts:
|
||||
|
||||
* `npm test` will build Filer and the tests in `tests/` and start a web server at http://localhost:1234 where you can run the tests.
|
||||
* `npm lint` will run `eslint` on the `src` and `tests` directories.
|
||||
* `npm run lint` or `npm run eslint` will run `eslint` on the `src` and `tests` directories.
|
||||
* `npm run lint:fix` or `npm run eslint:fix` will run `eslint` with `--fix` on the `src` and `tests` directories, automatically fixing minor issues.
|
||||
* `npm run test:manual` will build the tests, and allow you to run them in a browser manually by loading http://localhost:1234.
|
||||
* `npm run karma-mocha` will build Filer and the tests, and finally run the tests in a headless Chrome browser.
|
||||
* `npm test` will run `lint` followed by `karma-chrome`, and is what we do on Travis.
|
||||
* `npm run build` will bundle two versions of Filer: `dist/filer.js` (unminified) and `dist/filer.min.js` (minified) as well as source map files.
|
||||
|
||||
|
||||
Once you've done some hacking and you'd like to have your work merged, you'll need to
|
||||
make a pull request. If you're patch includes code, make sure to check that all the
|
||||
unit tests pass, including any new tests you wrote. Finally, make sure you add yourself
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
module.exports = function(config) {
|
||||
config.set({
|
||||
browsers: ['ChromeHeadless'],
|
||||
singleRun: true,
|
||||
basePath: '',
|
||||
files: ['tests/dist/index.js'],
|
||||
|
||||
frameworks: ['mocha', 'chai'],
|
||||
reporters: ['mocha'],
|
||||
client: {
|
||||
mocha: {
|
||||
ui: 'bdd',
|
||||
timeout: 5000,
|
||||
slow: 250
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
File diff suppressed because it is too large
Load Diff
16
package.json
16
package.json
|
@ -17,10 +17,17 @@
|
|||
"bugs": "https://github.com/filerjs/filer/issues",
|
||||
"license": "BSD-2-Clause",
|
||||
"scripts": {
|
||||
"eslint": "npm run lint",
|
||||
"eslint:fix": "npm run lint:fix",
|
||||
"lint": "eslint src tests",
|
||||
"test": "parcel tests/index.html --out-dir tests/dist",
|
||||
"lint:fix": "eslint --fix src tests",
|
||||
"test:manual": "parcel tests/index.html --out-dir tests/dist",
|
||||
"pretest": "npm run lint",
|
||||
"test": "npm run karma-mocha",
|
||||
"prebuild": "parcel build --global Filer src/index.js --no-minify --out-file filer.js",
|
||||
"build": "parcel build --global Filer src/index.js --out-file filer.min.js --detailed-report"
|
||||
"build": "parcel build --global Filer src/index.js --out-file filer.min.js --detailed-report",
|
||||
"prekarma-mocha": "parcel build tests/index.js --no-source-maps --out-dir tests/dist",
|
||||
"karma-mocha": "karma start karma.conf.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -33,6 +40,11 @@
|
|||
"devDependencies": {
|
||||
"chai": "^4.1.2",
|
||||
"eslint": "^5.0.1",
|
||||
"karma": "^2.0.4",
|
||||
"karma-chai": "^0.1.0",
|
||||
"karma-chrome-launcher": "^2.2.0",
|
||||
"karma-mocha": "^1.3.0",
|
||||
"karma-mocha-reporter": "^2.2.5",
|
||||
"mocha": "^5.2.0",
|
||||
"parcel-bundler": "^1.9.6"
|
||||
},
|
||||
|
|
|
@ -7,7 +7,7 @@ function FilerBuffer (subject, encoding, nonZero) {
|
|||
}
|
||||
|
||||
return new Buffer(subject, encoding, nonZero);
|
||||
};
|
||||
}
|
||||
|
||||
// Inherit prototype from Buffer
|
||||
FilerBuffer.prototype = Object.create(Buffer.prototype);
|
||||
|
|
|
@ -15,9 +15,9 @@ module.exports = {
|
|||
IDB_RO: 'readonly',
|
||||
IDB_RW: 'readwrite',
|
||||
|
||||
WSQL_VERSION: "1",
|
||||
WSQL_VERSION: '1',
|
||||
WSQL_SIZE: 5 * 1024 * 1024,
|
||||
WSQL_DESC: "FileSystem Storage",
|
||||
WSQL_DESC: 'FileSystem Storage',
|
||||
|
||||
NODE_TYPE_FILE: 'FILE',
|
||||
NODE_TYPE_DIRECTORY: 'DIRECTORY',
|
||||
|
|
|
@ -13,8 +13,6 @@ var NODE_TYPE_DIRECTORY = Constants.NODE_TYPE_DIRECTORY;
|
|||
var NODE_TYPE_SYMBOLIC_LINK = Constants.NODE_TYPE_SYMBOLIC_LINK;
|
||||
var NODE_TYPE_META = Constants.NODE_TYPE_META;
|
||||
|
||||
var DEFAULT_FILE_PERMISSIONS = Constants.DEFAULT_FILE_PERMISSIONS;
|
||||
var DEFAULT_DIR_PERMISSIONS = Constants.DEFAULT_DIR_PERMISSIONS;
|
||||
var FULL_READ_WRITE_EXEC_PERMISSIONS = Constants.FULL_READ_WRITE_EXEC_PERMISSIONS;
|
||||
|
||||
var ROOT_DIRECTORY_NAME = Constants.ROOT_DIRECTORY_NAME;
|
||||
|
@ -25,7 +23,6 @@ var O_READ = Constants.O_READ;
|
|||
var O_WRITE = Constants.O_WRITE;
|
||||
var O_CREATE = Constants.O_CREATE;
|
||||
var O_EXCLUSIVE = Constants.O_EXCLUSIVE;
|
||||
var O_TRUNCATE = Constants.O_TRUNCATE;
|
||||
var O_APPEND = Constants.O_APPEND;
|
||||
var O_FLAGS = Constants.O_FLAGS;
|
||||
|
||||
|
@ -843,7 +840,6 @@ function read_data(context, ofd, buffer, offset, length, position, callback) {
|
|||
|
||||
function stat_file(context, path, callback) {
|
||||
path = normalize(path);
|
||||
var name = basename(path);
|
||||
find_node(context, path, callback);
|
||||
}
|
||||
|
||||
|
@ -923,7 +919,7 @@ function link_node(context, oldpath, newpath, callback) {
|
|||
}
|
||||
}
|
||||
|
||||
function read_file_node(error, result) {
|
||||
function read_file_node(error) {
|
||||
if(error) {
|
||||
callback(error);
|
||||
} else {
|
||||
|
@ -997,8 +993,12 @@ function unlink_node(context, path, callback) {
|
|||
} else {
|
||||
delete directoryData[name];
|
||||
context.putObject(directoryNode.data, directoryData, function(error) {
|
||||
var now = Date.now();
|
||||
update_node_times(context, parentPath, directoryNode, { mtime: now, ctime: now }, callback);
|
||||
if(error) {
|
||||
callback(error);
|
||||
} else {
|
||||
var now = Date.now();
|
||||
update_node_times(context, parentPath, directoryNode, { mtime: now, ctime: now }, callback);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1021,7 +1021,11 @@ function unlink_node(context, path, callback) {
|
|||
context.delete(fileNode.id, delete_file_data);
|
||||
} else {
|
||||
context.putObject(fileNode.id, fileNode, function(error) {
|
||||
update_node_times(context, path, fileNode, { ctime: Date.now() }, update_directory_data);
|
||||
if(error) {
|
||||
callback(error);
|
||||
} else {
|
||||
update_node_times(context, path, fileNode, { ctime: Date.now() }, update_directory_data);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1064,7 +1068,6 @@ function unlink_node(context, path, callback) {
|
|||
|
||||
function read_directory(context, path, callback) {
|
||||
path = normalize(path);
|
||||
var name = basename(path);
|
||||
|
||||
var directoryNode;
|
||||
var directoryData;
|
||||
|
@ -1572,9 +1575,9 @@ function validate_flags(flags) {
|
|||
function validate_file_options(options, enc, fileMode){
|
||||
if(!options) {
|
||||
options = { encoding: enc, flag: fileMode };
|
||||
} else if(typeof options === "function") {
|
||||
} else if(typeof options === 'function') {
|
||||
options = { encoding: enc, flag: fileMode };
|
||||
} else if(typeof options === "string") {
|
||||
} else if(typeof options === 'string') {
|
||||
options = { encoding: options, flag: fileMode };
|
||||
}
|
||||
return options;
|
||||
|
@ -1784,7 +1787,7 @@ function readFile(fs, context, path, options, callback) {
|
|||
var buffer = new Buffer(size);
|
||||
buffer.fill(0);
|
||||
|
||||
read_data(context, ofd, buffer, 0, size, 0, function(err, nbytes) {
|
||||
read_data(context, ofd, buffer, 0, size, 0, function(err) {
|
||||
cleanup();
|
||||
|
||||
if(err) {
|
||||
|
@ -1832,10 +1835,10 @@ function writeFile(fs, context, path, data, options, callback) {
|
|||
}
|
||||
|
||||
data = data || '';
|
||||
if(typeof data === "number") {
|
||||
if(typeof data === 'number') {
|
||||
data = '' + data;
|
||||
}
|
||||
if(typeof data === "string" && options.encoding === 'utf8') {
|
||||
if(typeof data === 'string' && options.encoding === 'utf8') {
|
||||
data = Encoding.encode(data);
|
||||
}
|
||||
|
||||
|
@ -1846,7 +1849,7 @@ function writeFile(fs, context, path, data, options, callback) {
|
|||
var ofd = new OpenFileDescription(path, fileNode.id, flags, 0);
|
||||
var fd = fs.allocDescriptor(ofd);
|
||||
|
||||
replace_data(context, ofd, data, 0, data.length, function(err, nbytes) {
|
||||
replace_data(context, ofd, data, 0, data.length, function(err) {
|
||||
fs.releaseDescriptor(fd);
|
||||
|
||||
if(err) {
|
||||
|
@ -1869,10 +1872,10 @@ function appendFile(fs, context, path, data, options, callback) {
|
|||
}
|
||||
|
||||
data = data || '';
|
||||
if(typeof data === "number") {
|
||||
if(typeof data === 'number') {
|
||||
data = '' + data;
|
||||
}
|
||||
if(typeof data === "string" && options.encoding === 'utf8') {
|
||||
if(typeof data === 'string' && options.encoding === 'utf8') {
|
||||
data = Encoding.encode(data);
|
||||
}
|
||||
|
||||
|
@ -1883,7 +1886,7 @@ function appendFile(fs, context, path, data, options, callback) {
|
|||
var ofd = new OpenFileDescription(path, fileNode.id, flags, fileNode.size);
|
||||
var fd = fs.allocDescriptor(ofd);
|
||||
|
||||
write_data(context, ofd, data, 0, data.length, ofd.position, function(err, nbytes) {
|
||||
write_data(context, ofd, data, 0, data.length, ofd.position, function(err) {
|
||||
fs.releaseDescriptor(fd);
|
||||
|
||||
if(err) {
|
||||
|
@ -1895,7 +1898,7 @@ function appendFile(fs, context, path, data, options, callback) {
|
|||
}
|
||||
|
||||
function exists(fs, context, path, callback) {
|
||||
function cb(err, stats) {
|
||||
function cb(err) {
|
||||
callback(err ? false : true);
|
||||
}
|
||||
stat(fs, context, path, cb);
|
||||
|
@ -1903,7 +1906,6 @@ function exists(fs, context, path, callback) {
|
|||
|
||||
// Based on https://github.com/nodejs/node/blob/c700cc42da9cf73af9fec2098520a6c0a631d901/lib/internal/validators.js#L21
|
||||
var octalReg = /^[0-7]+$/;
|
||||
var modeDesc = 'must be a 32-bit unsigned integer or an octal string';
|
||||
function isUint32(value) {
|
||||
return value === (value >>> 0);
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ var impl = require('./implementation.js');
|
|||
|
||||
// node.js supports a calling pattern that leaves off a callback.
|
||||
function maybeCallback(callback) {
|
||||
if(typeof callback === "function") {
|
||||
if(typeof callback === 'function') {
|
||||
return callback;
|
||||
}
|
||||
return function(err) {
|
||||
|
@ -42,6 +42,7 @@ function maybeCallback(callback) {
|
|||
// Default callback that logs an error if passed in
|
||||
function defaultCallback(err) {
|
||||
if(err) {
|
||||
/* eslint no-console: 0 */
|
||||
console.error('Filer error: ', err);
|
||||
}
|
||||
}
|
||||
|
@ -104,7 +105,7 @@ function FileSystem(options, callback) {
|
|||
// descriptor management functions
|
||||
var openFiles = {};
|
||||
var nextDescriptor = FIRST_DESCRIPTOR;
|
||||
Object.defineProperty(this, "openFiles", {
|
||||
Object.defineProperty(this, 'openFiles', {
|
||||
get: function() { return openFiles; }
|
||||
});
|
||||
this.allocDescriptor = function(openFileDescription) {
|
||||
|
|
19
src/node.js
19
src/node.js
|
@ -1,9 +1,6 @@
|
|||
var NODE_TYPE_FILE = require('./constants.js').NODE_TYPE_FILE;
|
||||
var NODE_TYPE_DIRECTORY = require('./constants.js').NODE_TYPE_DIRECTORY;
|
||||
var NODE_TYPE_SYMBOLIC_LINK = require('./constants.js').NODE_TYPE_SYMBOLIC_LINK;
|
||||
var NODE_TYPE_META = require('./constants.js').NODE_TYPE_META;
|
||||
|
||||
var ROOT_DIRECTORY_NAME = require('./constants.js').ROOT_DIRECTORY_NAME;
|
||||
|
||||
var S_IFREG = require('./constants.js').S_IFREG;
|
||||
var S_IFDIR = require('./constants.js').S_IFDIR;
|
||||
|
@ -14,15 +11,15 @@ var DEFAULT_DIR_PERMISSIONS = require('./constants.js').DEFAULT_DIR_PERMISSIONS;
|
|||
|
||||
function getMode(type, mode) {
|
||||
switch(type) {
|
||||
case NODE_TYPE_DIRECTORY:
|
||||
return (mode || DEFAULT_DIR_PERMISSIONS) | S_IFDIR;
|
||||
case NODE_TYPE_SYMBOLIC_LINK:
|
||||
return (mode || DEFAULT_FILE_PERMISSIONS) | S_IFLNK;
|
||||
case NODE_TYPE_DIRECTORY:
|
||||
return (mode || DEFAULT_DIR_PERMISSIONS) | S_IFDIR;
|
||||
case NODE_TYPE_SYMBOLIC_LINK:
|
||||
return (mode || DEFAULT_FILE_PERMISSIONS) | S_IFLNK;
|
||||
/* jshint -W086 */
|
||||
case NODE_TYPE_FILE:
|
||||
// falls through
|
||||
default:
|
||||
return (mode || DEFAULT_FILE_PERMISSIONS) | S_IFREG;
|
||||
case NODE_TYPE_FILE:
|
||||
// falls through
|
||||
default:
|
||||
return (mode || DEFAULT_FILE_PERMISSIONS) | S_IFREG;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
17
src/path.js
17
src/path.js
|
@ -54,7 +54,7 @@ function normalizeArray(parts, allowAboveRoot) {
|
|||
// Split a filename into [root, dir, basename, ext], unix version
|
||||
// 'root' is just a slash, or nothing.
|
||||
var splitPathRe =
|
||||
/^(\/?)([\s\S]+\/(?!$)|\/)?((?:\.{1,2}$|[\s\S]+?)?(\.[^.\/]*)?)$/;
|
||||
/^(\/?)([\s\S]+\/(?!$)|\/)?((?:\.{1,2}$|[\s\S]+?)?(\.[^./]*)?)$/;
|
||||
var splitPath = function(filename) {
|
||||
var result = splitPathRe.exec(filename);
|
||||
return [result[1] || '', result[2] || '', result[3] || '', result[4] || ''];
|
||||
|
@ -63,7 +63,7 @@ var splitPath = function(filename) {
|
|||
// path.resolve([from ...], to)
|
||||
function resolve() {
|
||||
var resolvedPath = '',
|
||||
resolvedAbsolute = false;
|
||||
resolvedAbsolute = false;
|
||||
|
||||
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
||||
// XXXfiler: we don't have process.cwd() so we use '/' as a fallback
|
||||
|
@ -91,8 +91,7 @@ function resolve() {
|
|||
|
||||
// path.normalize(path)
|
||||
function normalize(path) {
|
||||
var isAbsolute = path.charAt(0) === '/',
|
||||
trailingSlash = path.substr(-1) === '/';
|
||||
var isAbsolute = path.charAt(0) === '/';
|
||||
|
||||
// Normalize the path
|
||||
path = normalizeArray(path.split('/').filter(function(p) {
|
||||
|
@ -113,7 +112,7 @@ function normalize(path) {
|
|||
|
||||
function join() {
|
||||
var paths = Array.prototype.slice.call(arguments, 0);
|
||||
return normalize(paths.filter(function(p, index) {
|
||||
return normalize(paths.filter(function(p) {
|
||||
return p && typeof p === 'string';
|
||||
}).join('/'));
|
||||
}
|
||||
|
@ -151,7 +150,7 @@ function relative(from, to) {
|
|||
}
|
||||
|
||||
var outputParts = [];
|
||||
for (var i = samePartsLength; i < fromParts.length; i++) {
|
||||
for (i = samePartsLength; i < fromParts.length; i++) {
|
||||
outputParts.push('..');
|
||||
}
|
||||
|
||||
|
@ -162,8 +161,8 @@ function relative(from, to) {
|
|||
|
||||
function dirname(path) {
|
||||
var result = splitPath(path),
|
||||
root = result[0],
|
||||
dir = result[1];
|
||||
root = result[0],
|
||||
dir = result[1];
|
||||
|
||||
if (!root && !dir) {
|
||||
// No dirname whatsoever
|
||||
|
@ -185,7 +184,7 @@ function basename(path, ext) {
|
|||
f = f.substr(0, f.length - ext.length);
|
||||
}
|
||||
// XXXfiler: node.js just does `return f`
|
||||
return f === "" ? "/" : f;
|
||||
return f === '' ? '/' : f;
|
||||
}
|
||||
|
||||
function extname(path) {
|
||||
|
|
|
@ -25,7 +25,7 @@ module.exports = {
|
|||
}
|
||||
|
||||
function NotSupported() {
|
||||
throw "[Filer Error] Your browser doesn't support IndexedDB or WebSQL.";
|
||||
throw '[Filer Error] Your browser doesn\'t support IndexedDB or WebSQL.';
|
||||
}
|
||||
NotSupported.isSupported = function() {
|
||||
return false;
|
||||
|
|
|
@ -2,7 +2,6 @@ var FILE_SYSTEM_NAME = require('../constants.js').FILE_SYSTEM_NAME;
|
|||
var FILE_STORE_NAME = require('../constants.js').FILE_STORE_NAME;
|
||||
var IDB_RW = require('../constants.js').IDB_RW;
|
||||
var IDB_RO = require('../constants.js').IDB_RO;
|
||||
var Errors = require('../errors.js');
|
||||
var FilerBuffer = require('../buffer.js');
|
||||
|
||||
var indexedDB = global.indexedDB ||
|
||||
|
|
|
@ -24,7 +24,7 @@ function MemoryContext(db, readOnly) {
|
|||
MemoryContext.prototype.clear = function(callback) {
|
||||
if(this.readOnly) {
|
||||
asyncCallback(function() {
|
||||
callback("[MemoryContext] Error: write operation on read only context");
|
||||
callback('[MemoryContext] Error: write operation on read only context');
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ MemoryContext.prototype.putBuffer =
|
|||
function(key, value, callback) {
|
||||
if(this.readOnly) {
|
||||
asyncCallback(function() {
|
||||
callback("[MemoryContext] Error: write operation on read only context");
|
||||
callback('[MemoryContext] Error: write operation on read only context');
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ function(key, value, callback) {
|
|||
MemoryContext.prototype.delete = function(key, callback) {
|
||||
if(this.readOnly) {
|
||||
asyncCallback(function() {
|
||||
callback("[MemoryContext] Error: write operation on read only context");
|
||||
callback('[MemoryContext] Error: write operation on read only context');
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -26,12 +26,12 @@ WebSQLContext.prototype.clear = function(callback) {
|
|||
function onError(transaction, error) {
|
||||
callback(error);
|
||||
}
|
||||
function onSuccess(transaction, result) {
|
||||
function onSuccess() {
|
||||
callback(null);
|
||||
}
|
||||
this.getTransaction(function(transaction) {
|
||||
transaction.executeSql("DELETE FROM " + FILE_STORE_NAME + ";",
|
||||
[], onSuccess, onError);
|
||||
transaction.executeSql('DELETE FROM ' + FILE_STORE_NAME + ';',
|
||||
[], onSuccess, onError);
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -45,8 +45,8 @@ function _get(getTransaction, key, callback) {
|
|||
callback(error);
|
||||
}
|
||||
getTransaction(function(transaction) {
|
||||
transaction.executeSql("SELECT data FROM " + FILE_STORE_NAME + " WHERE id = ? LIMIT 1;",
|
||||
[key], onSuccess, onError);
|
||||
transaction.executeSql('SELECT data FROM ' + FILE_STORE_NAME + ' WHERE id = ? LIMIT 1;',
|
||||
[key], onSuccess, onError);
|
||||
});
|
||||
}
|
||||
WebSQLContext.prototype.getObject = function(key, callback) {
|
||||
|
@ -83,15 +83,15 @@ WebSQLContext.prototype.getBuffer = function(key, callback) {
|
|||
};
|
||||
|
||||
function _put(getTransaction, key, value, callback) {
|
||||
function onSuccess(transaction, result) {
|
||||
function onSuccess() {
|
||||
callback(null);
|
||||
}
|
||||
function onError(transaction, error) {
|
||||
callback(error);
|
||||
}
|
||||
getTransaction(function(transaction) {
|
||||
transaction.executeSql("INSERT OR REPLACE INTO " + FILE_STORE_NAME + " (id, data) VALUES (?, ?);",
|
||||
[key, value], onSuccess, onError);
|
||||
transaction.executeSql('INSERT OR REPLACE INTO ' + FILE_STORE_NAME + ' (id, data) VALUES (?, ?);',
|
||||
[key, value], onSuccess, onError);
|
||||
});
|
||||
}
|
||||
WebSQLContext.prototype.putObject = function(key, value, callback) {
|
||||
|
@ -104,15 +104,15 @@ WebSQLContext.prototype.putBuffer = function(key, uint8BackedBuffer, callback) {
|
|||
};
|
||||
|
||||
WebSQLContext.prototype.delete = function(key, callback) {
|
||||
function onSuccess(transaction, result) {
|
||||
function onSuccess() {
|
||||
callback(null);
|
||||
}
|
||||
function onError(transaction, error) {
|
||||
callback(error);
|
||||
}
|
||||
this.getTransaction(function(transaction) {
|
||||
transaction.executeSql("DELETE FROM " + FILE_STORE_NAME + " WHERE id = ?;",
|
||||
[key], onSuccess, onError);
|
||||
transaction.executeSql('DELETE FROM ' + FILE_STORE_NAME + ' WHERE id = ?;',
|
||||
[key], onSuccess, onError);
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -135,7 +135,7 @@ WebSQL.prototype.open = function(callback) {
|
|||
|
||||
var db = global.openDatabase(that.name, WSQL_VERSION, WSQL_DESC, WSQL_SIZE);
|
||||
if(!db) {
|
||||
callback("[WebSQL] Unable to open database.");
|
||||
callback('[WebSQL] Unable to open database.');
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -145,7 +145,7 @@ WebSQL.prototype.open = function(callback) {
|
|||
}
|
||||
callback(error);
|
||||
}
|
||||
function onSuccess(transaction, result) {
|
||||
function onSuccess() {
|
||||
that.db = db;
|
||||
callback();
|
||||
}
|
||||
|
@ -153,12 +153,12 @@ WebSQL.prototype.open = function(callback) {
|
|||
// Create the table and index we'll need to store the fs data.
|
||||
db.transaction(function(transaction) {
|
||||
function createIndex(transaction) {
|
||||
transaction.executeSql("CREATE INDEX IF NOT EXISTS idx_" + FILE_STORE_NAME + "_id" +
|
||||
" on " + FILE_STORE_NAME + " (id);",
|
||||
[], onSuccess, onError);
|
||||
transaction.executeSql('CREATE INDEX IF NOT EXISTS idx_' + FILE_STORE_NAME + '_id' +
|
||||
' on ' + FILE_STORE_NAME + ' (id);',
|
||||
[], onSuccess, onError);
|
||||
}
|
||||
transaction.executeSql("CREATE TABLE IF NOT EXISTS " + FILE_STORE_NAME + " (id unique, data TEXT);",
|
||||
[], createIndex, onError);
|
||||
transaction.executeSql('CREATE TABLE IF NOT EXISTS ' + FILE_STORE_NAME + ' (id unique, data TEXT);',
|
||||
[], createIndex, onError);
|
||||
});
|
||||
};
|
||||
WebSQL.prototype.getReadOnlyContext = function() {
|
||||
|
|
|
@ -2,7 +2,6 @@ var Path = require('../path.js');
|
|||
var Errors = require('../errors.js');
|
||||
var Environment = require('./environment.js');
|
||||
var async = require('../../lib/async.js');
|
||||
var Encoding = require('../encoding.js');
|
||||
var minimatch = require('minimatch');
|
||||
|
||||
function Shell(fs, options) {
|
||||
|
@ -87,7 +86,7 @@ Shell.prototype.exec = function(path, args, callback) {
|
|||
callback = callback || function(){};
|
||||
path = Path.resolve(sh.pwd(), path);
|
||||
|
||||
fs.readFile(path, "utf8", function(error, data) {
|
||||
fs.readFile(path, 'utf8', function(error, data) {
|
||||
if(error) {
|
||||
callback(error);
|
||||
return;
|
||||
|
@ -131,7 +130,7 @@ Shell.prototype.touch = function(path, options, callback) {
|
|||
fs.utimes(path, atime, mtime, callback);
|
||||
}
|
||||
|
||||
fs.stat(path, function(error, stats) {
|
||||
fs.stat(path, function(error) {
|
||||
if(error) {
|
||||
if(options.updateOnly === true) {
|
||||
callback();
|
||||
|
@ -348,7 +347,7 @@ Shell.prototype.tempDir = function(callback) {
|
|||
|
||||
// Try and create it, and it will either work or fail
|
||||
// but either way it's now there.
|
||||
fs.mkdir(tmp, function(err) {
|
||||
fs.mkdir(tmp, function() {
|
||||
callback(null, tmp);
|
||||
});
|
||||
};
|
||||
|
@ -432,7 +431,7 @@ Shell.prototype.mkdirp = function(path, callback) {
|
|||
* `find` returns a flat array of absolute paths for all matching/found
|
||||
* paths as the final argument to the callback.
|
||||
*/
|
||||
Shell.prototype.find = function(path, options, callback) {
|
||||
Shell.prototype.find = function(path, options, callback) {
|
||||
var sh = this;
|
||||
var fs = sh.fs;
|
||||
if(typeof options === 'function') {
|
||||
|
|
|
@ -52,7 +52,7 @@ describe('Queued operations should error when fs is in error state, issue 258',
|
|||
|
||||
it('should get EFILESYSTEMERROR errors on callbacks to queued operations on provider error', function(done) {
|
||||
var errCount = 0;
|
||||
var fs = new Filer.FileSystem({provider: provider}, function(err) {
|
||||
var fs = new Filer.FileSystem({provider: provider}, function() {
|
||||
// Do nothing
|
||||
});
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ describe('fs.readdir on non-dir paths, issue 267', function() {
|
|||
fs.readdir('/myfile.txt', function(err, contents) {
|
||||
expect(err).to.exist;
|
||||
expect(err.code).to.equal('ENOTDIR');
|
||||
expect(contents).not.to.exist;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -3,10 +3,10 @@ var expect = require('chai').expect;
|
|||
|
||||
describe('Path.resolve does not work, issue357', function() {
|
||||
it('Path.relative() should not crash', function() {
|
||||
expect(Path.relative("/mydir", "/mydir/file")).to.equal("file");
|
||||
expect(Path.relative('/mydir', '/mydir/file')).to.equal('file');
|
||||
|
||||
// https://nodejs.org/api/path.html#path_path_relative_from_to
|
||||
expect(Path.relative("/data/orandea/test/aaa", "/data/orandea/impl/bbb")).to.equal("../../impl/bbb");
|
||||
expect(Path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')).to.equal('../../impl/bbb');
|
||||
});
|
||||
|
||||
it('Path.resolve() should work as expectedh', function() {
|
||||
|
|
|
@ -46,7 +46,7 @@ describe('sh.ls and deep directory trees', function() {
|
|||
}
|
||||
|
||||
async.eachSeries(paths, writeFile, function(err) {
|
||||
if(err) { console.log('error', err); throw err; }
|
||||
if(err) throw err;
|
||||
|
||||
sh.ls('/', {recursive: true}, function(err, listing) {
|
||||
expect(err).not.to.exist;
|
||||
|
|
128
tests/index.js
128
tests/index.js
|
@ -4,77 +4,77 @@
|
|||
*/
|
||||
|
||||
// Filer
|
||||
require("./spec/filer.spec");
|
||||
require('./spec/filer.spec');
|
||||
|
||||
// Filer.FileSystem.*
|
||||
require("./spec/filer.filesystem.spec");
|
||||
require("./spec/fs.spec");
|
||||
require("./spec/fs.stat.spec");
|
||||
require("./spec/fs.lstat.spec");
|
||||
require("./spec/fs.exists.spec");
|
||||
require("./spec/fs.mknod.spec");
|
||||
require("./spec/fs.mkdir.spec");
|
||||
require("./spec/fs.readdir.spec");
|
||||
require("./spec/fs.rmdir.spec");
|
||||
require("./spec/fs.open.spec");
|
||||
require("./spec/fs.write.spec");
|
||||
require("./spec/fs.writeFile-readFile.spec");
|
||||
require("./spec/fs.appendFile.spec");
|
||||
require("./spec/fs.read.spec");
|
||||
require("./spec/fs.close.spec");
|
||||
require("./spec/fs.link.spec");
|
||||
require("./spec/fs.unlink.spec");
|
||||
require("./spec/fs.rename.spec");
|
||||
require("./spec/fs.lseek.spec");
|
||||
require("./spec/fs.symlink.spec");
|
||||
require("./spec/fs.readlink.spec");
|
||||
require("./spec/fs.truncate.spec");
|
||||
require("./spec/fs.utimes.spec");
|
||||
require("./spec/fs.xattr.spec");
|
||||
require("./spec/fs.stats.spec");
|
||||
require("./spec/path-resolution.spec");
|
||||
require("./spec/trailing-slashes.spec");
|
||||
require("./spec/times.spec");
|
||||
require("./spec/time-flags.spec");
|
||||
require("./spec/fs.watch.spec");
|
||||
require("./spec/errors.spec");
|
||||
require("./spec/fs.shell.spec");
|
||||
require("./spec/fs.chmod.spec");
|
||||
require("./spec/fs.chown.spec")
|
||||
require('./spec/filer.filesystem.spec');
|
||||
require('./spec/fs.spec');
|
||||
require('./spec/fs.stat.spec');
|
||||
require('./spec/fs.lstat.spec');
|
||||
require('./spec/fs.exists.spec');
|
||||
require('./spec/fs.mknod.spec');
|
||||
require('./spec/fs.mkdir.spec');
|
||||
require('./spec/fs.readdir.spec');
|
||||
require('./spec/fs.rmdir.spec');
|
||||
require('./spec/fs.open.spec');
|
||||
require('./spec/fs.write.spec');
|
||||
require('./spec/fs.writeFile-readFile.spec');
|
||||
require('./spec/fs.appendFile.spec');
|
||||
require('./spec/fs.read.spec');
|
||||
require('./spec/fs.close.spec');
|
||||
require('./spec/fs.link.spec');
|
||||
require('./spec/fs.unlink.spec');
|
||||
require('./spec/fs.rename.spec');
|
||||
require('./spec/fs.lseek.spec');
|
||||
require('./spec/fs.symlink.spec');
|
||||
require('./spec/fs.readlink.spec');
|
||||
require('./spec/fs.truncate.spec');
|
||||
require('./spec/fs.utimes.spec');
|
||||
require('./spec/fs.xattr.spec');
|
||||
require('./spec/fs.stats.spec');
|
||||
require('./spec/path-resolution.spec');
|
||||
require('./spec/trailing-slashes.spec');
|
||||
require('./spec/times.spec');
|
||||
require('./spec/time-flags.spec');
|
||||
require('./spec/fs.watch.spec');
|
||||
require('./spec/errors.spec');
|
||||
require('./spec/fs.shell.spec');
|
||||
require('./spec/fs.chmod.spec');
|
||||
require('./spec/fs.chown.spec');
|
||||
|
||||
// Filer.FileSystem.providers.*
|
||||
require("./spec/providers/providers.spec");
|
||||
require("./spec/providers/providers.indexeddb.spec");
|
||||
require("./spec/providers/providers.websql.spec");
|
||||
require("./spec/providers/providers.memory.spec");
|
||||
require('./spec/providers/providers.spec');
|
||||
require('./spec/providers/providers.indexeddb.spec');
|
||||
require('./spec/providers/providers.websql.spec');
|
||||
require('./spec/providers/providers.memory.spec');
|
||||
|
||||
// Filer.FileSystemShell.*
|
||||
require("./spec/shell/cd.spec");
|
||||
require("./spec/shell/touch.spec");
|
||||
require("./spec/shell/exec.spec");
|
||||
require("./spec/shell/cat.spec");
|
||||
require("./spec/shell/ls.spec");
|
||||
require("./spec/shell/rm.spec");
|
||||
require("./spec/shell/env.spec");
|
||||
require("./spec/shell/mkdirp.spec");
|
||||
require("./spec/shell/find.spec");
|
||||
require('./spec/shell/cd.spec');
|
||||
require('./spec/shell/touch.spec');
|
||||
require('./spec/shell/exec.spec');
|
||||
require('./spec/shell/cat.spec');
|
||||
require('./spec/shell/ls.spec');
|
||||
require('./spec/shell/rm.spec');
|
||||
require('./spec/shell/env.spec');
|
||||
require('./spec/shell/mkdirp.spec');
|
||||
require('./spec/shell/find.spec');
|
||||
|
||||
// Ported node.js tests (filenames match names in https://github.com/joyent/node/tree/master/test)
|
||||
require("./spec/node-js/simple/test-fs-mkdir");
|
||||
require("./spec/node-js/simple/test-fs-null-bytes");
|
||||
require("./spec/node-js/simple/test-fs-watch");
|
||||
require("./spec/node-js/simple/test-fs-watch-recursive");
|
||||
require('./spec/node-js/simple/test-fs-mkdir');
|
||||
require('./spec/node-js/simple/test-fs-null-bytes');
|
||||
require('./spec/node-js/simple/test-fs-watch');
|
||||
require('./spec/node-js/simple/test-fs-watch-recursive');
|
||||
|
||||
// Regressions, Bugs
|
||||
require("./bugs/issue105");
|
||||
require("./bugs/issue106");
|
||||
require("./bugs/issue239");
|
||||
require("./bugs/issue249");
|
||||
require("./bugs/ls-depth-bug");
|
||||
require("./bugs/issue247.js");
|
||||
require("./bugs/issue254.js");
|
||||
require("./bugs/issue258.js");
|
||||
require("./bugs/issue267.js");
|
||||
require("./bugs/issue270.js");
|
||||
require("./bugs/rename-dir-trailing-slash.js");
|
||||
require("./bugs/issue357.js");
|
||||
require('./bugs/issue105');
|
||||
require('./bugs/issue106');
|
||||
require('./bugs/issue239');
|
||||
require('./bugs/issue249');
|
||||
require('./bugs/ls-depth-bug');
|
||||
require('./bugs/issue247.js');
|
||||
require('./bugs/issue254.js');
|
||||
require('./bugs/issue258.js');
|
||||
require('./bugs/issue267.js');
|
||||
require('./bugs/issue270.js');
|
||||
require('./bugs/rename-dir-trailing-slash.js');
|
||||
require('./bugs/issue357.js');
|
||||
|
|
|
@ -40,7 +40,8 @@ function IndexedDBTestProvider(name) {
|
|||
request.onsuccess = finished;
|
||||
request.onerror = finished;
|
||||
} catch(e) {
|
||||
console.log("Failed to delete test database", e);
|
||||
/* eslint no-console:0 */
|
||||
console.log('Failed to delete test database', e);
|
||||
finished();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,20 +58,20 @@ function setup(callback) {
|
|||
var name = uniqueName();
|
||||
|
||||
switch(providerType.toLowerCase()) {
|
||||
case 'indexeddb':
|
||||
_provider = new IndexedDBTestProvider(name);
|
||||
break;
|
||||
case 'websql':
|
||||
_provider = new WebSQLTestProvider(name);
|
||||
break;
|
||||
case 'memory':
|
||||
_provider = new MemoryTestProvider(name);
|
||||
break;
|
||||
case 'default':
|
||||
default:
|
||||
var BestProvider = findBestProvider();
|
||||
_provider = new BestProvider(name);
|
||||
break;
|
||||
case 'indexeddb':
|
||||
_provider = new IndexedDBTestProvider(name);
|
||||
break;
|
||||
case 'websql':
|
||||
_provider = new WebSQLTestProvider(name);
|
||||
break;
|
||||
case 'memory':
|
||||
_provider = new MemoryTestProvider(name);
|
||||
break;
|
||||
case 'default':
|
||||
default:
|
||||
var BestProvider = findBestProvider();
|
||||
_provider = new BestProvider(name);
|
||||
break;
|
||||
}
|
||||
|
||||
// Allow passing FS flags on query string
|
||||
|
@ -95,14 +95,14 @@ function setup(callback) {
|
|||
|
||||
function fs() {
|
||||
if(!_fs) {
|
||||
throw "TestUtil: call setup() before fs()";
|
||||
throw 'TestUtil: call setup() before fs()';
|
||||
}
|
||||
return _fs;
|
||||
}
|
||||
|
||||
function provider() {
|
||||
if(!_provider) {
|
||||
throw "TestUtil: call setup() before provider()";
|
||||
throw 'TestUtil: call setup() before provider()';
|
||||
}
|
||||
return _provider;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
var Filer = require('../../src');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
describe("Filer.Errors", function() {
|
||||
it("has expected errors", function() {
|
||||
describe('Filer.Errors', function() {
|
||||
it('has expected errors', function() {
|
||||
expect(Filer.Errors).to.exist;
|
||||
|
||||
// By ctor -- if you add some to src/errors.js, also add here
|
||||
|
@ -165,12 +165,12 @@ describe("Filer.Errors", function() {
|
|||
|
||||
it('should not include path in toString() when not provided', function() {
|
||||
var err = new Filer.Errors.ENOENT('This is the message');
|
||||
expect(err.toString()).to.equal("ENOENT: This is the message");
|
||||
expect(err.toString()).to.equal('ENOENT: This is the message');
|
||||
});
|
||||
|
||||
it('should include path in toString() when provided', function() {
|
||||
var err = new Filer.Errors.ENOENT(null, '/this/is/the/path');
|
||||
expect(err.toString()).to.equal("ENOENT: no such file or directory, '/this/is/the/path'");
|
||||
expect(err.toString()).to.equal('ENOENT: no such file or directory, \'/this/is/the/path\'');
|
||||
});
|
||||
|
||||
it('should include message and path info when provided', function() {
|
||||
|
|
|
@ -2,7 +2,7 @@ var Filer = require('../../src');
|
|||
var util = require('../lib/test-utils.js');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
describe("Filer.FileSystem", function() {
|
||||
describe('Filer.FileSystem', function() {
|
||||
beforeEach(util.setup);
|
||||
afterEach(util.cleanup);
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
var Filer = require('../../src');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
describe("Filer", function() {
|
||||
it("is defined", function() {
|
||||
describe('Filer', function() {
|
||||
it('is defined', function() {
|
||||
expect(typeof Filer).not.to.equal(undefined);
|
||||
});
|
||||
|
||||
it("has FileSystem constructor", function() {
|
||||
it('has FileSystem constructor', function() {
|
||||
expect(typeof Filer.FileSystem).to.equal('function');
|
||||
});
|
||||
|
||||
it("has Shell constructor", function() {
|
||||
it('has Shell constructor', function() {
|
||||
expect(typeof Filer.Shell).to.equal('function');
|
||||
});
|
||||
});
|
||||
|
|
|
@ -5,7 +5,7 @@ describe('fs.appendFile', function() {
|
|||
beforeEach(function(done) {
|
||||
util.setup(function() {
|
||||
var fs = util.fs();
|
||||
fs.writeFile('/myfile', "This is a file.", { encoding: 'utf8' }, function(error) {
|
||||
fs.writeFile('/myfile', 'This is a file.', { encoding: 'utf8' }, function(error) {
|
||||
if(error) throw error;
|
||||
done();
|
||||
});
|
||||
|
@ -20,8 +20,8 @@ describe('fs.appendFile', function() {
|
|||
|
||||
it('should append a utf8 file without specifying utf8 in appendFile', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var more = " Appended.";
|
||||
var contents = 'This is a file.';
|
||||
var more = ' Appended.';
|
||||
|
||||
fs.appendFile('/myfile', more, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -36,8 +36,8 @@ describe('fs.appendFile', function() {
|
|||
|
||||
it('should append a utf8 file with "utf8" option to appendFile', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var more = " Appended.";
|
||||
var contents = 'This is a file.';
|
||||
var more = ' Appended.';
|
||||
|
||||
fs.appendFile('/myfile', more, 'utf8', function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -52,8 +52,8 @@ describe('fs.appendFile', function() {
|
|||
|
||||
it('should append a utf8 file with {encoding: "utf8"} option to appendFile', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var more = " Appended.";
|
||||
var contents = 'This is a file.';
|
||||
var more = ' Appended.';
|
||||
|
||||
fs.appendFile('/myfile', more, { encoding: 'utf8' }, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -69,13 +69,11 @@ describe('fs.appendFile', function() {
|
|||
it('should append a binary file', function(done) {
|
||||
var fs = util.fs();
|
||||
|
||||
// String and utf8 binary encoded versions of the same thing:
|
||||
var contents = "This is a file.";
|
||||
// String and utf8 binary encoded versions of the same thing: 'This is a file.'
|
||||
var binary = new Buffer([84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 102, 105, 108, 101, 46]);
|
||||
var more = " Appended.";
|
||||
var binary2 = new Buffer([32, 65, 112, 112, 101, 110, 100, 101, 100, 46]);
|
||||
var binary3 = new Buffer([84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 102, 105, 108, 101, 46,
|
||||
32, 65, 112, 112, 101, 110, 100, 101, 100, 46]);
|
||||
32, 65, 112, 112, 101, 110, 100, 101, 100, 46]);
|
||||
|
||||
fs.writeFile('/mybinaryfile', binary, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -94,8 +92,8 @@ describe('fs.appendFile', function() {
|
|||
|
||||
it('should follow symbolic links', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var more = " Appended.";
|
||||
var contents = 'This is a file.';
|
||||
var more = ' Appended.';
|
||||
|
||||
fs.symlink('/myfile', '/myFileLink', function (error) {
|
||||
if (error) throw error;
|
||||
|
@ -114,7 +112,7 @@ describe('fs.appendFile', function() {
|
|||
|
||||
it('should work when file does not exist, and create the file', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var contents = 'This is a file.';
|
||||
|
||||
fs.appendFile('/newfile', contents, { encoding: 'utf8' }, function(error) {
|
||||
expect(error).not.to.exist;
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
var Filer = require('../../src');
|
||||
var util = require('../lib/test-utils.js');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
var Filer = require('../../src');
|
||||
var util = require('../lib/test-utils.js');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
|
@ -12,7 +11,7 @@ describe('fs.chown, fs.fchown', function() {
|
|||
expect(typeof fs.fchown).to.equal('function');
|
||||
});
|
||||
|
||||
it('should automatically set a file\s uid and gid to 0 (i.e., root)', function(done) {
|
||||
it('should automatically set a file\'s uid and gid to 0 (i.e., root)', function(done) {
|
||||
var fs = util.fs();
|
||||
|
||||
fs.open('/file', 'w', function(err, fd) {
|
||||
|
|
|
@ -20,8 +20,11 @@ describe('fs.close', function() {
|
|||
|
||||
var fd = result;
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
fs.read(fd, buffer, 0, buffer.length, undefined, function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -43,7 +43,7 @@ describe('fs.link', function() {
|
|||
|
||||
it('should create hard link to identical data node', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "Hello World!";
|
||||
var contents = 'Hello World!';
|
||||
|
||||
fs.writeFile('/file', contents, function(err) {
|
||||
if(err) throw err;
|
||||
|
@ -70,13 +70,17 @@ describe('fs.link', function() {
|
|||
|
||||
fs.stat('/', function (error, result) {
|
||||
if (error) throw error;
|
||||
var _oldstats = result;
|
||||
expect(result).to.exist;
|
||||
|
||||
fs.symlink('/', '/myfileLink', function (error) {
|
||||
if (error) throw error;
|
||||
|
||||
fs.link('/myfileLink', '/myotherfile', function (error) {
|
||||
if (error) throw error;
|
||||
|
||||
fs.lstat('/myfileLink', function (error, result) {
|
||||
if (error) throw error;
|
||||
|
||||
var _linkstats = result;
|
||||
fs.lstat('/myotherfile', function (error, result) {
|
||||
expect(error).not.to.exist;
|
||||
|
|
|
@ -28,9 +28,11 @@ describe('fs.lseek', function() {
|
|||
|
||||
fs.stat('/myfile', function (error, result) {
|
||||
expect(error).not.to.exist;
|
||||
expect(result).to.exist;
|
||||
|
||||
fs.lstat('/myFileLink', function (error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(result).not.to.exist;
|
||||
|
||||
fs.stat('/myOtherFileLink', function (error, result) {
|
||||
if (error) throw error;
|
||||
|
@ -57,6 +59,7 @@ describe('fs.lseek', function() {
|
|||
|
||||
fs.write(fd, buffer, 0, buffer.length, undefined, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.lseek(fd, offset, 'SET', function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
|
@ -64,9 +67,11 @@ describe('fs.lseek', function() {
|
|||
|
||||
fs.write(fd, buffer, 0, buffer.length, undefined, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.read(fd, result_buffer, 0, result_buffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(result_buffer.length);
|
||||
|
||||
fs.stat('/myfile', function(error, result) {
|
||||
if(error) throw error;
|
||||
|
@ -95,6 +100,7 @@ describe('fs.lseek', function() {
|
|||
|
||||
fs.write(fd, buffer, 0, buffer.length, undefined, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.lseek(fd, offset, 'CUR', function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
|
@ -102,9 +108,11 @@ describe('fs.lseek', function() {
|
|||
|
||||
fs.write(fd, buffer, 0, buffer.length, undefined, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.read(fd, result_buffer, 0, result_buffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(result_buffer.length);
|
||||
|
||||
fs.stat('/myfile', function(error, result) {
|
||||
if(error) throw error;
|
||||
|
@ -133,6 +141,7 @@ describe('fs.lseek', function() {
|
|||
var fd1 = result;
|
||||
fs.write(fd1, buffer, 0, buffer.length, undefined, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.open('/myfile', 'w+', function(error, result) {
|
||||
if(error) throw error;
|
||||
|
@ -144,6 +153,7 @@ describe('fs.lseek', function() {
|
|||
|
||||
fs.write(fd2, buffer, 0, buffer.length, undefined, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.stat('/myfile', function(error, result) {
|
||||
if(error) throw error;
|
||||
|
@ -153,6 +163,8 @@ describe('fs.lseek', function() {
|
|||
result_buffer.fill(0);
|
||||
fs.read(fd2, result_buffer, 0, result_buffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(result_buffer.length);
|
||||
|
||||
var expected = new Filer.Buffer([1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8]);
|
||||
expect(result_buffer).to.deep.equal(expected);
|
||||
done();
|
||||
|
|
|
@ -12,11 +12,10 @@ describe('fs.lstat', function() {
|
|||
|
||||
it('should return an error if path does not exist', function(done) {
|
||||
var fs = util.fs();
|
||||
var _error, _result;
|
||||
|
||||
fs.lstat('/tmp', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -15,7 +15,7 @@ describe('fs.mkdir', function() {
|
|||
|
||||
fs.mkdir('/tmp/mydir', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -25,7 +25,7 @@ describe('fs.mkdir', function() {
|
|||
|
||||
fs.mkdir('/', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EEXIST");
|
||||
expect(error.code).to.equal('EEXIST');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -32,9 +32,10 @@ describe('fs.mknod', function() {
|
|||
it('should return an error if the parent node is not a directory', function(done) {
|
||||
var fs = util.fs();
|
||||
|
||||
fs.mknod('/file', 'FILE' , function(error, result) {
|
||||
fs.mknod('/file', 'FILE' , function(error) {
|
||||
if(error) throw error;
|
||||
fs.mknod('/file/myfile', 'FILE', function(error, result) {
|
||||
|
||||
fs.mknod('/file/myfile', 'FILE', function(error) {
|
||||
expect(error.code).to.equal('ENOTDIR');
|
||||
done();
|
||||
});
|
||||
|
@ -68,8 +69,9 @@ describe('fs.mknod', function() {
|
|||
it('should make a new file', function(done) {
|
||||
var fs = util.fs();
|
||||
|
||||
fs.mknod('/file', 'FILE' , function(error, result) {
|
||||
fs.mknod('/file', 'FILE' , function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
fs.stat('/file', function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
expect(result.type).to.equal('FILE');
|
||||
|
|
|
@ -16,7 +16,7 @@ describe('fs.open', function() {
|
|||
|
||||
fs.open('/tmp/myfile', 'w+', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -27,7 +27,7 @@ describe('fs.open', function() {
|
|||
|
||||
fs.open('/myfile', 'r+', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -40,7 +40,7 @@ describe('fs.open', function() {
|
|||
if(error) throw error;
|
||||
fs.open('/tmp', 'w', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EISDIR");
|
||||
expect(error.code).to.equal('EISDIR');
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -54,7 +54,7 @@ describe('fs.open', function() {
|
|||
if(error) throw error;
|
||||
fs.open('/tmp', 'a', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EISDIR");
|
||||
expect(error.code).to.equal('EISDIR');
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -83,7 +83,6 @@ describe('fs.open', function() {
|
|||
it('should return the argument value of the file descriptor index matching the value set by the first useable file descriptor constant', function(done) {
|
||||
var fs = util.fs();
|
||||
var firstFD = constants.FIRST_DESCRIPTOR;
|
||||
var fd1;
|
||||
|
||||
fs.open('/file1', 'w+', function(error, fd) {
|
||||
if(error) throw error;
|
||||
|
@ -95,8 +94,9 @@ describe('fs.open', function() {
|
|||
it('should create a new file when flagged for write', function(done) {
|
||||
var fs = util.fs();
|
||||
|
||||
fs.open('/myfile', 'w', function(error, result) {
|
||||
fs.open('/myfile', 'w', function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
fs.stat('/myfile', function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
expect(result).to.exist;
|
||||
|
|
|
@ -21,6 +21,7 @@ describe('fs.read', function() {
|
|||
if(error) throw error;
|
||||
fs.write(fd, wbuffer, 0, wbuffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(wbuffer.length);
|
||||
|
||||
fs.read(fd, rbuffer, 0, rbuffer.length, 0, function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
|
@ -44,6 +45,7 @@ describe('fs.read', function() {
|
|||
|
||||
fs.write(fd, wbuffer, 0, wbuffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(wbuffer.length);
|
||||
|
||||
fs.read(fd, rbuffer, 0, rbuffer.length / 2, undefined, function(error, result) {
|
||||
if(error) throw error;
|
||||
|
@ -70,7 +72,7 @@ describe('fs.read', function() {
|
|||
buf2.fill(0);
|
||||
|
||||
fs.mkdir('/mydir', function(error) {
|
||||
if(error) throw err;
|
||||
if(error) throw error;
|
||||
|
||||
fs.open('/mydir', 'r', function(error, fd) {
|
||||
if(error) throw error;
|
||||
|
|
|
@ -15,7 +15,7 @@ describe('fs.readdir', function() {
|
|||
|
||||
fs.readdir('/tmp/mydir', function(error, files) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
expect(files).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -15,7 +15,7 @@ describe('fs.readlink', function() {
|
|||
|
||||
fs.readlink('/tmp/mydir', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -25,7 +25,7 @@ describe('fs.readlink', function() {
|
|||
|
||||
fs.readlink('/', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -32,6 +32,7 @@ describe('fs.rename', function() {
|
|||
|
||||
fs.stat('/myfile', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(result).not.to.exist;
|
||||
complete1 = true;
|
||||
maybeDone();
|
||||
});
|
||||
|
|
|
@ -15,7 +15,7 @@ describe('fs.rmdir', function() {
|
|||
|
||||
fs.rmdir('/tmp/mydir', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -25,7 +25,7 @@ describe('fs.rmdir', function() {
|
|||
|
||||
fs.rmdir('/', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EBUSY");
|
||||
expect(error.code).to.equal('EBUSY');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -39,7 +39,7 @@ describe('fs.rmdir', function() {
|
|||
if(error) throw error;
|
||||
fs.rmdir('/', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EBUSY");
|
||||
expect(error.code).to.equal('EBUSY');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -57,7 +57,7 @@ describe('fs.rmdir', function() {
|
|||
if(error) throw error;
|
||||
fs.rmdir('/tmp/myfile', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOTDIR");
|
||||
expect(error.code).to.equal('ENOTDIR');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -74,7 +74,7 @@ describe('fs.rmdir', function() {
|
|||
if(error) throw error;
|
||||
fs.rmdir('/tmp/myfile', function (error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOTDIR");
|
||||
expect(error.code).to.equal('ENOTDIR');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,11 +2,11 @@ var Filer = require('../../src');
|
|||
var util = require('../lib/test-utils.js');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
describe("fs.Shell", function() {
|
||||
describe('fs.Shell', function() {
|
||||
beforeEach(util.setup);
|
||||
afterEach(util.cleanup);
|
||||
|
||||
it("is a function", function(done) {
|
||||
it('is a function', function(done) {
|
||||
var fs = util.fs();
|
||||
expect(typeof fs.Shell).to.equal('function');
|
||||
|
||||
|
@ -25,9 +25,9 @@ describe("fs.Shell", function() {
|
|||
var fs = util.fs();
|
||||
var sh = new fs.Shell();
|
||||
|
||||
Filer.Shell.prototype.test = "foo";
|
||||
Filer.Shell.prototype.test = 'foo';
|
||||
|
||||
expect(sh.test).to.equal("foo");
|
||||
expect(sh.test).to.equal('foo');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,11 +2,11 @@ var Filer = require('../../src');
|
|||
var util = require('../lib/test-utils.js');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
describe("fs", function() {
|
||||
describe('fs', function() {
|
||||
beforeEach(util.setup);
|
||||
afterEach(util.cleanup);
|
||||
|
||||
it("is an object", function() {
|
||||
it('is an object', function() {
|
||||
var fs = util.fs();
|
||||
expect(typeof fs).to.equal('object');
|
||||
expect(fs).to.be.an.instanceof(Filer.FileSystem);
|
||||
|
|
|
@ -15,7 +15,7 @@ describe('fs.stat', function() {
|
|||
|
||||
fs.stat('/tmp', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -43,8 +43,10 @@ describe('fs.stats', function() {
|
|||
|
||||
fs.open('/myfile', 'w+', function(error, fd) {
|
||||
if(error) throw error;
|
||||
fs.close(fd, function(error, stats) {
|
||||
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
fs.symlink('/myfile', '/myfilelink', function(error) {
|
||||
if(error) throw error;
|
||||
fs.lstat('/myfilelink', function(error, stats) {
|
||||
|
@ -97,7 +99,7 @@ describe('fs.stats', function() {
|
|||
|
||||
fs.open('/myfile', 'w+', function(error, fd) {
|
||||
if(error) throw error;
|
||||
fs.close(fd, function(error, stats) {
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
fs.symlink('/myfile', '/myfilelink', function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -197,7 +199,7 @@ describe('fs.stats', function() {
|
|||
|
||||
fs.open('/myfile', 'w+', function(error, fd) {
|
||||
if(error) throw error;
|
||||
fs.close(fd, function(error, stats) {
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
fs.symlink('/myfile', '/myfilelink', function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -274,7 +276,7 @@ describe('fs.stats', function() {
|
|||
expect(stats.name).to.equal(Path.basename(filepath));
|
||||
done();
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
it('should correct return name for an fd', function(done) {
|
||||
|
@ -290,7 +292,7 @@ describe('fs.stats', function() {
|
|||
expect(stats.name).to.equal(Path.basename(filepath));
|
||||
done();
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
|
|
|
@ -15,7 +15,7 @@ describe('fs.symlink', function() {
|
|||
|
||||
fs.symlink('/', '/tmp/mydir', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -25,7 +25,7 @@ describe('fs.symlink', function() {
|
|||
|
||||
fs.symlink('/tmp', '/', function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EEXIST");
|
||||
expect(error.code).to.equal('EEXIST');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -12,14 +12,14 @@ describe('fs.truncate', function() {
|
|||
|
||||
it('should error when length is negative', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var contents = 'This is a file.';
|
||||
|
||||
fs.writeFile('/myfile', contents, function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
fs.truncate('/myfile', -1, function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EINVAL");
|
||||
expect(error.code).to.equal('EINVAL');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -30,7 +30,7 @@ describe('fs.truncate', function() {
|
|||
|
||||
fs.truncate('/', 0, function(error) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EISDIR");
|
||||
expect(error.code).to.equal('EISDIR');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -46,6 +46,7 @@ describe('fs.truncate', function() {
|
|||
var fd = result;
|
||||
fs.write(fd, buffer, 0, buffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -76,6 +77,7 @@ describe('fs.truncate', function() {
|
|||
var fd = result;
|
||||
fs.write(fd, buffer, 0, buffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -105,6 +107,7 @@ describe('fs.truncate', function() {
|
|||
var fd = result;
|
||||
fs.write(fd, buffer, 0, buffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -134,6 +137,7 @@ describe('fs.truncate', function() {
|
|||
var fd = result;
|
||||
fs.write(fd, buffer, 0, buffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.ftruncate(fd, 0, function(error) {
|
||||
expect(error).not.to.exist;
|
||||
|
@ -159,6 +163,7 @@ describe('fs.truncate', function() {
|
|||
var fd = result;
|
||||
fs.write(fd, buffer, 0, buffer.length, 0, function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.equal(buffer.length);
|
||||
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
|
|
@ -34,6 +34,7 @@ describe('fs.unlink', function() {
|
|||
|
||||
fs.stat('/myfile', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(result).not.to.exist;
|
||||
complete1 = true;
|
||||
maybeDone();
|
||||
});
|
||||
|
@ -65,6 +66,7 @@ describe('fs.unlink', function() {
|
|||
|
||||
fs.lstat('/myFileLink', function (error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(result).not.to.exist;
|
||||
|
||||
fs.lstat('/myotherfile', function (error, result) {
|
||||
if (error) throw error;
|
||||
|
|
|
@ -126,7 +126,7 @@ describe('fs.utimes', function() {
|
|||
fs.fstat(ofd, function (error, stat) {
|
||||
expect(error).not.to.exist;
|
||||
expect(stat.mtime).to.equal(mtime);
|
||||
done();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -154,8 +154,6 @@ describe('fs.utimes', function() {
|
|||
|
||||
it('should update atime and mtime using current time if arguments are null', function(done) {
|
||||
var fs = util.fs();
|
||||
var atimeEst;
|
||||
var mtimeEst;
|
||||
|
||||
fs.writeFile('/myfile', '', function (error) {
|
||||
if (error) throw error;
|
||||
|
|
|
@ -13,11 +13,10 @@ describe('fs.writeFile, fs.readFile', function() {
|
|||
|
||||
it('should error when path is wrong to readFile', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
|
||||
fs.readFile('/no-such-file', 'utf8', function(error, data) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
expect(data).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -25,7 +24,7 @@ describe('fs.writeFile, fs.readFile', function() {
|
|||
|
||||
it('should write, read a utf8 file without specifying utf8 in writeFile', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var contents = 'This is a file.';
|
||||
|
||||
fs.writeFile('/myfile', contents, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -39,7 +38,7 @@ describe('fs.writeFile, fs.readFile', function() {
|
|||
|
||||
it('should write, read a utf8 file with "utf8" option to writeFile', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var contents = 'This is a file.';
|
||||
|
||||
fs.writeFile('/myfile', contents, 'utf8', function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -53,7 +52,7 @@ describe('fs.writeFile, fs.readFile', function() {
|
|||
|
||||
it('should write, read a utf8 file with {encoding: "utf8"} option to writeFile', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var contents = 'This is a file.';
|
||||
|
||||
fs.writeFile('/myfile', contents, { encoding: 'utf8' }, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -67,8 +66,7 @@ describe('fs.writeFile, fs.readFile', function() {
|
|||
|
||||
it('should write, read a binary file', function(done) {
|
||||
var fs = util.fs();
|
||||
// String and utf8 binary encoded versions of the same thing:
|
||||
var contents = "This is a file.";
|
||||
// String and utf8 binary encoded versions of the same thing: 'This is a file.'
|
||||
var binary = new Buffer([84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 102, 105, 108, 101, 46]);
|
||||
|
||||
fs.writeFile('/myfile', binary, function(error) {
|
||||
|
@ -83,7 +81,7 @@ describe('fs.writeFile, fs.readFile', function() {
|
|||
|
||||
it('should follow symbolic links', function(done) {
|
||||
var fs = util.fs();
|
||||
var contents = "This is a file.";
|
||||
var contents = 'This is a file.';
|
||||
|
||||
fs.writeFile('/myfile', '', { encoding: 'utf8' }, function(error) {
|
||||
if(error) throw error;
|
||||
|
|
|
@ -97,6 +97,7 @@ describe('fs.xattr', function() {
|
|||
fs.getxattr('/testfile', '', function(error, value) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal('EINVAL');
|
||||
expect(value).not.to.exist;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -111,6 +112,7 @@ describe('fs.xattr', function() {
|
|||
fs.getxattr('/testfile', 89, function(error, value) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal('EINVAL');
|
||||
expect(value).not.to.exist;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -125,6 +127,7 @@ describe('fs.xattr', function() {
|
|||
fs.getxattr('/testfile', 'test', function(error, value) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal('ENOATTR');
|
||||
expect(value).not.to.exist;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -132,10 +135,9 @@ describe('fs.xattr', function() {
|
|||
|
||||
it('should error when file descriptor is invalid', function(done) {
|
||||
var fs = util.fs();
|
||||
var completeSet, completeGet, completeRemove;
|
||||
var _value;
|
||||
|
||||
completeSet = completeGet = completeRemove = false;
|
||||
var completeSet = false;
|
||||
var completeGet = false;
|
||||
var completeRemove = false;
|
||||
|
||||
function maybeDone() {
|
||||
if(completeSet && completeGet && completeRemove) {
|
||||
|
@ -161,6 +163,7 @@ describe('fs.xattr', function() {
|
|||
fs.fremovexattr(1, 'test', function(error, value) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal('EBADF');
|
||||
expect(value).not.to.exist;
|
||||
completeRemove = true;
|
||||
maybeDone();
|
||||
});
|
||||
|
@ -288,7 +291,7 @@ describe('fs.xattr', function() {
|
|||
});
|
||||
});
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
var util = require('../../../lib/test-utils.js');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/test-fs-mkdir.js", function() {
|
||||
describe('node.js tests: https://github.com/joyent/node/blob/master/test/simple/test-fs-mkdir.js', function() {
|
||||
beforeEach(util.setup);
|
||||
afterEach(util.cleanup);
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
var util = require('../../../lib/test-utils.js');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/test-fs-null-bytes.js", function() {
|
||||
describe('node.js tests: https://github.com/joyent/node/blob/master/test/simple/test-fs-null-bytes.js', function() {
|
||||
beforeEach(util.setup);
|
||||
afterEach(util.cleanup);
|
||||
|
||||
|
@ -9,7 +9,7 @@ describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/
|
|||
var checks = [];
|
||||
var fnCount = 0;
|
||||
var fnTotal = 16;
|
||||
var expected = "Path must be a string without null bytes.";
|
||||
var expected = 'Path must be a string without null bytes.';
|
||||
var fs = util.fs();
|
||||
|
||||
// Make sure function fails with null path error in callback.
|
||||
|
@ -47,8 +47,8 @@ describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/
|
|||
check(fs.appendFile, '/foo\u0000bar');
|
||||
check(fs.truncate, '/foo\u0000bar');
|
||||
check(fs.utimes, '/foo\u0000bar', 0, 0);
|
||||
// Not implemented
|
||||
// check(fs.realpath, '/foo\u0000bar');
|
||||
// Not implemented
|
||||
// check(fs.realpath, '/foo\u0000bar');
|
||||
check(fs.chmod, '/foo\u0000bar', '0644');
|
||||
check(fs.chown, '/foo\u0000bar', 12, 34);
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ var expect = require('chai').expect;
|
|||
* fd vs. path) for events, or gives only a portion thereof (e.g., basname),
|
||||
* we give full, abs paths always.
|
||||
*/
|
||||
describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/test-fs-watch-recursive.js", function() {
|
||||
describe('node.js tests: https://github.com/joyent/node/blob/master/test/simple/test-fs-watch-recursive.js', function() {
|
||||
beforeEach(util.setup);
|
||||
afterEach(util.cleanup);
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ var expect = require('chai').expect;
|
|||
var filenameOne = '/watch.txt';
|
||||
var filenameTwo = '/hasOwnProperty';
|
||||
|
||||
describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/test-fs-watch.js", function() {
|
||||
describe('node.js tests: https://github.com/joyent/node/blob/master/test/simple/test-fs-watch.js', function() {
|
||||
beforeEach(util.setup);
|
||||
afterEach(util.cleanup);
|
||||
|
||||
|
@ -27,6 +27,7 @@ describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/
|
|||
watcher.close();
|
||||
|
||||
fs.writeFile(filenameOne, 'hello again', function(error) {
|
||||
if(error) throw error;
|
||||
expect(changes).to.equal(1);
|
||||
done();
|
||||
});
|
||||
|
@ -37,7 +38,6 @@ describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/
|
|||
|
||||
it('should get change event for writeFile() using fs.watch() only', function(done) {
|
||||
var fs = util.fs();
|
||||
var changes = 0;
|
||||
|
||||
var watcher = fs.watch(filenameTwo, function(event, filename) {
|
||||
expect(event).to.equal('change');
|
||||
|
@ -56,7 +56,7 @@ describe("node.js tests: https://github.com/joyent/node/blob/master/test/simple/
|
|||
if(error) throw error;
|
||||
|
||||
var watcher = fs.watch('/tmp', function(event, filename) {
|
||||
// TODO: node thinks this should be 'rename', need to add rename along with change.
|
||||
// TODO: node thinks this should be 'rename', need to add rename along with change.
|
||||
expect(event).to.equal('change');
|
||||
expect(filename).to.equal('/tmp');
|
||||
watcher.close();
|
||||
|
|
|
@ -32,6 +32,8 @@ describe('path resolution', function() {
|
|||
var fs = util.fs();
|
||||
|
||||
fs.mkdir('/mydir', function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
fs.symlink('/mydir', '/mydirectorylink', function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
|
@ -121,7 +123,7 @@ describe('path resolution', function() {
|
|||
|
||||
fs.stat('/myfilelink1', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOENT");
|
||||
expect(error.code).to.equal('ENOENT');
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -148,6 +150,7 @@ describe('path resolution', function() {
|
|||
if(error) throw error;
|
||||
fs.stat('/myfile0', function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.exist;
|
||||
|
||||
createSymlinkChain(1, function() {
|
||||
fs.stat('/myfile11', function(error, result) {
|
||||
|
@ -201,6 +204,7 @@ describe('path resolution', function() {
|
|||
if(error) throw error;
|
||||
fs.stat('/myfile', function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).to.exist;
|
||||
|
||||
fs.open('/myfile2', 'w', function(error, result) {
|
||||
if(error) throw error;
|
||||
|
@ -212,7 +216,7 @@ describe('path resolution', function() {
|
|||
|
||||
fs.stat('/mynotdirlink/myfile', function(error, result) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("ENOTDIR");
|
||||
expect(error.code).to.equal('ENOTDIR');
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
/* eslint no-console: 0 */
|
||||
|
||||
var Buffer = require('../../../src').Buffer;
|
||||
var util = require('../../lib/test-utils.js');
|
||||
var expect = require('chai').expect;
|
||||
|
@ -8,11 +10,11 @@ var expect = require('chai').expect;
|
|||
*/
|
||||
module.exports = function createProviderTestsFor(providerName, testProvider) {
|
||||
if(!testProvider.isSupported()) {
|
||||
console.log("Skipping provider tests for `" + providerName +"'--not supported in current environment.");
|
||||
console.log('Skipping provider tests for `' + providerName +'\'--not supported in current environment.');
|
||||
return;
|
||||
}
|
||||
|
||||
describe("Filer Provider Tests for " + providerName, function() {
|
||||
describe('Filer Provider Tests for ' + providerName, function() {
|
||||
var _provider;
|
||||
var provider;
|
||||
|
||||
|
@ -29,27 +31,27 @@ module.exports = function createProviderTestsFor(providerName, testProvider) {
|
|||
});
|
||||
|
||||
|
||||
it("has open, getReadOnlyContext, and getReadWriteContext instance methods", function() {
|
||||
it('has open, getReadOnlyContext, and getReadWriteContext instance methods', function() {
|
||||
expect(provider.open).to.be.a('function');
|
||||
expect(provider.getReadOnlyContext).to.be.a('function');
|
||||
expect(provider.getReadWriteContext).to.be.a('function');
|
||||
});
|
||||
|
||||
it("should open a new provider database", function(done) {
|
||||
it('should open a new provider database', function(done) {
|
||||
provider.open(function(error) {
|
||||
expect(error).not.to.exist;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("should allow putObject() and getObject()", function(done) {
|
||||
provider.open(function(error, firstAccess) {
|
||||
it('should allow putObject() and getObject()', function(done) {
|
||||
provider.open(function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
var context = provider.getReadWriteContext();
|
||||
// Simple JS Object
|
||||
var value = {
|
||||
a: "a",
|
||||
a: 'a',
|
||||
b: 1,
|
||||
c: true,
|
||||
d: [1,2,3],
|
||||
|
@ -57,10 +59,10 @@ module.exports = function createProviderTestsFor(providerName, testProvider) {
|
|||
e1: ['a', 'b', 'c']
|
||||
}
|
||||
};
|
||||
context.putObject("key", value, function(error) {
|
||||
context.putObject('key', value, function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
context.getObject("key", function(error, result) {
|
||||
context.getObject('key', function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
expect(result).to.be.an('object');
|
||||
expect(result).to.deep.equal(value);
|
||||
|
@ -70,17 +72,17 @@ module.exports = function createProviderTestsFor(providerName, testProvider) {
|
|||
});
|
||||
});
|
||||
|
||||
it("should allow putBuffer() and getBuffer()", function(done) {
|
||||
provider.open(function(error, firstAccess) {
|
||||
it('should allow putBuffer() and getBuffer()', function(done) {
|
||||
provider.open(function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
var context = provider.getReadWriteContext();
|
||||
// Filer Buffer
|
||||
var buf = new Buffer([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
|
||||
context.putBuffer("key", buf, function(error) {
|
||||
context.putBuffer('key', buf, function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
context.getBuffer("key", function(error, result) {
|
||||
context.getBuffer('key', function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
expect(Buffer.isBuffer(result)).to.be.true;
|
||||
expect(result).to.deep.equal(buf);
|
||||
|
@ -90,17 +92,17 @@ module.exports = function createProviderTestsFor(providerName, testProvider) {
|
|||
});
|
||||
});
|
||||
|
||||
it("should allow zero-length Buffers with putBuffer() and getBuffer()", function(done) {
|
||||
provider.open(function(error, firstAccess) {
|
||||
it('should allow zero-length Buffers with putBuffer() and getBuffer()', function(done) {
|
||||
provider.open(function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
var context = provider.getReadWriteContext();
|
||||
// Zero-length Filer Buffer
|
||||
var buf = new Buffer(new ArrayBuffer(0));
|
||||
context.putBuffer("key", buf, function(error) {
|
||||
context.putBuffer('key', buf, function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
context.getBuffer("key", function(error, result) {
|
||||
context.getBuffer('key', function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
expect(Buffer.isBuffer(result)).to.be.true;
|
||||
expect(result).to.deep.equal(buf);
|
||||
|
@ -110,19 +112,19 @@ module.exports = function createProviderTestsFor(providerName, testProvider) {
|
|||
});
|
||||
});
|
||||
|
||||
it("should allow delete()", function(done) {
|
||||
it('should allow delete()', function(done) {
|
||||
var provider = _provider.provider;
|
||||
provider.open(function(error, firstAccess) {
|
||||
provider.open(function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
var context = provider.getReadWriteContext();
|
||||
context.putObject("key", "value", function(error) {
|
||||
context.putObject('key', 'value', function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
context.delete("key", function(error) {
|
||||
context.delete('key', function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
context.getObject("key", function(error, result) {
|
||||
context.getObject('key', function(error, result) {
|
||||
expect(error).not.to.exist;
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
|
@ -132,25 +134,25 @@ module.exports = function createProviderTestsFor(providerName, testProvider) {
|
|||
});
|
||||
});
|
||||
|
||||
it("should allow clear()", function(done) {
|
||||
provider.open(function(error, firstAccess) {
|
||||
it('should allow clear()', function(done) {
|
||||
provider.open(function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
var context = provider.getReadWriteContext();
|
||||
context.putObject("key1", "value1", function(error) {
|
||||
context.putObject('key1', 'value1', function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
context.putObject("key2", "value2", function(error) {
|
||||
context.putObject('key2', 'value2', function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
context.clear(function(err) {
|
||||
context.clear(function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
context.getObject("key1", function(error, result) {
|
||||
context.getObject('key1', function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).not.to.exist;
|
||||
|
||||
context.getObject("key2", function(error, result) {
|
||||
context.getObject('key2', function(error, result) {
|
||||
if(error) throw error;
|
||||
expect(result).not.to.exist;
|
||||
done();
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
var Filer = require('../../../src');
|
||||
var expect = require('chai').expect;
|
||||
|
||||
describe("Filer.FileSystem.providers", function() {
|
||||
it("is defined", function() {
|
||||
describe('Filer.FileSystem.providers', function() {
|
||||
it('is defined', function() {
|
||||
expect(Filer.FileSystem.providers).to.exist;
|
||||
});
|
||||
|
||||
it("has IndexedDB constructor", function() {
|
||||
it('has IndexedDB constructor', function() {
|
||||
expect(Filer.FileSystem.providers.IndexedDB).to.be.a('function');
|
||||
});
|
||||
|
||||
it("has WebSQL constructor", function() {
|
||||
it('has WebSQL constructor', function() {
|
||||
expect(Filer.FileSystem.providers.WebSQL).to.be.a('function');
|
||||
});
|
||||
|
||||
it("has Memory constructor", function() {
|
||||
it('has Memory constructor', function() {
|
||||
expect(Filer.FileSystem.providers.Memory).to.be.a('function');
|
||||
});
|
||||
|
||||
it("has a Default constructor", function() {
|
||||
it('has a Default constructor', function() {
|
||||
expect(Filer.FileSystem.providers.Default).to.be.a('function');
|
||||
});
|
||||
|
||||
it("has Fallback constructor", function() {
|
||||
it('has Fallback constructor', function() {
|
||||
expect(Filer.FileSystem.providers.Fallback).to.be.a('function');
|
||||
});
|
||||
});
|
||||
|
|
|
@ -16,7 +16,7 @@ describe('FileSystemShell.cat', function() {
|
|||
|
||||
shell.cat(null, function(error, data) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EINVAL");
|
||||
expect(error.code).to.equal('EINVAL');
|
||||
expect(data).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -25,7 +25,7 @@ describe('FileSystemShell.cat', function() {
|
|||
it('should return the contents of a single file', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var contents = "file contents";
|
||||
var contents = 'file contents';
|
||||
|
||||
fs.writeFile('/file', contents, function(err) {
|
||||
if(err) throw err;
|
||||
|
@ -41,7 +41,7 @@ describe('FileSystemShell.cat', function() {
|
|||
it('should return the contents of multiple files', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var contents = "file contents";
|
||||
var contents = 'file contents';
|
||||
var contents2 = contents + '\n' + contents;
|
||||
|
||||
fs.writeFile('/file', contents, function(err) {
|
||||
|
@ -62,7 +62,7 @@ describe('FileSystemShell.cat', function() {
|
|||
it('should fail if any of multiple file paths is invalid', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var contents = "file contents";
|
||||
var contents = 'file contents';
|
||||
var contents2 = contents + '\n' + contents;
|
||||
|
||||
fs.writeFile('/file', contents, function(err) {
|
||||
|
@ -73,7 +73,7 @@ describe('FileSystemShell.cat', function() {
|
|||
|
||||
shell.cat(['/file', '/nofile'], function(err, data) {
|
||||
expect(err).to.exist;
|
||||
expect(err.code).to.equal("ENOENT");
|
||||
expect(err.code).to.equal('ENOENT');
|
||||
expect(data).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -37,7 +37,7 @@ describe('FileSystemShell.env', function() {
|
|||
|
||||
shell.cat(null, function(error, list) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EINVAL");
|
||||
expect(error.code).to.equal('EINVAL');
|
||||
expect(list).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -13,12 +13,12 @@ describe('FileSystemShell.exec', function() {
|
|||
it('should be able to execute a command .js file from the filesystem', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var cmdString = "fs.writeFile(args[0], args[1], callback);";
|
||||
var cmdString = 'fs.writeFile(args[0], args[1], callback);';
|
||||
|
||||
fs.writeFile('/cmd.js', cmdString, function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
shell.exec('/cmd.js', ['/test', 'hello world'], function(error, result) {
|
||||
shell.exec('/cmd.js', ['/test', 'hello world'], function(error) {
|
||||
if(error) throw error;
|
||||
|
||||
fs.readFile('/test', 'utf8', function(error, data) {
|
||||
|
|
|
@ -16,7 +16,7 @@ describe('FileSystemShell.ls', function() {
|
|||
|
||||
shell.cat(null, function(error, list) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EINVAL");
|
||||
expect(error.code).to.equal('EINVAL');
|
||||
expect(list).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -25,8 +25,8 @@ describe('FileSystemShell.ls', function() {
|
|||
it('should return the contents of a simple dir', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var contents = "a";
|
||||
var contents2 = "bb";
|
||||
var contents = 'a';
|
||||
var contents2 = 'bb';
|
||||
|
||||
fs.writeFile('/file', contents, function(err) {
|
||||
if(err) throw err;
|
||||
|
@ -63,7 +63,7 @@ describe('FileSystemShell.ls', function() {
|
|||
it('should return the shallow contents of a dir tree', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var contents = "a";
|
||||
var contents = 'a';
|
||||
|
||||
fs.mkdir('/dir', function(err) {
|
||||
if(err) throw err;
|
||||
|
@ -119,7 +119,7 @@ describe('FileSystemShell.ls', function() {
|
|||
it('should return the deep contents of a dir tree', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var contents = "a";
|
||||
var contents = 'a';
|
||||
|
||||
fs.mkdir('/dir', function(err) {
|
||||
if(err) throw err;
|
||||
|
|
|
@ -16,7 +16,7 @@ describe('FileSystemShell.rm', function() {
|
|||
|
||||
shell.rm(null, function(error, list) {
|
||||
expect(error).to.exist;
|
||||
expect(error.code).to.equal("EINVAL");
|
||||
expect(error.code).to.equal('EINVAL');
|
||||
expect(list).not.to.exist;
|
||||
done();
|
||||
});
|
||||
|
@ -25,7 +25,7 @@ describe('FileSystemShell.rm', function() {
|
|||
it('should remove a single file', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var contents = "a";
|
||||
var contents = 'a';
|
||||
|
||||
fs.writeFile('/file', contents, function(err) {
|
||||
if(err) throw err;
|
||||
|
@ -106,7 +106,7 @@ describe('FileSystemShell.rm', function() {
|
|||
it('should work on a complex dir structure', function(done) {
|
||||
var fs = util.fs();
|
||||
var shell = new fs.Shell();
|
||||
var contents = "a";
|
||||
var contents = 'a';
|
||||
|
||||
fs.mkdir('/dir', function(err) {
|
||||
if(err) throw err;
|
||||
|
|
|
@ -41,6 +41,7 @@ describe('FileSystemShell.touch', function() {
|
|||
|
||||
fs.stat('/newfile', function(error, stats) {
|
||||
expect(error).to.exist;
|
||||
expect(stats).not.to.exist;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,12 +4,12 @@ var expect = require('chai').expect;
|
|||
|
||||
describe('node times (atime, mtime, ctime) with mount flags', function() {
|
||||
|
||||
var dirname = "/dir";
|
||||
var filename = "/dir/file";
|
||||
var dirname = '/dir';
|
||||
var filename = '/dir/file';
|
||||
|
||||
function memoryFS(flags, callback) {
|
||||
var name = util.uniqueName();
|
||||
var fs = new Filer.FileSystem({
|
||||
return new Filer.FileSystem({
|
||||
name: name,
|
||||
flags: flags || [],
|
||||
provider: new Filer.FileSystem.providers.Memory(name)
|
||||
|
|
|
@ -6,8 +6,8 @@ describe('node times (atime, mtime, ctime)', function() {
|
|||
beforeEach(util.setup);
|
||||
afterEach(util.cleanup);
|
||||
|
||||
var dirname = "/dir";
|
||||
var filename = "/dir/file";
|
||||
var dirname = '/dir';
|
||||
var filename = '/dir/file';
|
||||
|
||||
function createTree(callback) {
|
||||
var fs = util.fs();
|
||||
|
@ -287,7 +287,7 @@ describe('node times (atime, mtime, ctime)', function() {
|
|||
});
|
||||
|
||||
it('should update ctime, atime, mtime of parent dir when calling fs.mkdir()', function(done) {
|
||||
var fs = util.fs();
|
||||
var fs = util.fs();
|
||||
|
||||
createTree(function() {
|
||||
stat('/', function(stats1) {
|
||||
|
@ -364,6 +364,7 @@ describe('node times (atime, mtime, ctime)', function() {
|
|||
stat('/myfile', function(stats1) {
|
||||
fs.write(fd, buffer, 0, buffer.length, 0, function(error, nbytes) {
|
||||
if(error) throw error;
|
||||
expect(nbytes).to.equal(buffer.length);
|
||||
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -391,6 +392,7 @@ describe('node times (atime, mtime, ctime)', function() {
|
|||
|
||||
fs.write(fd, buffer, 0, buffer.length, 0, function(err, nbytes) {
|
||||
if(err) throw err;
|
||||
expect(nbytes).to.equal(buffer.length);
|
||||
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -402,6 +404,8 @@ describe('node times (atime, mtime, ctime)', function() {
|
|||
var buffer2 = new Filer.Buffer(buffer.length);
|
||||
buffer2.fill(0);
|
||||
fs.read(fd, buffer2, 0, buffer2.length, 0, function(err, nbytes) {
|
||||
if(err) throw err;
|
||||
expect(nbytes).to.equal(buffer2.length);
|
||||
|
||||
fs.close(fd, function(error) {
|
||||
if(error) throw error;
|
||||
|
@ -429,6 +433,7 @@ describe('node times (atime, mtime, ctime)', function() {
|
|||
stat(filename, function(stats1) {
|
||||
fs.readFile(filename, function(error, data) {
|
||||
if(error) throw error;
|
||||
expect(data).to.exist;
|
||||
|
||||
stat(filename, function(stats2) {
|
||||
expect(stats2.ctime).to.equal(stats1.ctime);
|
||||
|
@ -531,6 +536,7 @@ describe('node times (atime, mtime, ctime)', function() {
|
|||
stat(filename, function(stats1) {
|
||||
fs.getxattr(filename, 'extra', function(error, value) {
|
||||
if(error) throw error;
|
||||
expect(value).to.equal('data');
|
||||
|
||||
stat(filename, function(stats2) {
|
||||
expect(stats2.ctime).to.equal(stats1.ctime);
|
||||
|
@ -557,6 +563,7 @@ describe('node times (atime, mtime, ctime)', function() {
|
|||
stat(filename, function(stats1) {
|
||||
fs.fgetxattr(fd, 'extra', function(error, value) {
|
||||
if(error) throw error;
|
||||
expect(value).to.equal('data');
|
||||
|
||||
stat(filename, function(stats2) {
|
||||
expect(stats2.ctime).to.equal(stats1.ctime);
|
||||
|
|
Loading…
Reference in New Issue