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) {
// Find the result inside a static path index.
if (!files[targetPath]) {
throw 'The requested resource is missing.';
throw new Error('The requested resource is missing.');
}
// 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");
/**
* Variables
*/
var localPaths = {
angular: 'resources/angularjs/1.2.19/angular.min.js.dec',
backbone: [
......@@ -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) {
......@@ -77,9 +128,7 @@ exports['test webfont debug library'] = function (assert) {
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) {
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) {
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) {
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) {
assert.equal(target.path, localPaths.modernizr, 'Target was determined.');
};
/**
* CDNJS (Cloudflare)
*/
// CDNJS (Cloudflare)
exports['test angular on cdnjs'] = function (assert) {
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) {
assert.equal(target.path, localPaths.webfont[1], 'Target was determined.');
};
/**
* jQuery CDN (MaxCDN)
*/
// jQuery CDN (MaxCDN)
exports['test jquery on jquery cdn'] = function (assert) {
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) {
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
/**
* jsDelivr (MaxCDN)
*/
// jsDelivr (MaxCDN)
exports['test angular on jsdelivr'] = function (assert) {
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) {
assert.equal(target.path, localPaths.webfont[1], 'Target was determined.');
};
/**
* Yandex CDN
*/
// Yandex CDN
exports['test angular on yandex cdn'] = function (assert) {
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) {
assert.equal(target.path, localPaths.underscore[2], 'Target was determined.');
};
/**
* Baidu CDN
*/
// Baidu CDN
exports['test backbone on baidu cdn'] = function (assert) {
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) {
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) {
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) {
assert.equal(target.path, localPaths.webfont[0], 'Target was determined.');
};
/**
* UpYun Library
*/
// UpYun Library
exports['test dojo on upyun library'] = function (assert) {
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) {
assert.equal(target.path, localPaths.mootools, 'Target was determined.');
};
/**
* Run Tests
*/
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