summaryrefslogtreecommitdiff
path: root/src/main/webapp/jquery-ui-1.9pre/tests/unit/testsuite.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/webapp/jquery-ui-1.9pre/tests/unit/testsuite.js')
-rw-r--r--src/main/webapp/jquery-ui-1.9pre/tests/unit/testsuite.js105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/main/webapp/jquery-ui-1.9pre/tests/unit/testsuite.js b/src/main/webapp/jquery-ui-1.9pre/tests/unit/testsuite.js
new file mode 100644
index 0000000..c8afcbe
--- /dev/null
+++ b/src/main/webapp/jquery-ui-1.9pre/tests/unit/testsuite.js
@@ -0,0 +1,105 @@
+(function() {
+
+function testWidgetDefaults( widget, defaults ) {
+ var pluginDefaults = $.ui[ widget ].prototype.options;
+
+ // ensure that all defaults have the correct value
+ test( "defined defaults", function() {
+ $.each( defaults, function( key, val ) {
+ if ( $.isFunction( val ) ) {
+ ok( $.isFunction( pluginDefaults[ key ] ), key );
+ return;
+ }
+ same( pluginDefaults[ key ], val, key );
+ });
+ });
+
+ // ensure that all defaults were tested
+ test( "tested defaults", function() {
+ $.each( pluginDefaults, function( key, val ) {
+ ok( key in defaults, key );
+ });
+ });
+}
+
+var privateMethods = [
+ "_createWidget",
+ "destroy",
+ "option",
+ "_trigger"
+];
+
+function testWidgetOverrides( widget ) {
+ if ( $.uiBackCompat === false ) {
+ test( "$.widget overrides", function() {
+ $.each( privateMethods, function( i, method ) {
+ strictEqual( $.ui[ widget ].prototype[ method ],
+ $.Widget.prototype[ method ], "should not override " + method );
+ });
+ });
+ }
+}
+
+function testBasicUsage( widget ) {
+ test( "basic usage", function() {
+ var defaultElement = $.ui[ widget ].prototype.defaultElement;
+ $( defaultElement ).appendTo( "body" )[ widget ]().remove();
+ ok( true, "initialized on element" );
+
+ $( defaultElement )[ widget ]().remove();
+ ok( true, "initialized on disconnected DOMElement - never connected" );
+
+ $( defaultElement ).appendTo( "body" ).remove()[ widget ]().remove();
+ ok( true, "initialized on disconnected DOMElement - removed" );
+ });
+}
+
+window.commonWidgetTests = function( widget, settings ) {
+ module( widget + ": common widget" );
+
+ testWidgetDefaults( widget, settings.defaults );
+ testWidgetOverrides( widget );
+ testBasicUsage( widget );
+ test( "version", function() {
+ ok( "version" in $.ui[ widget ].prototype, "version property exists" );
+ });
+}
+
+/*
+ * Experimental assertion for comparing DOM objects.
+ *
+ * Serializes an element and some attributes and it's children if any, otherwise the text.
+ * Then compares the result using deepEqual.
+ */
+window.domEqual = function( selector, modifier, message ) {
+ var attributes = ["class", "role", "id", "tabIndex", "aria-activedescendant"];
+
+ function extract(value) {
+ if (!value || !value.length) {
+ QUnit.push( false, actual, expected, "domEqual failed, can't extract " + selector + ", message was: " + message );
+ return;
+ }
+ var result = {};
+ result.nodeName = value[0].nodeName;
+ $.each(attributes, function(index, attr) {
+ result[attr] = value.prop(attr);
+ });
+ result.children = [];
+ var children = value.children();
+ if (children.length) {
+ children.each(function() {
+ result.children.push(extract($(this)));
+ });
+ } else {
+ result.text = value.text();
+ }
+ return result;
+ }
+ var expected = extract($(selector));
+ modifier($(selector));
+
+ var actual = extract($(selector));
+ QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
+}
+
+}());