aboutsummaryrefslogtreecommitdiffstats
path: root/web/nms.gathering.org/speedometer/d3-master/test/XMLHttpRequest.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/nms.gathering.org/speedometer/d3-master/test/XMLHttpRequest.js')
-rw-r--r--web/nms.gathering.org/speedometer/d3-master/test/XMLHttpRequest.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/web/nms.gathering.org/speedometer/d3-master/test/XMLHttpRequest.js b/web/nms.gathering.org/speedometer/d3-master/test/XMLHttpRequest.js
new file mode 100644
index 0000000..21ee574
--- /dev/null
+++ b/web/nms.gathering.org/speedometer/d3-master/test/XMLHttpRequest.js
@@ -0,0 +1,60 @@
+var fs = require("fs");
+
+global.XMLHttpRequest = function XMLHttpRequest() {
+ var self = this,
+ info = self._info = {},
+ headers = {},
+ url;
+
+ // TODO handle file system errors?
+
+self.readyState = 0;
+
+ self.open = function(m, u, a) {
+ info.url = u;
+ info.async = a;
+ self.readyState = 1;
+ self.send = a ? read : readSync;
+ };
+
+ self.setRequestHeader = function(n, v) {
+ if (/^Accept$/i.test(n)) info.mimeType = v.split(/,/g)[0];
+ };
+
+ function read() {
+ self.readyState = 2;
+ fs.readFile(info.url, "binary", function(e, d) {
+ if (e) {
+ self.status = 404; // assumed
+ } else {
+ self.status = 200;
+ self.responseText = d;
+ self.responseXML = {_xml: d};
+ headers["Content-Length"] = d.length;
+ }
+ self.readyState = 4;
+ XMLHttpRequest._last = self;
+ if (self.onreadystatechange) self.onreadystatechange();
+ });
+ }
+
+ function readSync() {
+ self.readyState = 2;
+ try {
+ var d = fs.readFileSync(info.url, "binary");
+ self.status = 200;
+ self.responseText = d;
+ self.responseXML = {_xml: d};
+ headers["Content-Length"] = d.length;
+ } catch (e) {
+ self.status = 404; // assumed
+ }
+ self.readyState = 4;
+ XMLHttpRequest._last = self;
+ if (self.onreadystatechange) self.onreadystatechange();
+ }
+
+ self.getResponseHeader = function(n) {
+ return headers[n];
+ };
+};