| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 'use strict';
- var common = require('../common');
- describe('InitialCheck', function () {
- describe('init', function () {
- this.timeout(30000);
- before(function () {
- cleanup();
- });
- it('returns false and shows error, if a bot UA is detected', function () {
- jsc.assert(jsc.forall(
- 'string',
- jsc.elements(['Bot', 'bot']),
- 'string',
- function (prefix, botBit, suffix) {
- const clean = jsdom('', {
- 'userAgent': prefix + botBit + suffix
- });
- $('body').html(
- '<html><body><div id="errormessage" class="hidden"></div>' +
- '</body></html>'
- );
- $.PrivateBin.Alert.init();
- window.crypto = null;
- const result1 = !$.PrivateBin.InitialCheck.init(),
- result2 = !$('#errormessage').hasClass('hidden');
- clean();
- return result1 && result2;
- }
- ),
- {tests: 10});
- });
- jsc.property(
- 'shows error, if no webcrypto is detected',
- 'bool',
- jsc.elements(['localhost', '127.0.0.1', '[::1]', '']),
- jsc.nearray(common.jscA2zString()),
- jsc.elements(['.onion', '.i2p', '']),
- function (secureProtocol, localhost, domain, tld) {
- const isDomain = localhost === '',
- isSecureContext = secureProtocol || !isDomain || tld.length > 0,
- clean = jsdom('', {
- 'url': (secureProtocol ? 'https' : 'http' ) + '://' +
- (isDomain ? domain.join('') + tld : localhost) + '/'
- });
- $('body').html(
- '<html><body><div id="errormessage" class="hidden"></div>'+
- '<div id="oldnotice" class="hidden"></div></body></html>'
- );
- $.PrivateBin.Alert.init();
- const result1 = !$.PrivateBin.InitialCheck.init(),
- result2 = isSecureContext === $('#errormessage').hasClass('hidden'),
- result3 = !$('#oldnotice').hasClass('hidden');
- clean();
- return result1 && result2 && result3;
- }
- );
- jsc.property(
- 'shows error, if HTTP only site is detected',
- 'bool',
- jsc.elements(['localhost', '127.0.0.1', '[::1]', '']),
- jsc.nearray(common.jscA2zString()),
- jsc.elements(['.onion', '.i2p', '']),
- function (secureProtocol, localhost, domain, tld) {
- const isDomain = localhost === '',
- isSecureContext = secureProtocol || !isDomain || tld.length > 0,
- clean = jsdom('', {
- 'url': (secureProtocol ? 'https' : 'http' ) + '://' +
- (isDomain ? domain.join('') + tld : localhost) + '/'
- });
- $('body').html(
- '<html><body><div id="httpnotice" class="hidden"></div>'+
- '</body></html>'
- );
- $.PrivateBin.Alert.init();
- window.crypto = null;
- const result1 = $.PrivateBin.InitialCheck.init(),
- result2 = isSecureContext === $('#httpnotice').hasClass('hidden');
- clean();
- return result1 && result2;
- }
- );
- });
- });
|