UNPKG

node-smb-server

Version:

A Pure JavaScript SMB Server Implementation

102 lines (86 loc) 3.23 kB
/* * Copyright 2016 Adobe Systems Incorporated. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ var testfs = require('./test-fs'); var testDatastore = require('./test-nedb'); var testMkdirp = require('./test-mkdirp'); var testRequest = require('./test-request'); var testHttp = require('./test-http'); var testSocketIO = require('./test-socketio'); var testExpress = require('./test-express'); var testBodyParser = require('./test-body-parser'); var testArchiver = require('./test-archiver'); var globalfs = new testfs(); var globalMkdirp = new testMkdirp(globalfs); var globalHttp = new testHttp(); var globalSocketIO = new testSocketIO(); var globalExpress = new testExpress(); var globalBodyParser = new testBodyParser(); var globalArchiver = new testArchiver(); globalfs['@global'] = true; testRequest.request['@global'] = true; testDatastore['@global'] = true; globalMkdirp.mkdirp['@global'] = true; testHttp['@global'] = true; globalSocketIO.create['@global'] = true; globalExpress.create['@global'] = true; globalExpress.create['static'] = globalExpress.static; globalBodyParser['@global'] = true; globalArchiver.archive['@global'] = true; var proxyquire = require('proxyquire').noCallThru(); var events = require('events').EventEmitter; var Path = require('path'); // force paths to use forward slashes for compatibility Path.sep = '/'; Path.join2 = Path.join; Path.join = function () { var res = Path.join2.apply({}, arguments); return res.replace(/\\/g, Path.sep); }; spyOn(globalfs, 'createReadStream').andCallThrough(); spyOn(globalfs, 'createWriteStream').andCallThrough(); spyOn(globalfs, 'writeFileSync').andCallThrough(); spyOn(globalfs, 'unlinkSync').andCallThrough(); spyOn(globalfs, 'statSync').andCallThrough(); function TestCommon() { var self = this; globalfs.clearAll(); testRequest.clearAll(); self.fs = globalfs; self.request = testRequest; self.setPipeDelay = function (delayFunc) { self.fs.setPipeDelay(delayFunc); }; } TestCommon.require = function (dirname, name) { return proxyquire(Path.join(dirname, name), { 'request': testRequest.request, 'requestretry': testRequest.request, 'fs': globalfs, 'mkdirp': globalMkdirp.mkdirp, 'nedb': testDatastore, 'socket.io': globalSocketIO.create, 'http': globalHttp, 'express': globalExpress.create, 'body-parser': globalBodyParser, 'archiver': globalArchiver.archive }); }; TestCommon.runSync = function () { var asyncFunc = arguments.pop(); var sync = true; asyncFunc.apply(null, arguments, function () { sync = false; }); while(sync) {require('deasync').sleep(100);} return true; }; module.exports = TestCommon;