From 52d7971dc53aeba02a55dfad64ac79e90a92cbec Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Sun, 4 May 2014 08:45:22 +0200 Subject: [PATCH] Test xhr request --- src/scripts/lib/request.js | 19 +++++++++++++++++++ tests/scripts/lib/request.js | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/scripts/lib/request.js create mode 100644 tests/scripts/lib/request.js diff --git a/src/scripts/lib/request.js b/src/scripts/lib/request.js new file mode 100644 index 0000000..be729eb --- /dev/null +++ b/src/scripts/lib/request.js @@ -0,0 +1,19 @@ +module.exports = function(location, callback) { + var request = new XMLHttpRequest() + + request.onreadystatechange = function() { + if (request.readyState === 4) { + if (request.status === 200) { + callback(request.responseText, request) + } + else { + callback(null, request) + } + } + } + + request.open("GET", location + (!/[?&]/.test(location) ? "?": "&") + (new Date().getTime()), true) + request.setRequestHeader("X-Requested-With", "XMLHttpRequest") + request.send(null) + return request +} diff --git a/tests/scripts/lib/request.js b/tests/scripts/lib/request.js new file mode 100644 index 0000000..87d9020 --- /dev/null +++ b/tests/scripts/lib/request.js @@ -0,0 +1,16 @@ +var tape = require("tape") + +var request = require("../../../src/scripts/lib/request.js") + +tape("test xhr request", function(t) { + var xhr = request("https://api.github.com/", function(result) { + try { + result = JSON.parse(result) + } + catch (e) { + t.fail("xhr doesn't get a JSON response") + } + t.same(typeof result, "object", "xhr request get a result") + t.end() + }) +})