| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | // These tests are taken from http-browserify to ensure compatibility with// that modulevar test = require('tape')var url = require('url')var location = 'http://localhost:8081/foo/123'var noop = function() {}global.location = url.parse(location)global.XMLHttpRequest = function() {	this.open = noop	this.send = noop	this.withCredentials = false}var moduleName = require.resolve('../../')delete require.cache[moduleName]var http = require('../../')test('Make sure http object has correct properties', function (t) {	t.ok(http.Agent, 'Agent defined')	t.ok(http.ClientRequest, 'ClientRequest defined')	t.ok(http.ClientRequest.prototype, 'ClientRequest.prototype defined')	t.ok(http.IncomingMessage, 'IncomingMessage defined')	t.ok(http.IncomingMessage.prototype, 'IncomingMessage.prototype defined')	t.ok(http.METHODS, 'METHODS defined')	t.ok(http.STATUS_CODES, 'STATUS_CODES defined')	t.ok(http.get, 'get defined')	t.ok(http.globalAgent, 'globalAgent defined')	t.ok(http.request, 'request defined')	t.end()})test('Test simple url string', function(t) {	var testUrl = { path: '/api/foo' }	var request = http.get(testUrl, noop)	var resolved = url.resolve(location, request._opts.url)	t.equal(resolved, 'http://localhost:8081/api/foo', 'Url should be correct')	t.end()})test('Test full url object', function(t) {	var testUrl = {		host: "localhost:8081",		hostname: "localhost",		href: "http://localhost:8081/api/foo?bar=baz",		method: "GET",		path: "/api/foo?bar=baz",		pathname: "/api/foo",		port: "8081",		protocol: "http:",		query: "bar=baz",		search: "?bar=baz",		slashes: true	}	var request = http.get(testUrl, noop)	var resolved = url.resolve(location, request._opts.url)	t.equal(resolved, 'http://localhost:8081/api/foo?bar=baz', 'Url should be correct')	t.end()})test('Test alt protocol', function(t) {	var params = {		protocol: "foo:",		hostname: "localhost",		port: "3000",		path: "/bar"	}	var request = http.get(params, noop)	var resolved = url.resolve(location, request._opts.url)	t.equal(resolved, 'foo://localhost:3000/bar', 'Url should be correct')	t.end()})test('Test page with \'file:\' protocol', function (t) {	var params = {		hostname: 'localhost',		port: 3000,		path: '/bar'	}	var fileLocation = 'file:///home/me/stuff/index.html'	var normalLocation = global.location	global.location = url.parse(fileLocation) // Temporarily change the location	var request = http.get(params, noop)	global.location = normalLocation // Reset the location	var resolved = url.resolve(fileLocation, request._opts.url)	t.equal(resolved, 'http://localhost:3000/bar', 'Url should be correct')	t.end()})test('Test string as parameters', function(t) {	var testUrl = '/api/foo'	var request = http.get(testUrl, noop)	var resolved = url.resolve(location, request._opts.url)	t.equal(resolved, 'http://localhost:8081/api/foo', 'Url should be correct')	t.end()})test('Test withCredentials param', function(t) {	var url = '/api/foo'	var request = http.get({ url: url, withCredentials: false }, noop)	t.equal(request._xhr.withCredentials, false, 'xhr.withCredentials should be false')	var request = http.get({ url: url, withCredentials: true }, noop)	t.equal(request._xhr.withCredentials, true, 'xhr.withCredentials should be true')	var request = http.get({ url: url }, noop)	t.equal(request._xhr.withCredentials, false, 'xhr.withCredentials should be false')	t.end()})test('Test ipv6 address', function(t) {	var testUrl = 'http://[::1]:80/foo'	var request = http.get(testUrl, noop)	var resolved = url.resolve(location, request._opts.url)	t.equal(resolved, 'http://[::1]:80/foo', 'Url should be correct')	t.end()})test('Test relative path in url', function(t) {	var params = { path: './bar' }	var request = http.get(params, noop)	var resolved = url.resolve(location, request._opts.url)	t.equal(resolved, 'http://localhost:8081/foo/bar', 'Url should be correct')	t.end()})test('Cleanup', function (t) {	delete global.location	delete global.XMLHttpRequest	delete require.cache[moduleName]	t.end()})
 |