Implement more tests

This commit is contained in:
Dennis Eichhorn 2018-06-28 20:54:50 +02:00
parent bf3ec231dd
commit 45017a4936
7 changed files with 143 additions and 32 deletions

View File

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

View File

@ -85,7 +85,7 @@
return false; return false;
} }
for (let id in this.groups[group]) { for (let id in this.groups[group]) {
if (!this.groups[group].hasOwnProperty(id) || !this.groups[group][id]) { if (!this.groups[group].hasOwnProperty(id) || !this.groups[group][id]) {
return true; return true;
} }
@ -109,10 +109,8 @@
* *
* @since 1.0.0 * @since 1.0.0
*/ */
trigger (group, id, data) trigger (group, id = '', data = null)
{ {
id = typeof id !== 'undefined' ? id : 0;
if (!this.callbacks.hasOwnProperty(group)) { if (!this.callbacks.hasOwnProperty(group)) {
return false; return false;
} }
@ -130,9 +128,11 @@
} else if (this.callbacks[group].reset) { } else if (this.callbacks[group].reset) {
this.reset(group); this.reset(group);
} }
return true;
} }
return true; return false;
}; };
/** /**
@ -148,8 +148,51 @@
*/ */
detach (group) detach (group)
{ {
delete this.callbacks[group]; return this.detachCallback(group) | this.detachGroup(group);
delete this.groups[group]; };
/**
* Detach callback
*
* @param {string|int} group Group id
*
* @return {void}
*
* @method
*
* @since 1.0.0
*/
detachCallback(group)
{
if (this.callbacks.hasOwnProperty(group)) {
delete this.callbacks[group];
return true;
}
return false;
};
/**
* Detach group
*
* @param {string|int} group Group id
*
* @return {void}
*
* @method
*
* @since 1.0.0
*/
detachGroup(group)
{
if (this.groups.hasOwnProperty(group)) {
delete this.groups[group];
return true;
}
return false;
}; };
/** /**
@ -188,7 +231,7 @@
*/ */
count () count ()
{ {
return this.callbacks.length; return Object.keys(this.callbacks).length;
}; };
} }
}(window.jsOMS = window.jsOMS || {})); }(window.jsOMS = window.jsOMS || {}));

View File

@ -9,7 +9,7 @@ describe('AccountTypeTest', function ()
expect(Object.keys(jsOMS.Account.AccountType).length).toBe(2); expect(Object.keys(jsOMS.Account.AccountType).length).toBe(2);
}); });
it('Testing amount of enums', function () it('Testing values of enums', function ()
{ {
expect(jsOMS.Account.AccountType.USER).toBe(0); expect(jsOMS.Account.AccountType.USER).toBe(0);
expect(jsOMS.Account.AccountType.GROUP).toBe(1); expect(jsOMS.Account.AccountType.GROUP).toBe(1);

View File

@ -2,14 +2,6 @@ describe('OptionsTest', function ()
{ {
"use strict"; "use strict";
beforeEach(function ()
{
});
afterEach(function ()
{
});
describe('testDefault', function () describe('testDefault', function ()
{ {
it('Testing default functionality', function () it('Testing default functionality', function ()

View File

@ -2,11 +2,11 @@ describe('LocalStorageTest', function ()
{ {
"use strict"; "use strict";
beforeEach(function () describe('testDefault', function ()
{
});
afterEach(function ()
{ {
it('Testing default functionality', function ()
{
expect(jsOMS.DataStorage.LocalStorage.available()).toBeTruthy();
});
}); });
}); });

View File

@ -2,11 +2,76 @@ describe('EventManagerTest', function ()
{ {
"use strict"; "use strict";
beforeEach(function () describe('testDefault', function ()
{ {
it('Testing default functionality', function ()
{
let manager = new jsOMS.Event.EventManager();
expect(manager.hasOutstanding('invalid')).toBeFalsy(null);
expect(manager.trigger('invalid')).toBeFalsy(null);
expect(manager.count()).toBe(0);
});
}); });
afterEach(function () describe('testBase', function ()
{ {
it('Testing base functionality', function ()
{
let manager = new jsOMS.Event.EventManager();
expect(manager.attach('group', function() { return true; }, false, false)).toBeTruthy();
expect(manager.attach('group', function() { return true; }, false, false)).toBeFalsy();
expect(manager.count()).toBe(1);
});
});
describe('testReset', function ()
{
it('Testing reset functionality', function ()
{
let manager = new jsOMS.Event.EventManager();
expect(manager.attach('group', function() { return true; }, false, true)).toBeTruthy();
manager.addGroup('group', 'id1');
manager.addGroup('group', 'id2');
expect(manager.trigger('group', 'id1')).toBeFalsy();
expect(manager.trigger('group', 'id2')).toBeTruthy();
expect(manager.trigger('group', 'id2')).toBeFalsy();
expect(manager.count()).toBe(1);
});
});
describe('testDetach', function ()
{
it('Testing detach functionality', function ()
{
let manager = new jsOMS.Event.EventManager();
expect(manager.attach('group', function() { return true; }, false, true)).toBeTruthy();
manager.addGroup('group', 'id1');
manager.addGroup('group', 'id2');
expect(manager.count()).toBe(1);
expect(manager.detach('group')).toBeTruthy();
expect(manager.count()).toBe(0);
expect(manager.detach('group')).toBeFalsy();
});
});
describe('testRemove', function ()
{
it('Testing remove functionality', function ()
{
let manager = new jsOMS.Event.EventManager();
expect(manager.attach('group1', function() { return true; }, true, false)).toBeTruthy();
expect(manager.attach('group2', function() { return true; }, true, false)).toBeTruthy();
expect(manager.count()).toBe(2);
manager.trigger('group1');
expect(manager.count()).toBe(1);
});
}); });
}); });

View File

@ -18,6 +18,7 @@
<!-- 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="../Log/Logger.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>
@ -25,6 +26,10 @@
<script src="../Config/Options.js"></script> <script src="../Config/Options.js"></script>
<script src="../DataStorage/LocalStorage.js"></script>
<script src="../Event/EventManager.js"></script>
<script src="../Uri/Http.js"></script> <script src="../Uri/Http.js"></script>
<script src="../Uri/UriFactory.js"></script> <script src="../Uri/UriFactory.js"></script>
@ -37,6 +42,10 @@
<script src="Config/OptionsTest.js"></script> <script src="Config/OptionsTest.js"></script>
<script src="DataStorage/LocalStorageTest.js"></script>
<script src="Event/EventManagerTest.js"></script>
<script src="Uri/HttpTest.js"></script> <script src="Uri/HttpTest.js"></script>
<script src="Uri/UriFactoryTest.js"></script> <script src="Uri/UriFactoryTest.js"></script>
</head> </head>