Simulator first commit

This commit is contained in:
2019-09-18 11:11:16 +03:00
commit 6e1686be67
5028 changed files with 985331 additions and 0 deletions

View File

@ -0,0 +1,13 @@
var sys = require("util")
, assert = require("assert")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, xhr = new XMLHttpRequest();
// Test constant values
assert.equal(0, xhr.UNSENT);
assert.equal(1, xhr.OPENED);
assert.equal(2, xhr.HEADERS_RECEIVED);
assert.equal(3, xhr.LOADING);
assert.equal(4, xhr.DONE);
sys.puts("done");

50
node_modules/xmlhttprequest-ssl/tests/test-events.js generated vendored Normal file
View File

@ -0,0 +1,50 @@
var sys = require("util")
, assert = require("assert")
, http = require("http")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, xhr;
// Test server
var server = http.createServer(function (req, res) {
var body = (req.method != "HEAD" ? "Hello World" : "");
res.writeHead(200, {
"Content-Type": "text/plain",
"Content-Length": Buffer.byteLength(body)
});
// HEAD has no body
if (req.method != "HEAD") {
res.write(body);
}
res.end();
assert.equal(onreadystatechange, true);
assert.equal(readystatechange, true);
assert.equal(removed, true);
sys.puts("done");
this.close();
}).listen(8000);
xhr = new XMLHttpRequest();
// Track event calls
var onreadystatechange = false;
var readystatechange = false;
var removed = true;
var removedEvent = function() {
removed = false;
};
xhr.onreadystatechange = function() {
onreadystatechange = true;
};
xhr.addEventListener("readystatechange", function() {
readystatechange = true;
});
// This isn't perfect, won't guarantee it was added in the first place
xhr.addEventListener("readystatechange", removedEvent);
xhr.removeEventListener("readystatechange", removedEvent);
xhr.open("GET", "http://localhost:8000");
xhr.send();

View File

@ -0,0 +1,59 @@
var sys = require("util")
, assert = require("assert")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, xhr = new XMLHttpRequest();
// Test request methods that aren't allowed
try {
xhr.open("TRACK", "http://localhost:8000/");
console.log("ERROR: TRACK should have thrown exception");
} catch(e) {}
try {
xhr.open("TRACE", "http://localhost:8000/");
console.log("ERROR: TRACE should have thrown exception");
} catch(e) {}
try {
xhr.open("CONNECT", "http://localhost:8000/");
console.log("ERROR: CONNECT should have thrown exception");
} catch(e) {}
// Test valid request method
try {
xhr.open("GET", "http://localhost:8000/");
} catch(e) {
console.log("ERROR: Invalid exception for GET", e);
}
// Test forbidden headers
var forbiddenRequestHeaders = [
"accept-charset",
"accept-encoding",
"access-control-request-headers",
"access-control-request-method",
"connection",
"content-length",
"content-transfer-encoding",
"cookie",
"cookie2",
"date",
"expect",
"host",
"keep-alive",
"origin",
"referer",
"te",
"trailer",
"transfer-encoding",
"upgrade",
"via"
];
for (var i in forbiddenRequestHeaders) {
if(xhr.setRequestHeader(forbiddenRequestHeaders[i], "Test") !== false) {
console.log("ERROR: " + forbiddenRequestHeaders[i] + " should have thrown exception");
}
}
// Try valid header
xhr.setRequestHeader("X-Foobar", "Test");
console.log("Done");

76
node_modules/xmlhttprequest-ssl/tests/test-headers.js generated vendored Normal file
View File

@ -0,0 +1,76 @@
var sys = require("util")
, assert = require("assert")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, xhr = new XMLHttpRequest()
, http = require("http");
// Test server
var server = http.createServer(function (req, res) {
// Test setRequestHeader
assert.equal("Foobar", req.headers["x-test"]);
// Test non-conforming allowed header
assert.equal("node-XMLHttpRequest-test", req.headers["user-agent"]);
// Test header set with blacklist disabled
assert.equal("http://github.com", req.headers["referer"]);
var body = "Hello World";
res.writeHead(200, {
"Content-Type": "text/plain",
"Content-Length": Buffer.byteLength(body),
// Set cookie headers to see if they're correctly suppressed
// Actual values don't matter
"Set-Cookie": "foo=bar",
"Set-Cookie2": "bar=baz",
"Date": "Thu, 30 Aug 2012 18:17:53 GMT",
"Connection": "close"
});
res.write("Hello World");
res.end();
this.close();
}).listen(8000);
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
// Test getAllResponseHeaders()
var headers = "content-type: text/plain\r\ncontent-length: 11\r\ndate: Thu, 30 Aug 2012 18:17:53 GMT\r\nconnection: close";
assert.equal(headers, this.getAllResponseHeaders());
// Test case insensitivity
assert.equal('text/plain', this.getResponseHeader('Content-Type'));
assert.equal('text/plain', this.getResponseHeader('Content-type'));
assert.equal('text/plain', this.getResponseHeader('content-Type'));
assert.equal('text/plain', this.getResponseHeader('content-type'));
// Test aborted getAllResponseHeaders
this.abort();
assert.equal("", this.getAllResponseHeaders());
assert.equal(null, this.getResponseHeader("Connection"));
sys.puts("done");
}
};
assert.equal(null, xhr.getResponseHeader("Content-Type"));
try {
xhr.open("GET", "http://localhost:8000/");
// Valid header
xhr.setRequestHeader("X-Test", "Foobar");
// Invalid header
xhr.setRequestHeader("Content-Length", 0);
// Allowed header outside of specs
xhr.setRequestHeader("user-agent", "node-XMLHttpRequest-test");
// Test getRequestHeader
assert.equal("Foobar", xhr.getRequestHeader("X-Test"));
// Test invalid header
assert.equal("", xhr.getRequestHeader("Content-Length"));
// Test allowing all headers
xhr.setDisableHeaderCheck(true);
xhr.setRequestHeader("Referer", "http://github.com");
assert.equal("http://github.com", xhr.getRequestHeader("Referer"));
xhr.send();
} catch(e) {
console.log("ERROR: Exception raised", e);
}

