File manager - Edit - /home/autoph/public_html/ahglegal/ajs/vendors/bower_components/bower/Tests/tests/class.js
Back
new function () { var undefined; module('[Atom Plugins] Class'); test('Creating', function(){ var Foo = atom.Class({ name: null, initialize: function (name) { this.name = name; }, property: 0, setProperty: function(property) { this.property = property; }, getProperty: function() { return this.property; }, _etter: 0, set etter(etter) { this._etter = etter * 2; }, get etter() { return this._etter + 5; } }); var foo = new Foo('fooName'); var bar = new Foo('barName'); // instance equal(typeof foo, 'object', 'typeof foo == "object"'); ok(foo instanceof Foo, 'foo instanceof Foo'); // methods equal(foo.name, 'fooName', 'Foo.initialize'); equal(foo.property, 0, 'Foo.property default value'); equal(foo.getProperty(), 0, 'Foo.getProperty() default value'); foo.setProperty(7); equal(foo.property, 7, 'Foo.property new value'); equal(foo.getProperty(), 7, 'Foo.getProperty() new value'); // getters/setters foo.etter = 9; equal(foo._etter, 18, 'Property setter'); equal(foo.etter, 23, 'Property getter'); }); test('Extending', function(){ var Foo = atom.Class({ name: null, initialize: function (name) { this.name = name; }, property: 0, setProperty: function(property) { this.property = property; }, getProperty: function() { return this.property; }, _etter: 0, set etter(etter) { this._etter = etter * 2; }, get etter() { return this._etter + 5; }, fooProperty: 21, setFooProperty: function(fooProperty) { this.fooProperty = fooProperty; }, getFooProperty: function() { return this.fooProperty; }, parentProperty: 1, setParentProperty: function(parentProperty) { this.parentProperty = parentProperty; }, getParentProperty: function() { return this.parentProperty; }, _parentSetterTest: 0, set parentSetterTest(value) { this._parentSetterTest = value * 2; }, get parentSetterTest() { return this._parentSetterTest * 3; } }); var Bar = atom.Class({ Extends: Foo, // test overload setProperty: function(property) { this.property = property * 2; }, getProperty: function() { return this.property + 2; }, // test independent properties barProperty: 0, setBarProperty: function(fooProperty) { this.barProperty = fooProperty; }, getBarProperty: function() { return this.barProperty; }, // test calling "parent" function setParentProperty: function(parentProperty) { this.parent(parentProperty + 3); }, getParentProperty: function() { return this.parent() + 4; } }); var Qux = atom.Class({ Extends : Bar, initialize: function (name) { this.parent(name) }, setParentProperty: function(parentProperty) { this.parent(parentProperty + 3); }, getParentProperty: function() { return this.parent() + 4; } }); var foo = new Foo('fooName'); var bar = new Bar('barName'); var qux = new Qux('quxName'); // instanceof ok( foo instanceof Foo , ' foo instanceof Foo'); ok(!(foo instanceof Bar), '!(foo instanceof Bar)'); ok(!(foo instanceof Qux), '!(foo instanceof Qux)'); ok( bar instanceof Foo , ' bar instanceof Foo'); ok( bar instanceof Bar , ' bar instanceof Bar'); ok(!(bar instanceof Qux), '!(bar instanceof Qux)'); ok( qux instanceof Foo , ' qux instanceof Foo'); ok( qux instanceof Bar , ' qux instanceof Bar'); ok( qux instanceof Qux , ' qux instanceof Qux'); // methods equal(foo.name, 'fooName', 'Foo.initialize'); equal(bar.name, 'barName', 'Bar.initialize'); equal(qux.name, 'quxName', 'Qux.initialize'); // Same in Foo equal(foo.property, 0, 'Foo.property default value'); equal(foo.getProperty(), 0, 'Foo.getProperty() default value'); foo.setProperty(7); equal(foo.property, 7, 'Foo.property new value'); equal(foo.getProperty(), 7, 'Foo.getProperty() new value'); // overloaded in Bar equal(bar.property, 0, 'Bar.property default value'); equal(bar.getProperty(), 2, 'Bar.getProperty() overloaded'); bar.setProperty(7); equal(bar.property, 14, 'Bar.property new value (overloaded)'); equal(bar.getProperty(), 16, 'Bar.getProperty() new value (overloaded)'); // Mathod "parent" equal(bar.parentProperty, 1, 'Bar.parentProperty default value'); equal(bar.getParentProperty(), 5, 'Bar.getParentProperty() overloaded'); bar.setParentProperty(7); equal(bar.parentProperty, 10, 'Bar.parentProperty new value (overloaded)'); equal(bar.getParentProperty(), 14, 'Bar.getParentProperty() new value (overloaded)'); // chain of .parent equal(qux.parentProperty, 1, 'Qux.parentProperty default value'); equal(qux.getParentProperty(), 9, 'Qux.getParentProperty() overloaded'); qux.setParentProperty(7); equal(qux.parentProperty, 13, 'Qux.parentProperty new value (overloaded)'); equal(qux.getParentProperty(), 21, 'Qux.getParentProperty() new value (overloaded)'); // parent of parent method equal(qux.fooProperty, 21, 'parent of parent method'); // Setters/getters bar.etter = 9; equal(bar._etter, 18, 'Property setter is implemented'); equal(bar.etter, 23, 'Property getter is implemented'); }); test('Factory', function(){ var Foo = atom.Class({ firstname: null, lastname : null, initialize: function (firstname, lastname) { this.firstname = firstname; this.lastname = lastname; } }); var Bar = atom.Class({ Extends: Foo, surname : null, initialize: function (firstname, lastname, surname) { this.parent(firstname, lastname); this.surname = surname; } }); var foo = Foo.factory(['fooFN', 'fooLN']); var bar = Bar.factory(['barFN', 'barLN', 'barSN']); // instanceof ok( foo instanceof Foo , ' foo instanceof Foo'); ok(!(foo instanceof Bar), '!(foo instanceof Bar)'); ok( bar instanceof Foo , ' bar instanceof Foo'); ok( bar instanceof Bar , ' bar instanceof Bar'); equal(foo.firstname, 'fooFN', 'foo.firstname'); equal(foo.lastname , 'fooLN', 'foo.lastname'); equal(bar.firstname, 'barFN', 'bar.firstname'); equal(bar.lastname , 'barLN', 'bar.lastname'); equal(bar.surname , 'barSN', 'bar.surname'); }); test('Static', function(){ var Foo = atom.Class({ Static: { fooStat: 'fooStatValue', qweStat: 'qweStatValue' } }); var Bar = atom.Class({ Extends: Foo, Static: { qweStat: 'qweStat[Bar]', barStat: 'barStatValue' } }); var foo = new Foo(); var bar = new Bar(); equal(foo.self.fooStat, 'fooStatValue', 'foo.self.fooStat'); equal(foo.self.qweStat, 'qweStatValue', 'foo.self.qweStat'); equal(foo.self.barStat, undefined, 'foo.self.barStat'); equal(bar.self.fooStat, 'fooStatValue', 'bar.self.fooStat'); equal(bar.self.qweStat, 'qweStat[Bar]', 'bar.self.qweStat'); equal(bar.self.barStat, 'barStatValue', 'bar.self.barStat'); }); test('hiddenMethod', function () { var Foo = atom.Class({ value: 'original', initialize: atom.Class.hiddenMethod(function () { this.value = 42; }), method: atom.Class.hiddenMethod(function () { this.value = 123; }) }); var Bar = atom.Class({ Implements: [ Foo ] }); var bar = new Bar(); equal( bar.value, 'original', 'hidden constructor hide correctly'); equal( typeof bar.method, 'undefined', 'hidden method hide correctly'); }); test('invoke', function () { var Foo = atom.Class({ initialize: function (x) { this.x = x; } }); var foo = Foo(42); ok( foo instanceof Foo, 'Class invokation successful' ); equal( foo.x, 42, 'Class construction successful' ); var Bar = atom.Class({ Static: { invoke: function () { return Foo.factory(arguments); } } }); var bar = Bar(13); ok( !(bar instanceof Bar), 'Class invokation rewritten' ); equal( bar.x, 13, 'Class invokation rewritten successful' ); }); module('[Atom Plugins] Class Plugins'); test('Events', function(){ // todo: write tests. expect(2); var Eventable = atom.Class({ Implements: [atom.Class.Events] }); var eventable = new Eventable(); eventable.addEvent('foo', function (arg) { ok(true, 'Event fired!'); equal(arg, 'bar', 'Argument is correct!'); }); eventable.fireEvent('foo', ['bar']); }); test('Options', function(){ var Foo = atom.Class({ Implements: [ atom.Class.Options ] }); var foo = new Foo(); var fooOptions = { a: 15, b: 31, c: { m : 12 } }; deepEqual(foo.options, {}, 'Empty options object'); foo.setOptions(fooOptions); deepEqual(foo.options, fooOptions, 'Recursive setting options'); notEqual (foo.options, fooOptions, 'Options cloned'); fooOptions.b = 3; fooOptions.d = 4; foo.setOptions({ b : 3 } , { d : 4 }); deepEqual(foo.options, fooOptions, 'Several arguments added'); var Bar = atom.Class({ Implements: [ atom.Class.Options ], options: { k: 15 } }); var bar = new Bar(); var bar2 = new Bar(); bar.setOptions({ z: 5 }); deepEqual( bar.options, { k: 15, z: 5 }, 'default options linked success'); deepEqual(bar2.options, { k: 15 }, 'options cloned'); }); test('bindAll', function(){ var Overall = atom.Class({ initialize: function (title) { this.title = title; }, getTitle : function ( ) { return this.title; }, getTitle2 : function ( ) { return this.title; } }); var BindAll = atom.Class({ Extends: Overall, initialize: function (title) { atom.Class.bindAll( this ); this.parent(title); } }); var BindOne = atom.Class({ Extends: Overall, initialize: function (title) { atom.Class.bindAll( this, [ 'getTitle' ]); this.parent(title); } }); var overall = new Overall('oa'); var bindAll = new BindAll('ba'); var bindOne = new BindOne('bo'); raises(function () { (1, overall.getTitle )(); }, TypeError, 'Plain - context losted'); raises(function () { (1, overall.getTitle2 )(); }, TypeError, 'Plain - context losted'); equal( (1, bindAll.getTitle )(), 'ba', 'bindAll - context saved' ); equal( (1, bindAll.getTitle2)(), 'ba', 'bindAll - context saved' ); equal( (1, bindOne.getTitle )(), 'bo', 'bindOne - context saved' ); raises(function () { (1, bindOne.getTitle2 )(); }, TypeError, 'bindOne - context losted'); }); };
| ver. 1.4 |
.
| PHP 7.3.33 | Generation time: 0 |
proxy
|
phpinfo
|
Settings