aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/select2/tests/utils
diff options
context:
space:
mode:
Diffstat (limited to 'public/bower_components/select2/tests/utils')
-rw-r--r--public/bower_components/select2/tests/utils/decorator-tests.js189
-rw-r--r--public/bower_components/select2/tests/utils/escapeMarkup-tests.js36
2 files changed, 225 insertions, 0 deletions
diff --git a/public/bower_components/select2/tests/utils/decorator-tests.js b/public/bower_components/select2/tests/utils/decorator-tests.js
new file mode 100644
index 0000000..4888991
--- /dev/null
+++ b/public/bower_components/select2/tests/utils/decorator-tests.js
@@ -0,0 +1,189 @@
+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');
+});
diff --git a/public/bower_components/select2/tests/utils/escapeMarkup-tests.js b/public/bower_components/select2/tests/utils/escapeMarkup-tests.js
new file mode 100644
index 0000000..726f09d
--- /dev/null
+++ b/public/bower_components/select2/tests/utils/escapeMarkup-tests.js
@@ -0,0 +1,36 @@
+module('Utils - escapeMarkup');
+
+var Utils = require('select2/utils');
+
+test('text passes through', function (assert) {
+ var text = 'testing this';
+ var escaped = Utils.escapeMarkup(text);
+
+ assert.equal(text, escaped);
+});
+
+test('html tags are escaped', function (assert) {
+ var text = '<script>alert("bad");</script>';
+ var escaped = Utils.escapeMarkup(text);
+
+ assert.notEqual(text, escaped);
+ assert.equal(escaped.indexOf('<script>'), -1);
+});
+
+test('quotes are killed as well', function (assert) {
+ var text = 'testin\' these "quotes"';
+ var escaped = Utils.escapeMarkup(text);
+
+ assert.notEqual(text, escaped);
+ assert.equal(escaped.indexOf('\''), -1);
+ assert.equal(escaped.indexOf('"'), -1);
+});
+
+test('DocumentFragment options pass through', function (assert) {
+ var frag = document.createDocumentFragment();
+ frag.innerHTML = '<strong>test</strong>';
+
+ var escaped = Utils.escapeMarkup(frag);
+
+ assert.equal(frag, escaped);
+});