diff options
author | Scott González <scott.gonzalez@gmail.com> | 2010-07-15 10:26:00 -0400 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2010-07-15 10:27:21 -0400 |
commit | f24bc0fb1f63e7f5e38014d7191a4fe69d4179f0 (patch) | |
tree | 567952cea5b7b2d347c87cd1ab8d05ea8f1206f4 /tests/unit/widget/widget.js | |
parent | 06f721b74f94272baf5da96133e961f5600f5a90 (diff) | |
download | jquery-ui-f24bc0fb1f63e7f5e38014d7191a4fe69d4179f0.tar.gz jquery-ui-f24bc0fb1f63e7f5e38014d7191a4fe69d4179f0.zip |
Widget: Deep extend options when creating a new plugin. Fixes #5830 - Widget: Using inheritance overwrites the base classes options.
Diffstat (limited to 'tests/unit/widget/widget.js')
-rw-r--r-- | tests/unit/widget/widget.js | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/tests/unit/widget/widget.js b/tests/unit/widget/widget.js deleted file mode 100644 index 3c870f1fe..000000000 --- a/tests/unit/widget/widget.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - * widget unit tests - */ -(function($) { - -module('widget factory', { - teardown: function() { - delete $.ui.testWidget; - } -}); - -test('widget creation', function() { - var myPrototype = { - _create: function() {}, - creationTest: function() {} - }; - - $.widget('ui.testWidget', myPrototype); - ok($.isFunction($.ui.testWidget), 'constructor was created'); - equals('object', typeof $.ui.testWidget.prototype, 'prototype was created'); - equals($.ui.testWidget.prototype._create, myPrototype._create, 'create function is copied over'); - equals($.ui.testWidget.prototype.creationTest, myPrototype.creationTest, 'random function is copied over'); - equals($.ui.testWidget.prototype.option, $.Widget.prototype.option, 'option method copied over from base widget'); -}); - -test('jQuery usage', function() { - expect(10); - - var shouldInit = false; - - $.widget('ui.testWidget', { - getterSetterVal: 5, - _create: function() { - ok(shouldInit, 'init called on instantiation'); - }, - methodWithParams: function(param1, param2) { - ok(true, 'method called via .pluginName(methodName)'); - equals(param1, 'value1', 'parameter passed via .pluginName(methodName, param)'); - equals(param2, 'value2', 'multiple parameter passed via .pluginName(methodName, param, param)'); - - return this; - }, - getterSetterMethod: function(val) { - if (val) { - this.getterSetterVal = val; - } else { - return this.getterSetterVal; - } - } - }); - - shouldInit = true; - var elem = $('<div></div>').testWidget(); - shouldInit = false; - - var instance = elem.data('testWidget'); - equals(typeof instance, 'object', 'instance stored in .data(pluginName)'); - equals(instance.element[0], elem[0], 'element stored on widget'); - var ret = elem.testWidget('methodWithParams', 'value1', 'value2'); - equals(ret, elem, 'jQuery object returned from method call'); - - ret = elem.testWidget('getterSetterMethod'); - equals(ret, 5, 'getter/setter can act as getter'); - ret = elem.testWidget('getterSetterMethod', 30); - equals(ret, elem, 'getter/setter method can be chainable'); - equals(instance.getterSetterVal, 30, 'getter/setter can act as setter'); -}); - -test('direct usage', function() { - expect(9); - - var shouldInit = false; - - $.widget('ui.testWidget', { - getterSetterVal: 5, - _create: function() { - ok(shouldInit, 'init called on instantiation'); - }, - methodWithParams: function(param1, param2) { - ok(true, 'method called via .pluginName(methodName)'); - equals(param1, 'value1', 'parameter passed via .pluginName(methodName, param)'); - equals(param2, 'value2', 'multiple parameter passed via .pluginName(methodName, param, param)'); - - return this; - }, - getterSetterMethod: function(val) { - if (val) { - this.getterSetterVal = val; - } else { - return this.getterSetterVal; - } - } - }); - - var elem = $('<div></div>')[0]; - - shouldInit = true; - var instance = new $.ui.testWidget({}, elem); - shouldInit = false; - - equals($(elem).data('testWidget'), instance, 'instance stored in .data(pluginName)'); - equals(instance.element[0], elem, 'element stored on widget'); - - var ret = instance.methodWithParams('value1', 'value2'); - equals(ret, instance, 'plugin returned from method call'); - - ret = instance.getterSetterMethod(); - equals(ret, 5, 'getter/setter can act as getter'); - instance.getterSetterMethod(30); - equals(instance.getterSetterVal, 30, 'getter/setter can act as setter'); -}); - -test('merge multiple option arguments', function() { - expect(1); - $.widget("ui.testWidget", { - _create: function() { - same(this.options, { - disabled: false, - option1: "value1", - option2: "value2", - option3: "value3", - option4: { - option4a: "valuea", - option4b: "valueb" - } - }); - } - }); - $("<div></div>").testWidget({ - option1: "valuex", - option2: "valuex", - option3: "value3", - option4: { - option4a: "valuex" - } - }, { - option1: "value1", - option2: "value2", - option4: { - option4b: "valueb" - } - }, { - option4: { - option4a: "valuea" - } - }); -}); - -test(".widget() - base", function() { - $.widget("ui.testWidget", { - _create: function() {} - }); - var div = $("<div></div>").testWidget() - same(div[0], div.testWidget("widget")[0]); -}); - -test(".widget() - overriden", function() { - var wrapper = $("<div></div>"); - $.widget("ui.testWidget", { - _create: function() {}, - widget: function() { - return wrapper; - } - }); - same(wrapper[0], $("<div></div>").testWidget().testWidget("widget")[0]); -}); - -})(jQuery); |