diff --git a/lib/UnexpectedMitmMocker.js b/lib/UnexpectedMitmMocker.js index 1b595df..88ce481 100644 --- a/lib/UnexpectedMitmMocker.js +++ b/lib/UnexpectedMitmMocker.js @@ -17,8 +17,6 @@ var trimHeadersLower = require('./trimHeadersLower'); var expect = unexpected.clone().use(unexpectedMessy); -var isNodeZeroTen = !!process.version.match(/v0.10/); - function calculateBodyByteCount(chunk) { var trailerIdx = findHeaderSeparator(chunk); if (trailerIdx !== -1) { @@ -306,15 +304,6 @@ UnexpectedMitmMocker.prototype.mock = function mock(consumptionFunction) { this.push(result.body.shift() || null); }; - if (isNodeZeroTen) { - /* - * As is mentioned in the streams documentation this - * call can be issued to kick some of the machinery - * and is apparently done within the standard lib. - */ - req.read(0); - } - // call response function inside a promise to catch exceptions return Promise.resolve().then(function () { responseProperties(req, res); diff --git a/lib/unexpectedMitm.js b/lib/unexpectedMitm.js index b732c58..5a8a0cb 100644 --- a/lib/unexpectedMitm.js +++ b/lib/unexpectedMitm.js @@ -16,29 +16,6 @@ var messy = require('messy'), var UnexpectedMitmMocker = require('./UnexpectedMitmMocker'); -// fallback to an inlined version of 0.12+ path.isAbsolute() for 0.10 compat -var pathIsAbsolute = path.isAbsolute || function (path) { - var len = path.length; - if (len === 0) { - return false; - } - var code = path.charCodeAt(0); - if (code === 47/*/*/ || code === 92/*\*/) { - return true; - } else if ((code >= 65/*A*/ && code <= 90/*Z*/) || - (code >= 97/*a*/ && code <= 122/*z*/)) { - // Possible device root - - if (len > 2 && path.charCodeAt(1) === 58/*:*/) { - code = path.charCodeAt(2); - if (code === 47/*/*/ || code === 92/*\*/) { - return true; - } - } - } - return false; -}; - function checkEnvFlag(varName) { return process.env[varName] === 'true'; } @@ -535,7 +512,7 @@ module.exports = { var shouldReturnExtraInfo = expect.flags['with extra info']; var writeCallsite = determineCallsite(callsite()); - if (!pathIsAbsolute(testFile)) { + if (!path.isAbsolute(testFile)) { testFile = path.join(path.dirname(writeCallsite.fileName), testFile); } diff --git a/test/unexpectedMitm.js b/test/unexpectedMitm.js index 33107aa..a037253 100644 --- a/test/unexpectedMitm.js +++ b/test/unexpectedMitm.js @@ -11,8 +11,6 @@ var pathModule = require('path'), sinon = require('sinon'), socketErrors = require('socketerrors-papandreou'); -var isNodeZeroTen = !!process.version.match(/v0.10/); - function issueGetAndConsume(url, callback) { http.get(url).on('response', function (response) { var chunks = []; @@ -183,11 +181,6 @@ describe('unexpectedMitm', function () { it('should clean up properly after a keep-alived request with a custom Agent instance', function () { - if (isNodeZeroTen) { - // Seems like mitm doesn't support custom Agent instances with node.js 0.10 - return this.skip(); - } - var agent = new http.Agent({keepAlive: true}); return expect(function () { return expect.promise(function (run) { @@ -1625,31 +1618,31 @@ describe('unexpectedMitm', function () { describe('in injecting mode against a local HTTP server', function () { it('should record and inject', function () { - return expect('testfile', 'when injected becomes', isNodeZeroTen ? 'testfile-injected-v0_10' : 'testfile-injected'); + return expect('testfile', 'when injected becomes', 'testfile-injected'); }); it('should record and inject textual injections', function () { - return expect('utf8file', 'when injected becomes', isNodeZeroTen ? 'utf8file-injected-v0_10' : 'utf8file-injected'); + return expect('utf8file', 'when injected becomes', 'utf8file-injected'); }); it('should record and inject into a compound assertion', function () { - return expect('compound', 'when injected becomes', isNodeZeroTen ? 'compound-injected-v0_10' : 'compound-injected'); + return expect('compound', 'when injected becomes', 'compound-injected'); }); it('should correctly handle buffer injections', function () { - return expect('bufferfile', 'when injected becomes', isNodeZeroTen ? 'bufferfile-injected-v0_10' : 'bufferfile-injected'); + return expect('bufferfile', 'when injected becomes', 'bufferfile-injected'); }); it('should correctly handle long buffer injections (>32 octets should be base64 encoded)', function () { - return expect('longbufferfile', 'when injected becomes', isNodeZeroTen ? 'longbufferfile-injected-v0_10' : 'longbufferfile-injected'); + return expect('longbufferfile', 'when injected becomes', 'longbufferfile-injected'); }); it('should correctly handle error injections', function () { - return expect('errorfile', 'when injected becomes', isNodeZeroTen ? 'errorfile-injected-v0_10' : 'errorfile-injected'); + return expect('errorfile', 'when injected becomes', 'errorfile-injected'); }); it('should correctly handle multiple injections', function () { - return expect('multiplefile', 'when injected becomes', isNodeZeroTen ? 'multiplefile-injected-v0_10' : 'multiplefile-injected'); + return expect('multiplefile', 'when injected becomes', 'multiplefile-injected'); }); }); diff --git a/testdata/bufferfile-injected-v0_10.js b/testdata/bufferfile-injected-v0_10.js deleted file mode 100644 index e78894a..0000000 --- a/testdata/bufferfile-injected-v0_10.js +++ /dev/null @@ -1,44 +0,0 @@ -/*global describe, it, beforeEach, afterEach*/ -var http = require('http'); -var expect = require('unexpected'); - -describe('example with http recorded and injected file', function () { - expect = expect.clone() - .use(require('../lib/unexpectedMitm')) - .use(require('unexpected-http')); - - var handleRequest, - server, - serverAddress, - serverHostname, - serverUrl; - beforeEach(function () { - handleRequest = undefined; - server = http.createServer(function (req, res) { - res.sendDate = false; - handleRequest(req, res); - }).listen(59891); - serverAddress = server.address(); - serverHostname = serverAddress.address === '::' ? 'localhost' : serverAddress.address; - serverUrl = 'http://' + serverHostname + ':' + serverAddress.port + '/'; - }); - - afterEach(function () { - server.close(); - }); - - it('should record a buffer', function () { - handleRequest = function (req, res) { - res.end(new Buffer([71, 75, 75, 78])); - }; - return expect({ - url: 'GET ' + serverUrl - }, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: { body: new Buffer([0x47, 0x4B, 0x4B, 0x4E]) } - }, 'to yield response', 200); - }); -}); diff --git a/testdata/compound-injected-v0_10.js b/testdata/compound-injected-v0_10.js deleted file mode 100644 index 83ed128..0000000 --- a/testdata/compound-injected-v0_10.js +++ /dev/null @@ -1,45 +0,0 @@ -/*global describe, it, beforeEach, afterEach*/ -var http = require('http'); -var expect = require('unexpected'); - -describe('example with http recorded and injected file', function () { - expect = expect.clone() - .use(require('../lib/unexpectedMitm')) - .use(require('unexpected-http')); - - var handleRequest, - server, - serverAddress, - serverHostname, - serverUrl; - beforeEach(function () { - handleRequest = undefined; - server = http.createServer(function (req, res) { - res.sendDate = false; - handleRequest(req, res); - }).listen(59891); - serverAddress = server.address(); - serverHostname = serverAddress.address === '::' ? 'localhost' : serverAddress.address; - serverUrl = 'http://' + serverHostname + ':' + serverAddress.port + '/'; - }); - - afterEach(function () { - server.close(); - }); - - it('should record', function () { - handleRequest = function (req, res) { - res.statusCode = 405; - res.end(); - }; - return expect({ - url: 'GET ' + serverUrl - }, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: 405 - }, 'to yield response', 405); - }); -}); diff --git a/testdata/errorfile-injected-v0_10.js b/testdata/errorfile-injected-v0_10.js deleted file mode 100644 index 3022f02..0000000 --- a/testdata/errorfile-injected-v0_10.js +++ /dev/null @@ -1,47 +0,0 @@ -/*global describe, it, beforeEach, afterEach*/ -var http = require('http'); -var expect = require('unexpected'); - -describe('example with http recorded and injected file', function () { - expect = expect.clone() - .use(require('../lib/unexpectedMitm')) - .use(require('unexpected-http')); - - var handleRequest, - server, - serverAddress, - serverHostname, - serverUrl; - beforeEach(function () { - handleRequest = undefined; - server = http.createServer(function (req, res) { - handleRequest(req, res); - }).listen(59891); - serverAddress = server.address(); - serverHostname = serverAddress.address === '::' ? 'localhost' : serverAddress.address; - serverUrl = 'http://' + serverHostname + ':' + serverAddress.port + '/'; - }); - - afterEach(function () { - server.close(); - }); - - it('should record', function () { - handleRequest = function (req, res) { - res.destroy(); - }; - - var expectedError = new Error('socket hang up'); - expectedError.code = 'ECONNRESET'; - - return expect({ - url: 'GET ' + serverUrl - }, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: (function () {var err = new Error('socket hang up'); err.code = 'ECONNRESET'; return err;}()) - }, 'to yield response', expectedError); - }); -}); diff --git a/testdata/longbufferfile-injected-v0_10.js b/testdata/longbufferfile-injected-v0_10.js deleted file mode 100644 index 342f97d..0000000 --- a/testdata/longbufferfile-injected-v0_10.js +++ /dev/null @@ -1,45 +0,0 @@ -/*global describe, it, beforeEach, afterEach*/ -var http = require('http'); -var expect = require('unexpected'); - -describe('example with http recorded and injected file', function () { - expect = expect.clone() - .use(require('../lib/unexpectedMitm')) - .use(require('unexpected-http')); - - var handleRequest, - server, - serverAddress, - serverHostname, - serverUrl; - beforeEach(function () { - handleRequest = undefined; - server = http.createServer(function (req, res) { - res.sendDate = false; - handleRequest(req, res); - }).listen(59891); - serverAddress = server.address(); - serverHostname = serverAddress.address === '::' ? 'localhost' : serverAddress.address; - serverUrl = 'http://' + serverHostname + ':' + serverAddress.port + '/'; - }); - - afterEach(function () { - server.close(); - }); - - it('should record a buffer', function () { - handleRequest = function (req, res) { - res.end(new Buffer([0, 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])); - }; - return expect({ - url: 'GET ' + serverUrl - }, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: { body: new Buffer('AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8g', 'base64') } - }, 'to yield response', 200); - }); -}); diff --git a/testdata/multiplefile-injected-v0_10.js b/testdata/multiplefile-injected-v0_10.js deleted file mode 100644 index a235695..0000000 --- a/testdata/multiplefile-injected-v0_10.js +++ /dev/null @@ -1,75 +0,0 @@ -/*global describe, it, beforeEach, afterEach*/ -var http = require('http'); -var expect = require('unexpected'); - -describe('example with http recorded and injected file', function () { - expect = expect.clone() - .use(require('../lib/unexpectedMitm')) - .use(require('unexpected-http')); - - var handleRequest, - server, - serverAddress, - serverHostname, - serverUrl; - beforeEach(function () { - handleRequest = undefined; - server = http.createServer(function (req, res) { - res.sendDate = false; - handleRequest(req, res); - }).listen(59891); - serverAddress = server.address(); - serverHostname = serverAddress.address === '::' ? 'localhost' : serverAddress.address; - serverUrl = 'http://' + serverHostname + ':' + serverAddress.port + '/'; - }); - - afterEach(function () { - server.close(); - }); - - it('should record a 405', function () { - handleRequest = function (req, res) { - res.statusCode = 405; - res.end(); - }; - return expect({ - url: 'GET ' + serverUrl - }, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: 405 - }, 'to yield response', 405); - }); - - it('should record a 406', function () { - handleRequest = function (req, res) { - res.statusCode = 406; - res.end(); - }; - return expect({ - url: 'GET ' + serverUrl - }, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: 406 - }, 'to yield response', 406); - }); - - it('should record a 407', function () { - handleRequest = function (req, res) { - res.statusCode = 407; - res.end(); - }; - return expect('GET ' + serverUrl, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: 407 - }, 'to yield response', 407); - }); -}); diff --git a/testdata/testfile-injected-v0_10.js b/testdata/testfile-injected-v0_10.js deleted file mode 100644 index 83ed128..0000000 --- a/testdata/testfile-injected-v0_10.js +++ /dev/null @@ -1,45 +0,0 @@ -/*global describe, it, beforeEach, afterEach*/ -var http = require('http'); -var expect = require('unexpected'); - -describe('example with http recorded and injected file', function () { - expect = expect.clone() - .use(require('../lib/unexpectedMitm')) - .use(require('unexpected-http')); - - var handleRequest, - server, - serverAddress, - serverHostname, - serverUrl; - beforeEach(function () { - handleRequest = undefined; - server = http.createServer(function (req, res) { - res.sendDate = false; - handleRequest(req, res); - }).listen(59891); - serverAddress = server.address(); - serverHostname = serverAddress.address === '::' ? 'localhost' : serverAddress.address; - serverUrl = 'http://' + serverHostname + ':' + serverAddress.port + '/'; - }); - - afterEach(function () { - server.close(); - }); - - it('should record', function () { - handleRequest = function (req, res) { - res.statusCode = 405; - res.end(); - }; - return expect({ - url: 'GET ' + serverUrl - }, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: 405 - }, 'to yield response', 405); - }); -}); diff --git a/testdata/utf8file-injected-v0_10.js b/testdata/utf8file-injected-v0_10.js deleted file mode 100644 index 34f11c3..0000000 --- a/testdata/utf8file-injected-v0_10.js +++ /dev/null @@ -1,45 +0,0 @@ -/*global describe, it, beforeEach, afterEach*/ -var http = require('http'); -var expect = require('unexpected'); - -describe('example with http recorded and injected file', function () { - expect = expect.clone() - .use(require('../lib/unexpectedMitm')) - .use(require('unexpected-http')); - - var handleRequest, - server, - serverAddress, - serverHostname, - serverUrl; - beforeEach(function () { - handleRequest = undefined; - server = http.createServer(function (req, res) { - res.sendDate = false; - handleRequest(req, res); - }).listen(59891); - serverAddress = server.address(); - serverHostname = serverAddress.address === '::' ? 'localhost' : serverAddress.address; - serverUrl = 'http://' + serverHostname + ':' + serverAddress.port + '/'; - }); - - afterEach(function () { - server.close(); - }); - - it('should record', function () { - handleRequest = function (req, res) { - res.setHeader('Content-Type', 'text/plain'); - res.end('quux & xuuq'); - }; - return expect({ - url: 'GET ' + serverUrl - }, 'with http mocked out', { - request: { - url: 'GET /', headers: { Host: '0.0.0.0:59891' }, host: '0.0.0.0', - port: 59891 - }, - response: { headers: { 'Content-Type': 'text/plain' }, body: 'quux & xuuq' } - }, 'to yield response', 200); - }); -});