Additional log tests

This commit is contained in:
Dennis Eichhorn 2018-06-29 18:10:23 +02:00
parent 3a314dbda0
commit 320936bedf
14 changed files with 342 additions and 81 deletions

View File

@ -31,15 +31,13 @@
*
* @since 1.0.0
*/
}
jsOMS.DataStorage.LocalStorage.available = function ()
{
try {
return 'localStorage' in window && window.localStorage !== null;
} catch (e) {
return false;
}
static available()
{
try {
return 'localStorage' in window && window.localStorage !== null;
} catch (e) {
return false;
}
};
};
}(window.jsOMS = window.jsOMS || {}));

View File

@ -22,11 +22,11 @@
*
* @since 1.0.0
*/
constructor (verbose, ui, remote)
constructor (verbose = true, ui = true, remote = false)
{
this.verbose = typeof verbose !== 'undefined' ? verbose : true;
this.ui = typeof ui !== 'undefined' ? ui : true;
this.remote = typeof remote !== 'undefined' ? remote : false;
this.verbose = verbose;
this.ui = ui;
this.remote = remote;
};
/**
@ -42,7 +42,7 @@
*
* @since 1.0.0
*/
static getInstance (verbose, ui, remote)
static getInstance (verbose = true, ui = true, remote = false)
{
if(!jsOMS.Log.Logger.instance) {
jsOMS.Log.Logger.instance = new jsOMS.Log.Logger(verbose, ui, remote);
@ -66,15 +66,15 @@
*/
interpolate (message, context, level)
{
let newMessage = jsOMS.Log.Logger.MSG_FULL;
message = typeof message === 'undefined' ? jsOMS.Log.Logger.MSG_FULL : message;
for (let replace in context) {
if (context.hasOwnProperty(replace)) {
newMessage = newMessage.replace('{' + replace + '}', context[replace]);
message = message.replace('{' + replace + '}', context[replace]);
}
}
return newMessage;
return message;
};
/**
@ -121,30 +121,7 @@
context = this.createContext(message, context, level);
if (this.verbose) {
let color = '000';
switch (level) {
case 'info':
case 'notice':
case 'log':
color = '000';
break;
case 'debug':
color = '289E39';
break;
case 'warning':
case 'alert':
color = 'FFA600';
break;
case 'error':
case 'critical':
case 'emergency':
color = 'CF304A';
break;
default:
}
console.log('%c' + this.interpolate(message, context, level), 'color: #' + color);
this.writeVerbose(message, context, level);
}
if (this.ui) {
@ -152,19 +129,78 @@
}
if (this.remote) {
let request = new jsOMS.Message.Request.Request();
request.setData(context);
request.setType(jsOMS.Message.Response.Response.ResponseType.JSON);
request.setUri('/{/lang}/api/log');
request.setMethod(jsOMS.Message.Request.Request.RequestMethod.POST);
request.setRequestHeader('Content-Type', 'application/json');
request.setSuccess(function (xhr)
{
});
request.send();
this.writeRemote(message, context, level);
}
};
/**
* Create local log message
*
* @param {string} message Message to display
* @param {Object} [context] Context to put into message
* @param {string} level Log level
*
* @return {void}
*
* @method
*
* @since 1.0.0
*/
writeVerbose (message, context, level)
{
let color = '000';
switch (level) {
case 'info':
case 'notice':
case 'log':
color = '000';
break;
case 'debug':
color = '289E39';
break;
case 'warning':
case 'alert':
color = 'FFA600';
break;
case 'error':
case 'critical':
case 'emergency':
color = 'CF304A';
break;
default:
}
console.log('%c' + this.interpolate(message, context, level), 'color: #' + color);
};
/**
* Create remote log message
*
* @param {string} message Message to display
* @param {Object} [context] Context to put into message
* @param {string} level Log level
*
* @return {void}
*
* @method
*
* @since 1.0.0
*/
writeRemote (message, context, level)
{
let request = new jsOMS.Message.Request.Request();
request.setData(context);
request.setType(jsOMS.Message.Response.Response.ResponseType.JSON);
request.setUri('/{/lang}/api/log');
request.setMethod(jsOMS.Message.Request.Request.RequestMethod.POST);
request.setRequestHeader('Content-Type', 'application/json');
request.setSuccess(function (xhr)
{
});
request.send();
};
/**
* Create log message
*
@ -322,7 +358,6 @@
/**
* Create log message
*
* @param {string} level Log level
* @param {string} message Message to display
* @param {Object} [context] Context to put into message
*
@ -332,9 +367,9 @@
*
* @since 1.0.0
*/
console (level, message, context = {})
console (message, context = {})
{
this.write(message, context, jsOMS.Log.LogLevel.INFO);
this.writeVerbose(message, context, jsOMS.Log.LogLevel.INFO);
};
}

View File

@ -1,12 +0,0 @@
describe('LogLevelTest', function ()
{
"use strict";
beforeEach(function ()
{
});
afterEach(function ()
{
});
}

View File

@ -1,12 +0,0 @@
describe('LogLevelTest', function ()
{
"use strict";
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

24
tests/Log/LogLevelTest.js Normal file
View File

@ -0,0 +1,24 @@
describe('LogLevelTest', function ()
{
"use strict";
describe('testEnum', function ()
{
it('Testing amount of enums', function ()
{
expect(Object.keys(jsOMS.Log.LogLevel).length).toBe(8);
});
it('Testing values of enums', function ()
{
expect(jsOMS.Log.LogLevel.EMERGENCY).toBe('emergency');
expect(jsOMS.Log.LogLevel.ALERT).toBe('alert');
expect(jsOMS.Log.LogLevel.CRITICAL).toBe('critical');
expect(jsOMS.Log.LogLevel.ERROR).toBe('error');
expect(jsOMS.Log.LogLevel.WARNING).toBe('warning');
expect(jsOMS.Log.LogLevel.NOTICE).toBe('notice');
expect(jsOMS.Log.LogLevel.INFO).toBe('info');
expect(jsOMS.Log.LogLevel.DEBUG).toBe('debug');
});
});
});

View File

@ -2,11 +2,229 @@ describe('LoggerTest', function ()
{
"use strict";
beforeEach(function ()
describe('testLocalLogging', function ()
{
it('Testing emergency functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.emergency();
expect(console.log).toHaveBeenCalled();
});
it('Testing alert functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.alert();
expect(console.log).toHaveBeenCalled();
});
it('Testing critical functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.critical();
expect(console.log).toHaveBeenCalled();
});
it('Testing error functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.error();
expect(console.log).toHaveBeenCalled();
});
it('Testing warning functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.warning();
expect(console.log).toHaveBeenCalled();
});
it('Testing notice functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.notice();
expect(console.log).toHaveBeenCalled();
});
it('Testing info functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.info();
expect(console.log).toHaveBeenCalled();
});
it('Testing debug functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.debug();
expect(console.log).toHaveBeenCalled();
});
it('Testing log functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.log();
expect(console.log).toHaveBeenCalled();
});
it('Testing log functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.log();
expect(console.log).toHaveBeenCalled();
});
it('Testing console functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(true, false, false);
log.console();
expect(console.log).toHaveBeenCalled();
});
});
afterEach(function ()
describe('testInvalidLocalLogging', function ()
{
it('Testing emergency functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.emergency();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing alert functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.alert();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing critical functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.critical();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing error functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.error();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing warning functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.warning();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing notice functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.notice();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing info functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.info();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing debug functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.debug();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing log functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.log();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing log functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.log();
expect(console.log).not.toHaveBeenCalled();
});
it('Testing console functionality', function ()
{
spyOn(console, 'log');
let log = new jsOMS.Log.Logger(false, false, false);
log.console();
expect(console.log).toHaveBeenCalled();
});
});
});

View File

@ -7,6 +7,7 @@ describe('MathProcessorTest', function ()
it('Testing formula evaluation', function ()
{
expect(jsOMS.mathEvaluate('3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3 + 1.5')).toBeCloseTo(4.5, 2);
expect(jsOMS.mathEvaluate('3+4*2/(1-5)^2^3+1.5')).toBeCloseTo(4.5, 2);
expect(jsOMS.mathEvaluate('invalid')).toBe(null);
});
});

View File

@ -18,7 +18,13 @@
<!-- include source files here... -->
<script src="../Asset/AssetManager.js"></script>
<script src="../Autoloader.js"></script>
<script src="../Message/Request/Request.js"></script>
<script src="../Message/Request/OSType.js"></script>
<script src="../Message/Request/BrowserType.js"></script>
<script src="../Log/Logger.js"></script>
<script src="../Log/LogLevel.js"></script>
<script src="../Account/Account.js"></script>
<script src="../Account/AccountManager.js"></script>
@ -33,6 +39,9 @@
<script src="../Uri/UriFactory.js"></script>
<!-- include spec files here... -->
<script src="Log/LoggerTest.js"></script>
<script src="Log/LogLevelTest.js"></script>
<script src="Asset/AssetManagerTest.js"></script>
<script src="Account/AccountTest.js"></script>