View File

@ -0,0 +1,41 @@
var sys = require("util")
, assert = require("assert")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, xhr = new XMLHttpRequest()
, http = require("http");
// Test server
var server = http.createServer(function (req, res) {
if (req.url === '/redirectingResource') {
res.writeHead(302, {'Location': 'http://localhost:8000/'});
res.end();
return;
}
var body = "Hello World";
res.writeHead(200, {
"Content-Type": "text/plain",
"Content-Length": Buffer.byteLength(body),
"Date": "Thu, 30 Aug 2012 18:17:53 GMT",
"Connection": "close"
});
res.write("Hello World");
res.end();
this.close();
}).listen(8000);
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
assert.equal(xhr.getRequestHeader('Location'), '');
assert.equal(xhr.responseText, "Hello World");
sys.puts("done");
}
};
try {
xhr.open("GET", "http://localhost:8000/redirectingResource");
xhr.send();
} catch(e) {
console.log("ERROR: Exception raised", e);
}

View File

@ -0,0 +1,41 @@
var sys = require("util")
, assert = require("assert")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, xhr = new XMLHttpRequest()
, http = require("http");
// Test server
var server = http.createServer(function (req, res) {
if (req.url === '/redirectingResource') {
res.writeHead(303, {'Location': 'http://localhost:8000/'});
res.end();
return;
}
var body = "Hello World";
res.writeHead(200, {
"Content-Type": "text/plain",
"Content-Length": Buffer.byteLength(body),
"Date": "Thu, 30 Aug 2012 18:17:53 GMT",
"Connection": "close"
});
res.write("Hello World");
res.end();
this.close();
}).listen(8000);
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
assert.equal(xhr.getRequestHeader('Location'), '');
assert.equal(xhr.responseText, "Hello World");
sys.puts("done");
}
};
try {
xhr.open("POST", "http://localhost:8000/redirectingResource");
xhr.send();
} catch(e) {
console.log("ERROR: Exception raised", e);
}

View File

@ -0,0 +1,43 @@
var sys = require("util")
, assert = require("assert")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, xhr = new XMLHttpRequest()
, http = require("http");
// Test server
var server = http.createServer(function (req, res) {
if (req.url === '/redirectingResource') {
res.writeHead(307, {'Location': 'http://localhost:8000/'});
res.end();
return;
}
assert.equal(req.method, 'POST');
var body = "Hello World";
res.writeHead(200, {
"Content-Type": "text/plain",
"Content-Length": Buffer.byteLength(body),
"Date": "Thu, 30 Aug 2012 18:17:53 GMT",
"Connection": "close"
});
res.write("Hello World");
res.end();
this.close();
}).listen(8000);
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
assert.equal(xhr.getRequestHeader('Location'), '');
assert.equal(xhr.responseText, "Hello World");
sys.puts("done");
}
};
try {
xhr.open("POST", "http://localhost:8000/redirectingResource");
xhr.send();
} catch(e) {
console.log("ERROR: Exception raised", e);
}

View File

@ -0,0 +1,62 @@
var sys = require("util")
, assert = require("assert")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, http = require("http")
, xhr;
// Test server
var server = http.createServer(function (req, res) {
// Check request method and URL
assert.equal(methods[curMethod], req.method);
assert.equal("/" + methods[curMethod], req.url);
var body = (req.method != "HEAD" ? "Hello World" : "");
res.writeHead(200, {
"Content-Type": "text/plain",
"Content-Length": Buffer.byteLength(body)
});
// HEAD has no body
if (req.method != "HEAD") {
res.write(body);
}
res.end();
if (curMethod == methods.length - 1) {
this.close();
sys.puts("done");
}
}).listen(8000);
// Test standard methods
var methods = ["GET", "POST", "HEAD", "PUT", "DELETE"];
var curMethod = 0;
function start(method) {
// Reset each time
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
if (method == "HEAD") {
assert.equal("", this.responseText);
} else {
assert.equal("Hello World", this.responseText);
}
curMethod++;
if (curMethod < methods.length) {
sys.puts("Testing " + methods[curMethod]);
start(methods[curMethod]);
}
}
};
var url = "http://localhost:8000/" + method;
xhr.open(method, url);
xhr.send();
}
sys.puts("Testing " + methods[curMethod]);
start(methods[curMethod]);

View File

@ -0,0 +1,32 @@
var sys = require("util")
, assert = require("assert")
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
, xhr;
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
assert.equal("Hello World", this.responseText);
runSync();
}
};
// Async
var url = "file://" + __dirname + "/testdata.txt";
xhr.open("GET", url);
xhr.send();
// Sync
var runSync = function() {
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
assert.equal("Hello World", this.responseText);
sys.puts("done");
}
};
xhr.open("GET", url, false);
xhr.send();
}

1
node_modules/xmlhttprequest-ssl/tests/testdata.txt generated vendored Normal file
View File

@ -0,0 +1 @@
Hello World