aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/testsuite.js
diff options
context:
space:
mode:
authorRichard Worth <rdworth@gmail.com>2009-02-02 06:46:56 +0000
committerRichard Worth <rdworth@gmail.com>2009-02-02 06:46:56 +0000
commit39b0bbc9ca4c5ecb1fb21e494f5c84840b1e2078 (patch)
tree4cd596a312519c44322b49c46230a339a65893ec /tests/unit/testsuite.js
parentc5df36e277ffef271790ff6d27af47ef64858deb (diff)
downloadjquery-ui-39b0bbc9ca4c5ecb1fb21e494f5c84840b1e2078.tar.gz
jquery-ui-39b0bbc9ca4c5ecb1fb21e494f5c84840b1e2078.zip
unit tests: added common widget tests. Thanks Scott G.
Diffstat (limited to 'tests/unit/testsuite.js')
-rw-r--r--tests/unit/testsuite.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js
index 2ad60cbab..e1a93ce89 100644
--- a/tests/unit/testsuite.js
+++ b/tests/unit/testsuite.js
@@ -1,3 +1,4 @@
+
$(function() {
$('body').prepend(
@@ -8,3 +9,85 @@ $('body').prepend(
);
});
+
+function testWidgetDefaults(widget, defaults) {
+ var pluginDefaults = $.extend({},
+ $.widget.defaults,
+ $.ui[widget].defaults
+ );
+
+ // ensure that all defualts have the correct value
+ test('defined defaults', function() {
+ $.each(defaults, function(key, val) {
+ same(pluginDefaults[key], val, key);
+ });
+ });
+
+ // ensure that all defaults were tested
+ test('tested defaults', function() {
+ $.each(pluginDefaults, function(key) {
+ ok(key in defaults, key);
+ });
+ });
+
+ // defaults after init
+ test('defaults on init', function() {
+ var el = $('<div/>')[widget](),
+ instance = el.data(widget);
+
+ $.each(defaults, function(key, val) {
+ same(instance.options[key], val, key);
+ });
+ el.remove();
+ });
+}
+
+function testSettingOptions(widget, options) {
+ test('option values', function() {
+ var el = $('<div/>')[widget](),
+ instance = el.data(widget);
+
+ $.each(options, function(i, option) {
+ $.each({
+ 'null': null,
+ 'false': false,
+ 'true': true,
+ zero: 0,
+ number: 1,
+ 'empty string': '',
+ string: 'string',
+ 'empty array': [],
+ array: ['array'],
+ 'empty object': {},
+ object: {obj: 'ect'},
+ date: new Date(),
+ regexp: /regexp/,
+ 'function': function() {}
+ }, function(type, val) {
+ el[widget]('option', option, val);
+ same(instance.options[option], val, option + ': ' + type);
+ });
+ });
+ });
+}
+
+function testWidgetOverrides(widget) {
+ test('$.widget overrides', function() {
+ $.each(['option', '_getData', '_trigger'], function(i, method) {
+ ok($.widget.prototype[method] == $.ui[widget].prototype[method],
+ 'should not override ' + method);
+ });
+ });
+}
+function commonWidgetTests(widget, settings) {
+ var options = [];
+ $.each(settings.defaults, function(option) {
+ options.push(option);
+ });
+
+ module(widget + ": common widget");
+
+ testWidgetDefaults(widget, settings.defaults);
+// testSettingOptions(widget, options);
+ testWidgetOverrides(widget);
+}