summaryrefslogtreecommitdiff
path: root/alarm/node_modules/node-forge/tests/xhr.js
diff options
context:
space:
mode:
Diffstat (limited to 'alarm/node_modules/node-forge/tests/xhr.js')
-rw-r--r--alarm/node_modules/node-forge/tests/xhr.js590
1 files changed, 0 insertions, 590 deletions
diff --git a/alarm/node_modules/node-forge/tests/xhr.js b/alarm/node_modules/node-forge/tests/xhr.js
deleted file mode 100644
index 78f91ad..0000000
--- a/alarm/node_modules/node-forge/tests/xhr.js
+++ /dev/null
@@ -1,590 +0,0 @@
-/**
- * Forge XmlHttpRequest Test
- *
- * @author Dave Longley
- * @author David I. Lehn <dlehn@digitalbazaar.com>
- *
- * Copyright (c) 2009-2010 Digital Bazaar, Inc. All rights reserved.
- */
-(function($)
-{
- // load flash socket pool
- window.forge.socketPool = {};
- window.forge.socketPool.ready = function()
- {
- // init forge xhr
- forge.xhr.init({
- flashId: 'socketPool',
- policyPort: 19945,
- msie: $.browser.msie,
- connections: 10,
- caCerts: [],
- verify: function(c, verified, depth, certs)
- {
- // don't care about cert verification for test
- return true;
- }
- });
- };
- swfobject.embedSWF(
- 'forge/SocketPool.swf', 'socketPool', '0', '0', '9.0.0',
- false, {}, {allowscriptaccess: 'always'}, {});
-})(jQuery);
-
-jQuery(function($)
-{
- var cat = 'forge.tests.xhr';
-
- var tests = [];
- var passed = 0;
- var failed = 0;
-
- var init = function() {
- passed = failed = 0;
- $('.ready,.testing,.pass,.fail')
- .removeClass('ready testing pass fail');
- $('#status')
- .text('Ready.')
- .addClass('ready');
- $('#total').text(tests.length);
- $('#pass').text(passed);
- $('#fail').text(failed);
- $('.expect').empty();
- $('.result').empty();
- $('.time').empty();
- $('.timePer').empty();
- $('#start').removeAttr('disabled');
- };
-
- var start = function()
- {
- $('#start').attr('disabled', 'disabled');
- // meta! use tasks to run the task tests
- forge.task.start({
- type: 'test',
- run: function(task) {
- task.next('starting', function(task) {
- forge.log.debug(cat, 'start');
- $('#status')
- .text('Testing...')
- .addClass('testing')
- .removeClass('idle');
- });
- $.each(tests, function(i, test) {
- task.next('test', function(task) {
- var title = $('li:first', test.container);
- if($('#scroll:checked').length === 1)
- {
- $('html,body').animate({scrollTop: title.offset().top});
- }
- title.addClass('testing');
- test.run(task, test);
- });
- task.next('test', function(task) {
- $('li:first', test.container).removeClass('testing');
- });
- });
- task.next('success', function(task) {
- forge.log.debug(cat, 'done');
- if(failed === 0) {
- $('#status')
- .text('PASS')
- .addClass('pass')
- .removeClass('testing');
- } else {
- // FIXME: should just be hitting failure() below
- $('#status')
- .text('FAIL')
- .addClass('fail')
- .removeClass('testing');
- }
- });
- },
- failure: function() {
- $('#status')
- .text('FAIL')
- .addClass('fail')
- .removeClass('testing');
- }
- });
- };
-
- $('#start').click(function() {
- start();
- });
-
- $('#reset').click(function() {
- init();
- });
-
- var stressStats =
- {
- sent: 0,
- success: 0,
- error: 0
- };
- var stressStatsMessage = function()
- {
- return 'received:' + (stressStats.success + stressStats.error) + '/' +
- stressStats.sent + ' errors:' + stressStats.error;
- };
-
- $('#stress').click(function() {
- for(var i = 1; i <= 100; ++i)
- {
- (function(seqnum)
- {
- setTimeout(function()
- {
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt?seq=' + seqnum,
- beforeSend: function(xhr)
- {
- ++stressStats.sent;
- xhr.setRequestHeader('Connection', 'close');
- },
- success: function(data, textStatus, xhr)
- {
- ++stressStats.success;
- forge.log.debug(cat, 'xhr connection completed' +
- ' seq:' + seqnum +
- ' datalen:' + data.length + ' ' +
- stressStatsMessage());
- },
- error: function(xhr, textStatus, errorThrown)
- {
- ++stressStats.error;
- forge.log.error(cat, 'xhr connection failed' +
- ' seq:' + seqnum + ' ' +
- stressStatsMessage(), arguments);
- },
- xhr: forge.xhr.create
- });
- }, 0);
- })(i);
- }
- return false;
- });
-
- /**
- * Creates a simple XMLHttpRequest wrapper. For testing.
- */
- var createWrapper = function()
- {
- var UNSENT = 0;
- var OPENED = 1;
- var HEADERS_RECEIVED = 2;
- var LOADING = 3;
- var DONE = 4;
-
- var toWrap = new XMLHttpRequest();
-
- // create xhr wrapper object
- var xhr =
- {
- // FIXME: an EventListener
- onreadystatechange: null,
- // FIXME: readonly
- readyState: UNSENT,
- // FIXME: a string
- responseText: null,
- // FIXME: a document
- responseXML: null,
- // FIXME: readonly, returns the HTTP status code
- status: 0,
- // FIXME: readonly, returns the HTTP status message
- statusText: null,
-
- // FIXME: async, user, and password are optional
- open: function(method, url, async, user, password)
- {
- toWrap.open(method, url, async, user, password);
- },
-
- setRequestHeader: function(header, value)
- {
- toWrap.setRequestHeader(header, value);
- },
-
- // FIXME: data can be a string or a document
- send: function(data)
- {
- toWrap.send(data);
- },
-
- abort: function()
- {
- toWrap.abort();
- toWrap.onreadystatechange = null;
- toWrap = null;
- },
-
- // FIXME: return all response headers as a string
- getAllResponseHeaders: function()
- {
- return toWrap.getAllResponseHeaders();
- },
-
- // FIXME: return header field value
- getResponseHeader: function(header)
- {
- return toWrap.getResponseHeader(header);
- }
- };
-
- toWrap.onreadystatechange = function()
- {
- // copy attributes
- xhr.readyState = toWrap.readyState;
- xhr.responseText = toWrap.responseText;
- xhr.responseXML = toWrap.responseXML;
-
- if(toWrap.readyState == HEADERS_RECEIVED)
- {
- xhr.status = toWrap.status;
- xhr.statusText = toWrap.statusText;
- }
-
- if(xhr.onreadystatechange)
- {
- //forge.log.debug(cat, 'wrapper orsc', toWrap);
- xhr.onreadystatechange();
- }
- };
-
- return xhr;
- };
-
- var addTest = function(name, run)
- {
- var container = $('<ul><li>Test ' + name + '</li><ul/></ul>');
- var expect = $('<li>Expect: <span class="expect"/></li>');
- var result = $('<li>Result: <span class="result"/></li>');
- var time = $('<li>Time: <span class="time"/></li>');
- var timePer = $('<li>Time Per Iteration: <span class="timePer"/></li>');
- $('ul', container)
- .append(expect)
- .append(result)
- .append(time)
- .append(timePer);
- $('#tests').append(container);
- var test = {
- container: container,
- startTime: null,
- run: function(task, test) {
- test.startTime = new Date();
- run(task, test);
- },
- expect: $('span', expect),
- result: $('span', result),
- check: function() {
- var e = test.expect.text();
- var r = test.result.text();
- (e == r) ? test.pass() : test.fail();
- },
- pass: function(iterations) {
- var dt = new Date() - test.startTime;
- if(!iterations)
- {
- iterations = 1;
- }
- var dti = (dt / iterations);
- passed += 1;
- $('#pass').text(passed);
- $('li:first', container).addClass('pass');
- $('span.time', container).html(dt + 'ms');
- $('span.timePer', container).html(dti + 'ms');
- },
- fail: function(iterations) {
- var dt = new Date() - test.startTime;
- if(!iterations)
- {
- iterations = 1;
- }
- var dti = (dt / iterations);
- failed += 1;
- $('#fail').text(failed);
- $('li:first', container).addClass('fail');
- $('span.time', container).html(dt + 'ms');
- $('span.timePer', container).html(dti + 'ms');
- }
- };
- tests.push(test);
- };
-
- addTest('builtin xhr', function(task, test)
- {
- task.block();
-
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data)
- {
- test.expect.html('expected result');
- test.result.html(data);
- task.unblock();
- },
- error: function()
- {
- task.fail();
- }
- });
-
- task.next(function(task)
- {
- test.pass();
- });
- });
-
- addTest('builtin xhr (10 serial)', function(task, test)
- {
- var N = 10;
- for(var i = 0; i < N; i++)
- {
- task.next(function(task)
- {
- task.parent.block();
-
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data, textStatus)
- {
- test.result.append('.');
- task.parent.unblock();
- },
- error: function(xhr, textStatus, errorThrown)
- {
- task.fail(N);
- }
- });
- });
- }
-
- task.next(function(task)
- {
- test.pass(N);
- });
- });
-
- addTest('builtin xhr (10 parallel)', function(task, test)
- {
- var N = 10;
- task.block(N);
- for(var i = 0; i < N; i++)
- {
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data, textStatus)
- {
- test.result.append('.');
- task.unblock();
- },
- error: function(xhr, textStatus, errorThrown)
- {
- task.fail(N);
- }
- });
- }
-
- task.next(function(task)
- {
- test.pass(N);
- });
- });
-
- // test only works with non-IE
- if(!$.browser.msie)
- {
- addTest('generic wrapper xhr', function(task, test)
- {
- task.block();
-
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data)
- {
- test.expect.html('expected result');
- test.result.html(data);
- task.unblock();
- },
- error: function()
- {
- task.fail();
- },
- xhr: createWrapper
- });
-
- task.next(function(task)
- {
- test.pass();
- });
- });
-
- addTest('generic wrapper xhr (10 serial)', function(task, test)
- {
- var N = 10;
- for(var i = 0; i < N; i++)
- {
- task.next(function(task)
- {
- task.parent.block();
-
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data, textStatus)
- {
- test.result.append('.');
- task.parent.unblock();
- },
- error: function(xhr, textStatus, errorThrown)
- {
- task.fail(N);
- },
- xhr: createWrapper
- });
- });
- }
-
- task.next(function(task)
- {
- test.pass(N);
- });
- });
-
- addTest('generic wrapper xhr (10 parallel)', function(task, test)
- {
- var N = 10;
- task.block(N);
- for(var i = 0; i < N; i++)
- {
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data, textStatus)
- {
- test.result.append('.');
- task.unblock();
- },
- error: function(xhr, textStatus, errorThrown)
- {
- task.fail(N);
- },
- xhr: createWrapper
- });
- }
-
- task.next(function(task)
- {
- test.pass(N);
- });
- });
- }
-
- for(var i = 0; i < 3; i++) {
- addTest('TLS xhr ' + i, function(task, test)
- {
- task.block();
-
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data, textStatus, xhr)
- {
- test.expect.html('expected result');
- test.result.html(data);
- task.unblock();
- },
- error: function(xhr, textStatus, errorThrown)
- {
- task.fail();
- },
- xhr: forge.xhr.create
- });
-
- task.next(function(task)
- {
- test.pass();
- });
- });
- }
-
- addTest('TLS xhr (10 serial)', function(task, test)
- {
- var N = 10;
- for(var i = 0; i < N; i++)
- {
- task.next(function(task)
- {
- task.parent.block();
-
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data, textStatus, xhr)
- {
- test.result.append('.');
- task.parent.unblock();
- },
- error: function(xhr, textStatus, errorThrown)
- {
- task.fail(N);
- },
- xhr: forge.xhr.create
- });
- });
- }
-
- task.next(function(task)
- {
- test.pass(N);
- });
- });
-
- addTest('TLS xhr (10 parallel) ' +
- '(hit "Reset" then "Start" to speed up - uses SSL session cache)',
- function(task, test)
- {
- var N = 10;
- task.block(N);
- for(var i = 0; i < N; i++)
- {
- $.ajax(
- {
- type: 'GET',
- url: '/result.txt',
- success: function(data, textStatus, xhr)
- {
- test.result.append('.');
- task.unblock();
- },
- error: function(xhr, textStatus, errorThrown)
- {
- task.fail(N);
- },
- xhr: forge.xhr.create
- });
- }
-
- task.next(function(task)
- {
- test.pass(N);
- });
- });
-
- init();
-});