Mushpup 3.0 Tests (Dev Branch)
Test of Mushpup v3.0 module hosted on Github (via rawgit.com).
by klenwell
HTML
<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.15.0.css">
<script src="https://rawgit.com/klenwell/mushpup/master/vendor/crypto-js/sha1.js"></script>
<script src="https://rawgit.com/klenwell/mushpup/master/vendor/crypto-js/enc-base64-min.js"></script>
<script src="https://rawgit.com/klenwell/mushpup/dev/src/mushpup.js"></script>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
JavaScript
/*
* Mushpup Tests
*/
(function() {
module('Mushpup module');
test('should load Mushpup module and verify version', function() {
ok(Mushpup);
equal(Mushpup.version(), '3.0');
});
})();
(function() {
module('Mushpup basic hash');
test('should generate basic hash', function() {
equal(Mushpup.mush('test', ''), 'qUqP5cyxm6YcTAhz05Hph5gv');
equal(Mushpup.mush('te', 'st'), 'qUqP5cyxm6YcTAhz05Hph5gv');
equal(Mushpup.mush('', 'test'), 'qUqP5cyxm6YcTAhz05Hph5gv');
equal(Mushpup.mush('locus', 'pocus'), 'dhjcHSkePkdoNZDZwrmZO33v');
equal(Mushpup.mush('mushpup.org/klenwell', 'pocus'), 'dOyw5hTH46xzHJK1N8bagrAT');
});
})();
(function() {
module('Mushpup locus normalization');
test('that locus values are normalized as expected', function() {
var testCases = [
// Input, Expect
['mushpup.org/klenwell', 'mushpup.org/klenwell'],
[' mushpup.org/klenwell ', 'mushpup.org/klenwell'],
['/mushpup.org/klenwell/', 'mushpup.org/klenwell'],
['//mushpup.org//klenwell//', 'mushpup.org/klenwell']
];
testCases.map(function(testCase) {
var locusInput = testCase[0];
var expects = testCase[1];
var locus = new LocusValidator(locusInput);
equal(locus.value(), expects);
});
});
test('that locus with extra spaces raises a warning', function() {
var locusInput = ' mushpup.org/klenwell ';
var locus = new LocusValidator(locusInput);
equal(locus.value(), locusInput.trim());
equal(locus.warnings.length, 1);
equal(locus.warnings[0][1], 'Trimmed whitespace from ends of site value.');
});
test('that locus with extra slashes raises a warning', function() {
var locusInput = '//mushpup.org//klenwell//';
var locus = new LocusValidator(locusInput);
equal(locus.value(), 'mushpup.org/klenwell');
equal(locus.warnings.length, 1);
equal(locus.warnings[0][1], 'Removed extra slashes from site value.');
});
test('should remove duplicate...