| Server IP : 20.75.53.88 / Your IP : 216.73.217.72 [ Web Server : Apache System : Linux VMRALP-3 4.4.0-256-generic #290~14.04.1-Ubuntu SMP Thu Jun 20 09:24:50 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29+esm15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Domains : 3 Domains MySQL : ON | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/siac/dev/components/select2-4.0.3/tests/utils/ |
Upload File : |
module('Decorators');
var Utils = require('select2/utils');
test('overridden - method', function (assert) {
function BaseClass () {}
BaseClass.prototype.hello = function () {
return 'A';
};
function DecoratorClass () {}
DecoratorClass.prototype.hello = function () {
return 'B';
};
var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
var inst = new DecoratedClass();
assert.strictEqual(inst.hello(), 'B');
});
test('overridden - constructor', function (assert) {
function BaseClass () {
this.inherited = true;
}
BaseClass.prototype.hello = function () {
return 'A';
};
function DecoratorClass (decorated) {
this.called = true;
}
DecoratorClass.prototype.other = function () {
return 'B';
};
var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
var inst = new DecoratedClass();
assert.ok(inst.called);
assert.ok(!inst.inherited);
});
test('not overridden - method', function (assert) {
function BaseClass () {}
BaseClass.prototype.hello = function () {
return 'A';
};
function DecoratorClass () {}
DecoratorClass.prototype.other = function () {
return 'B';
};
var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
var inst = new DecoratedClass();
assert.strictEqual(inst.hello(), 'A');
});
test('not overridden - constructor', function (assert) {
function BaseClass () {
this.called = true;
}
BaseClass.prototype.hello = function () {
return 'A';
};
function DecoratorClass () {}
DecoratorClass.prototype.other = function () {
return 'B';
};
var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
var inst = new DecoratedClass();
assert.ok(inst.called);
});
test('inherited - method', function (assert) {
function BaseClass () {}
BaseClass.prototype.hello = function () {
return 'A';
};
function DecoratorClass (decorated) {}
DecoratorClass.prototype.hello = function (decorated) {
return 'B' + decorated.call(this) + 'C';
};
var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
var inst = new DecoratedClass();
assert.strictEqual(inst.hello(), 'BAC');
});
test('inherited - constructor', function (assert) {
function BaseClass () {
this.inherited = true;
}
BaseClass.prototype.hello = function () {
return 'A';
};
function DecoratorClass (decorated) {
this.called = true;
decorated.call(this);
}
DecoratorClass.prototype.other = function () {
return 'B';
};
var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
var inst = new DecoratedClass();
assert.ok(inst.called);
assert.ok(inst.inherited);
});
test('inherited - three levels', function (assert) {
function BaseClass (testArgument) {
this.baseCalled = true;
this.baseTestArgument = testArgument;
}
BaseClass.prototype.test = function (a) {
return a + 'c';
};
function MiddleClass (decorated, testArgument) {
this.middleCalled = true;
this.middleTestArgument = testArgument;
decorated.call(this, testArgument);
}
MiddleClass.prototype.test = function (decorated, a) {
return decorated.call(this, a + 'b');
};
function DecoratorClass (decorated, testArgument) {
this.decoratorCalled = true;
this.decoratorTestArgument = testArgument;
decorated.call(this, testArgument);
}
DecoratorClass.prototype.test = function (decorated, a) {
return decorated.call(this, a + 'a');
};
var DecoratedClass = Utils.Decorate(
Utils.Decorate(BaseClass, MiddleClass),
DecoratorClass
);
var inst = new DecoratedClass('test');
assert.ok(inst.baseCalled, 'The base class contructor was called');
assert.ok(inst.middleCalled, 'The middle class constructor was called');
assert.ok(inst.decoratorCalled, 'The decorator constructor was called');
assert.strictEqual(inst.baseTestArgument, 'test');
assert.strictEqual(inst.middleTestArgument, 'test');
assert.strictEqual(inst.decoratorTestArgument, 'test');
var out = inst.test('test');
assert.strictEqual(out, 'testabc');
});