'use strict'; var common = require('../common'); describe('Alert', function () { describe('showStatus', function () { jsc.property( 'shows a status message (basic)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (icon, message) { icon = icon.join(''); message = message.join(''); const expected = '
' + message + '
'; $('body').html( '
' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showStatus(message, icon); const result = $('body').html(); return expected === result; } ); jsc.property( 'shows a status message (bootstrap)', jsc.array(common.jscAlnumString()), function (message) { message = message.join(''); const expected = ''; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showStatus(message); const result = $('body').html(); return expected === result; } ); jsc.property( 'shows a status message (bootstrap, custom icon)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (icon, message) { icon = icon.join(''); message = message.join(''); const expected = ''; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showStatus(message, icon); const result = $('body').html(); return expected === result; } ); }); describe('showWarning', function () { jsc.property( 'shows a warning message (basic)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (icon, message) { icon = icon.join(''); message = message.join(''); const expected = '
' + message + '
'; $('body').html( '
' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showWarning(message, icon); const result = $('body').html(); return expected === result; } ); jsc.property( 'shows a warning message (bootstrap)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (message) { message = message.join(''); const expected = ''; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showWarning(message); const result = $('body').html(); return expected === result; } ); jsc.property( 'shows a warning message (bootstrap, custom icon)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (icon, message) { icon = icon.join(''); message = message.join(''); const expected = ''; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showWarning(message, icon); const result = $('body').html(); return expected === result; } ); }); describe('showError', function () { jsc.property( 'shows an error message (basic)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (icon, message) { icon = icon.join(''); message = message.join(''); const expected = '
' + message + '
'; $('body').html( '
' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showError(message, icon); const result = $('body').html(); return expected === result; } ); jsc.property( 'shows an error message (bootstrap)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (icon, message) { message = message.join(''); const expected = ''; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showError(message); const result = $('body').html(); return expected === result; } ); jsc.property( 'shows an error message (bootstrap, custom icon)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (icon, message) { icon = icon.join(''); message = message.join(''); const expected = ''; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showError(message, icon); const result = $('body').html(); return expected === result; } ); }); describe('showRemaining', function () { jsc.property( 'shows remaining time (basic)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), 'integer', function (message, string, number) { message = message.join(''); string = string.join(''); const expected = '
' + string + message + number + '
'; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showRemaining(['%s' + message + '%d', string, number]); const result = $('body').html(); return expected === result; } ); jsc.property( 'shows remaining time (bootstrap)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), 'integer', function (message, string, number) { message = message.join(''); string = string.join(''); const expected = ''; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showRemaining(['%s' + message + '%d', string, number]); const result = $('body').html(); return expected === result; } ); }); describe('showLoading', function () { jsc.property( 'shows a loading message (basic)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (message, icon) { message = message.join(''); icon = icon.join(''); const defaultMessage = 'Loading…'; if (message.length === 0) { message = defaultMessage; } const expected = '
' + message + '
'; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showLoading(message, icon); const result = $('body').html(); return expected === result; } ); jsc.property( 'shows a loading message (bootstrap)', jsc.array(common.jscAlnumString()), jsc.array(common.jscAlnumString()), function (message, icon) { message = message.join(''); icon = icon.join(''); const defaultMessage = 'Loading…'; if (message.length === 0) { message = defaultMessage; } const expected = ''; $('body').html( '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.showLoading(message, icon); const result = $('body').html(); return expected === result; } ); }); describe('hideLoading', function () { it( 'hides the loading message', function() { $('body').html( '' ); $('body').addClass('loading'); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.hideLoading(); assert.ok( !$('body').hasClass('loading') && $('#loadingindicator').hasClass('hidden') ); } ); }); describe('hideMessages', function () { it( 'hides all messages', function() { $('body').html( '' + '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.hideMessages(); assert.ok( $('#status').hasClass('hidden') && $('#errormessage').hasClass('hidden') ); } ); }); describe('setCustomHandler', function () { jsc.property( 'calls a given handler function', 'nat 3', jsc.array(common.jscAlnumString()), function (trigger, message) { message = message.join(''); let handlerCalled = false, defaultMessage = 'Loading…', functions = [ $.PrivateBin.Alert.showStatus, $.PrivateBin.Alert.showError, $.PrivateBin.Alert.showRemaining, $.PrivateBin.Alert.showLoading ]; if (message.length === 0) { message = defaultMessage; } $('body').html( '' + '' + '' + '' ); $.PrivateBin.Alert.init(); $.PrivateBin.Alert.setCustomHandler(function(id, $element) { handlerCalled = true; return jsc.random(0, 1) ? true : $element; }); functions[trigger](message); $.PrivateBin.Alert.setCustomHandler(null); return handlerCalled; } ); }); });