diff options
author | James Lal <james@lightsofapollo.com> | 2012-06-27 19:28:37 +0200 |
---|---|---|
committer | James Lal <james@lightsofapollo.com> | 2012-06-27 19:28:37 +0200 |
commit | d76e26ac16c16ca30a9c177fa292f5cdf184955e (patch) | |
tree | fbc9e6df292440b689d1990911edd802e618df43 /test/helper.js | |
parent | 1c136b249274a3cad047e043693c6e643892b6a9 (diff) | |
download | jsCalDAV-d76e26ac16c16ca30a9c177fa292f5cdf184955e.tar.gz |
initial move to support web js
Diffstat (limited to 'test/helper.js')
-rw-r--r-- | test/helper.js | 85 |
1 files changed, 63 insertions, 22 deletions
diff --git a/test/helper.js b/test/helper.js index f568bf8..12f21a6 100644 --- a/test/helper.js +++ b/test/helper.js @@ -1,21 +1,62 @@ (function() { - var chai = require('chai'), - fs = require('fs'), - path = require('path'); - chai.Assertion.includeStack = true; - assert = chai.assert; + var specialRequires = { + 'chai': requireChai + }; - loadSample = function(file, cb) { - var root = __dirname + '/../samples/'; - fs.readFile(root + file, 'utf8', function(err, contents) { - cb(err, contents); - }); + testSupport = { + isNode: (typeof(window) === 'undefined') + }; + + /* cross require */ + + testSupport.require = function cross_require(file, callback) { + if (file in specialRequires) { + return specialRequires[file](file, callback); + } + + if (typeof(window) === 'undefined') { + var lib = require(__dirname + '/../' + file); + if (typeof(callback) !== 'undefined') { + callback(lib); + } + } else { + window.require(file, callback); + } + } + + function setupChai(chai) { + chai.Assertion.includeStack = true; + assert = chai.assert; + } + + function requireChai(file, callback) { + var path; + if (testSupport.isNode) { + setupChai(require('chai')); + } else { + require('/vendor/chai.js', function() { + setupChai(chai); + }); + } + } + + testSupport.require('chai'); + + testSupport.loadSample = function(file, cb) { + if (testSupport.isNode) { + var root = __dirname + '/../samples/'; + require('fs').readFile(root + file, 'utf8', function(err, contents) { + cb(err, contents); + }); + } else { + //xhr samples + } }; - defineSample = function(file, cb) { + testSupport.defineSample = function(file, cb) { suiteSetup(function(done) { - loadSample(file, function(err, data) { + testSupport.loadSample(file, function(err, data) { if (err) { done(err); } @@ -25,12 +66,12 @@ }); }; - requireLib = function(lib) { - return require(__dirname + '/../lib/webcals/' + lib); + testSupport.requireLib = function(lib, callback) { + testSupport.require('/lib/webcals/' + lib, callback); }; - requireSupport = function(lib) { - return require(__dirname + '/support/' + lib); + testSupport.requireSupport = function(lib) { + testSupport.require('/test/support/' + lib); } Webcals = require('../lib/webcals/webcals.js'); @@ -49,12 +90,11 @@ } requireRequest = function(callback) { - requireLib('xhr'); - requireLib('sax'); - requireLib('request/abstract'); - requireLib('template'); - requireSupport('fake_xhr'); - + testSupport.requireLib('xhr'); + testSupport.requireLib('sax'); + testSupport.requireLib('request/abstract'); + testSupport.requireLib('template'); + testSupport.requireSupport('fake_xhr'); //in the future we need a callback for browser support. if (typeof(callback) !== 'undefined') { @@ -64,3 +104,4 @@ }()); + |