123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- 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);
- });
|