Skip to content
Snippets Groups Projects
Commit 7a76fec2 authored by Thomas Rientjes's avatar Thomas Rientjes
Browse files

Improve tests and error handling

parent 2559457d
No related branches found
No related tags found
No related merge requests found
...@@ -73,7 +73,7 @@ function _loadResource(targetPath) { ...@@ -73,7 +73,7 @@ function _loadResource(targetPath) {
// Find the result inside a static path index. // Find the result inside a static path index.
if (!files[targetPath]) { if (!files[targetPath]) {
throw 'The requested resource is missing.'; throw new Error('The requested resource is missing.');
} }
// Attempt to load resource contents. // Attempt to load resource contents.
......
/**
* Imports
*/
var dataHandler = require("../lib/data-handler");
/**
* Get Redirection URI Tests
*/
exports['test get redirection uri for existing file'] = function (assert) {
var result = dataHandler.getRedirectionURI(
'resources/jquery/2.1.4/jquery.min.js.dec', 'UTF-8', 'application/javascript'
);
assert.ok(typeof result === 'object', 'Existing file was handled succesfully.');
};
exports['test get redirection uri for non-existing file'] = function (assert) {
assert.throws(function () {
dataHandler.getRedirectionURI('resources/non-existing/0.5.7/non-existing.js.dec',
'UTF-8', 'application/javascript');
}, Error, 'Non-existing file was handled succesfully.');
};
/**
* Run Tests
*/
require("sdk/test").run(exports);
/**
* Imports
*/
var requestAnalyzer = require("../lib/request-analyzer"); var requestAnalyzer = require("../lib/request-analyzer");
/**
* Variables
*/
var localPaths = { var localPaths = {
angular: 'resources/angularjs/1.2.19/angular.min.js.dec', angular: 'resources/angularjs/1.2.19/angular.min.js.dec',
backbone: [ backbone: [
...@@ -34,7 +42,50 @@ var localPaths = { ...@@ -34,7 +42,50 @@ var localPaths = {
}; };
/** /**
* Generic Tests * Is Valid Candidate Tests
*/
exports['test get request to known cdn'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.googleapis.com' }
});
assert.ok(result, 'Valid candidate was successfully identified.');
};
exports['test post request to known cdn'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'POST', URI: { host: 'ajax.googleapis.com' }
});
assert.equal(result, false, 'Invalid candidate was successfully identified.');
};
exports['test get request to unknown domain'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.example.com' }
});
assert.equal(result, false, 'Invalid candidate was successfully identified.');
};
exports['test get request from whitelisted domain'] = function (assert) {
require('sdk/simple-prefs').prefs.domainWhitelist = 'example.com';
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.googleapis.com' },
referrer: { host: 'example.com' }, setRequestHeader: function () { return false; }
});
assert.equal(result, false, 'Whitelisted request was successfully ignored.');
};
/**
* Get Local Target Tests
*/ */
exports['test regular resource'] = function (assert) { exports['test regular resource'] = function (assert) {
...@@ -77,9 +128,7 @@ exports['test webfont debug library'] = function (assert) { ...@@ -77,9 +128,7 @@ exports['test webfont debug library'] = function (assert) {
assert.equal(target.path, localPaths.webfont[0], 'Target was determined.'); assert.equal(target.path, localPaths.webfont[0], 'Target was determined.');
}; };
/** // Google Hosted Libraries
* Google Hosted Libraries
*/
exports['test angular on google hosted libraries'] = function (assert) { exports['test angular on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/angularjs/1.2.19/angular.min.js'); var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/angularjs/1.2.19/angular.min.js');
...@@ -131,9 +180,7 @@ exports['test webfont on google hosted libraries'] = function (assert) { ...@@ -131,9 +180,7 @@ exports['test webfont on google hosted libraries'] = function (assert) {
assert.equal(target.path, localPaths.webfont[1], 'Target was determined.'); assert.equal(target.path, localPaths.webfont[1], 'Target was determined.');
}; };
/** // Microsoft Ajax CDN
* Microsoft Ajax CDN
*/
exports['test jquery on microsoft ajax cdn'] = function (assert) { exports['test jquery on microsoft ajax cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.aspnetcdn.com', '/ajax/jQuery/jquery-1.11.1.min.js'); var target = requestAnalyzer.getLocalTarget('ajax.aspnetcdn.com', '/ajax/jQuery/jquery-1.11.1.min.js');
...@@ -155,9 +202,7 @@ exports['test modernizr on old microsoft ajax cdn'] = function (assert) { ...@@ -155,9 +202,7 @@ exports['test modernizr on old microsoft ajax cdn'] = function (assert) {
assert.equal(target.path, localPaths.modernizr, 'Target was determined.'); assert.equal(target.path, localPaths.modernizr, 'Target was determined.');
}; };
/** // CDNJS (Cloudflare)
* CDNJS (Cloudflare)
*/
exports['test angular on cdnjs'] = function (assert) { exports['test angular on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/angular.js/1.2.19/angular.min.js'); var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/angular.js/1.2.19/angular.min.js');
...@@ -224,9 +269,7 @@ exports['test webfont on cdnjs'] = function (assert) { ...@@ -224,9 +269,7 @@ exports['test webfont on cdnjs'] = function (assert) {
assert.equal(target.path, localPaths.webfont[1], 'Target was determined.'); assert.equal(target.path, localPaths.webfont[1], 'Target was determined.');
}; };
/** // jQuery CDN (MaxCDN)
* jQuery CDN (MaxCDN)
*/
exports['test jquery on jquery cdn'] = function (assert) { exports['test jquery on jquery cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('code.jquery.com', '/jquery-1.11.1.min.js'); var target = requestAnalyzer.getLocalTarget('code.jquery.com', '/jquery-1.11.1.min.js');
...@@ -238,9 +281,7 @@ exports['test jquery-ui on jquery cdn'] = function (assert) { ...@@ -238,9 +281,7 @@ exports['test jquery-ui on jquery cdn'] = function (assert) {
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.'); assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
}; };
/** // jsDelivr (MaxCDN)
* jsDelivr (MaxCDN)
*/
exports['test angular on jsdelivr'] = function (assert) { exports['test angular on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/angularjs/1.2.19/angular.min.js'); var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/angularjs/1.2.19/angular.min.js');
...@@ -292,9 +333,7 @@ exports['test webfont on jsdelivr'] = function (assert) { ...@@ -292,9 +333,7 @@ exports['test webfont on jsdelivr'] = function (assert) {
assert.equal(target.path, localPaths.webfont[1], 'Target was determined.'); assert.equal(target.path, localPaths.webfont[1], 'Target was determined.');
}; };
/** // Yandex CDN
* Yandex CDN
*/
exports['test angular on yandex cdn'] = function (assert) { exports['test angular on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/angularjs/1.2.19/angular.min.js'); var target = requestAnalyzer.getLocalTarget('yandex.st', '/angularjs/1.2.19/angular.min.js');
...@@ -351,9 +390,7 @@ exports['test underscore on yandex cdn'] = function (assert) { ...@@ -351,9 +390,7 @@ exports['test underscore on yandex cdn'] = function (assert) {
assert.equal(target.path, localPaths.underscore[2], 'Target was determined.'); assert.equal(target.path, localPaths.underscore[2], 'Target was determined.');
}; };
/** // Baidu CDN
* Baidu CDN
*/
exports['test backbone on baidu cdn'] = function (assert) { exports['test backbone on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/backbone/0.9.2/backbone-min.js'); var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/backbone/0.9.2/backbone-min.js');
...@@ -410,9 +447,7 @@ exports['test webfont on baidu cdn'] = function (assert) { ...@@ -410,9 +447,7 @@ exports['test webfont on baidu cdn'] = function (assert) {
assert.equal(target.path, localPaths.webfont[0], 'Target was determined.'); assert.equal(target.path, localPaths.webfont[0], 'Target was determined.');
}; };
/** // Sina Public Resources
* Sina Public Resources
*/
exports['test angular on sina public resources'] = function (assert) { exports['test angular on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/angular.js/angular-1.2.19/angular.min.js'); var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/angular.js/angular-1.2.19/angular.min.js');
...@@ -474,9 +509,7 @@ exports['test webfont on sina public resources'] = function (assert) { ...@@ -474,9 +509,7 @@ exports['test webfont on sina public resources'] = function (assert) {
assert.equal(target.path, localPaths.webfont[0], 'Target was determined.'); assert.equal(target.path, localPaths.webfont[0], 'Target was determined.');
}; };
/** // UpYun Library
* UpYun Library
*/
exports['test dojo on upyun library'] = function (assert) { exports['test dojo on upyun library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('upcdn.b0.upaiyun.com', '/libs/dojo/dojo-1.8.3.min.js'); var target = requestAnalyzer.getLocalTarget('upcdn.b0.upaiyun.com', '/libs/dojo/dojo-1.8.3.min.js');
...@@ -508,4 +541,8 @@ exports['test mootools on upyun library'] = function (assert) { ...@@ -508,4 +541,8 @@ exports['test mootools on upyun library'] = function (assert) {
assert.equal(target.path, localPaths.mootools, 'Target was determined.'); assert.equal(target.path, localPaths.mootools, 'Target was determined.');
}; };
/**
* Run Tests
*/
require("sdk/test").run(exports); require("sdk/test").run(exports);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment