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 * @since 1.0.0
*/ */
static available()
} {
try {
jsOMS.DataStorage.LocalStorage.available = function () return 'localStorage' in window && window.localStorage !== null;
{ } catch (e) {
try { return false;
return 'localStorage' in window && window.localStorage !== null; }
} catch (e) { };
return false;
}
}; };
}(window.jsOMS = window.jsOMS || {})); }(window.jsOMS = window.jsOMS || {}));

View File

@ -22,11 +22,11 @@
* *
* @since 1.0.0 * @since 1.0.0
*/ */
constructor (verbose, ui, remote) constructor (verbose = true, ui = true, remote = false)
{ {
this.verbose = typeof verbose !== 'undefined' ? verbose : true; this.verbose = verbose;
this.ui = typeof ui !== 'undefined' ? ui : true; this.ui = ui;
this.remote = typeof remote !== 'undefined' ? remote : false; this.remote = remote;
}; };
/** /**
@ -42,7 +42,7 @@
* *
* @since 1.0.0 * @since 1.0.0
*/ */
static getInstance (verbose, ui, remote) static getInstance (verbose = true, ui = true, remote = false)
{ {
if(!jsOMS.Log.Logger.instance) { if(!jsOMS.Log.Logger.instance) {
jsOMS.Log.Logger.instance = new jsOMS.Log.Logger(verbose, ui, remote); jsOMS.Log.Logger.instance = new jsOMS.Log.Logger(verbose, ui, remote);
@ -66,15 +66,15 @@
*/ */
interpolate (message, context, level) 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) { for (let replace in context) {
if (context.hasOwnProperty(replace)) { 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); context = this.createContext(message, context, level);
if (this.verbose) { if (this.verbose) {
let color = '000'; this.writeVerbose(message, context, level);
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);
} }
if (this.ui) { if (this.ui) {
@ -152,19 +129,78 @@
} }
if (this.remote) { if (this.remote) {
let request = new jsOMS.Message.Request.Request(); this.writeRemote(message, context, level);
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 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 * Create log message
* *
@ -322,7 +358,6 @@
/** /**
* Create log message * Create log message
* *
* @param {string} level Log level
* @param {string} message Message to display * @param {string} message Message to display
* @param {Object} [context] Context to put into message * @param {Object} [context] Context to put into message
* *
@ -332,9 +367,9 @@
* *
* @since 1.0.0 * @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"; "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 () 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('3+4*2/(1-5)^2^3+1.5')).toBeCloseTo(4.5, 2);
expect(jsOMS.mathEvaluate('invalid')).toBe(null); expect(jsOMS.mathEvaluate('invalid')).toBe(null);
}); });
}); });

View File

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