From 5ed1046a4ac271a1f20cc1f19aa50bec15cd9704 Mon Sep 17 00:00:00 2001 From: Scott González Date: Mon, 24 Jan 2011 19:20:09 -0500 Subject: Accordion tests: Cleanup. --- tests/unit/testsuite.js | 74 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 23 deletions(-) (limited to 'tests/unit/testsuite.js') diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js index d152f84cd..23819d0e4 100644 --- a/tests/unit/testsuite.js +++ b/tests/unit/testsuite.js @@ -1,39 +1,67 @@ -function testWidgetDefaults(widget, defaults) { - var pluginDefaults = $.extend({}, - $.ui[widget].prototype.options - ); - +(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(val !== undefined, key); + test( "defined defaults", function() { + $.each( defaults, function( key, val ) { + if ( $.isFunction( val ) ) { + ok( $.isFunction( pluginDefaults[ key ] ), key ); return; } - same(pluginDefaults[key], val, key); + 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); + test( "tested defaults", function() { + $.each( pluginDefaults, function( key, val ) { + ok( key in defaults, key ); }); }); } -function testWidgetOverrides(widget) { - test('$.widget overrides', function() { - $.each(['_widgetInit', 'option', '_trigger'], function(i, method) { - ok($.Widget.prototype[method] == $.ui[widget].prototype[method], - 'should not override ' + method); +var privateMethods = [ + "_createWidget", + "_super", + "_superApply", + "destroy", + "option", + "enable", + "disable", + "_trigger" +]; + +function testWidgetOverrides( widget ) { + test( "$.widget overrides", function() { + $.each( privateMethods, function( i, method ) { + strictEqual( $.ui[ widget ].prototype[ method ], + $.Widget.prototype[ method ], "should not override " + method ); }); }); } -function commonWidgetTests(widget, settings) { - module(widget + ": common widget"); +function testBasicUsage( widget ) { + test( "basic usage", function() { + var defaultElement = $.ui[ widget ].prototype.defaultElement; + $( defaultElement ).appendTo( "body" )[ widget ]().remove(); + ok( true, "initialized on element" ); + + $( defaultElement ).accordion().remove(); + ok( true, "initialized on disconnected DOMElement - never connected" ); - testWidgetDefaults(widget, settings.defaults); - testWidgetOverrides(widget); + $( defaultElement ).appendTo( "body" ).remove().accordion().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 ); +}; + +}()); -- cgit v1.2.3 From 63c72aba0d898289b4cb536cd34fee80c15087d1 Mon Sep 17 00:00:00 2001 From: Scott González Date: Mon, 24 Jan 2011 22:37:57 -0500 Subject: Tests: Fixed erroneous refernece to accordion. --- tests/unit/testsuite.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests/unit/testsuite.js') diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js index 23819d0e4..0033182dc 100644 --- a/tests/unit/testsuite.js +++ b/tests/unit/testsuite.js @@ -48,10 +48,10 @@ function testBasicUsage( widget ) { $( defaultElement ).appendTo( "body" )[ widget ]().remove(); ok( true, "initialized on element" ); - $( defaultElement ).accordion().remove(); + $( defaultElement )[ widget ]().remove(); ok( true, "initialized on disconnected DOMElement - never connected" ); - $( defaultElement ).appendTo( "body" ).remove().accordion().remove(); + $( defaultElement ).appendTo( "body" ).remove()[ widget ]().remove(); ok( true, "initialized on disconnected DOMElement - removed" ); }); } -- cgit v1.2.3 From 088ef05142168de75d2afcbe447a5b44cb2d3673 Mon Sep 17 00:00:00 2001 From: Scott González Date: Tue, 25 Jan 2011 00:05:55 -0500 Subject: Accordion: Renamed changestart and change events to beforeActivate and activate, respectively. Fixes #6840 - Accordion: Rename changestart event to beforeActivate. Fixes #6842 - Accordion: Rename change event to activate. --- tests/unit/accordion/accordion_deprecated.js | 90 ++++++++++++++++++++++++++++ tests/unit/accordion/accordion_events.js | 16 ++--- tests/unit/testsuite.js | 12 ++-- ui/jquery.ui.accordion.js | 22 ++++++- 4 files changed, 124 insertions(+), 16 deletions(-) (limited to 'tests/unit/testsuite.js') diff --git a/tests/unit/accordion/accordion_deprecated.js b/tests/unit/accordion/accordion_deprecated.js index a0ca3f634..6f1c30562 100644 --- a/tests/unit/accordion/accordion_deprecated.js +++ b/tests/unit/accordion/accordion_deprecated.js @@ -221,4 +221,94 @@ test( "{ navigation: true, navigationFilter: content }", function() { state( ac, 0, 0, 1 ); }); + + + + +module( "accordion (deprecated) - changestart/change events", accordionSetupTeardown() ); + +test( "changestart", function() { + expect( 20 ); + var ac = $( "#list1" ).accordion({ + active: false, + collapsible: true + }); + var headers = ac.find( ".ui-accordion-header" ); + var content = ac.find( ".ui-accordion-content" ); + + ac.one( "accordionchangestart", function( event, ui ) { + equals( ui.oldHeader.size(), 0 ); + equals( ui.oldContent.size(), 0 ); + equals( ui.newHeader.size(), 1 ); + strictEqual( ui.newHeader[ 0 ], headers[ 0 ] ); + equals( ui.newContent.size(), 1 ); + strictEqual( ui.newContent[ 0 ], content[ 0 ] ); + }); + ac.accordion( "option", "active", 0 ); + + ac.one( "accordionchangestart", function( event, ui ) { + equals( ui.oldHeader.size(), 1 ); + strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); + equals( ui.oldContent.size(), 1 ); + strictEqual( ui.oldContent[ 0 ], content[ 0 ] ); + equals( ui.newHeader.size(), 1 ); + strictEqual( ui.newHeader[ 0 ], headers[ 1 ] ); + equals( ui.newContent.size(), 1 ); + strictEqual( ui.newContent[ 0 ], content[ 1 ] ); + }); + headers.eq( 1 ).click(); + + ac.one( "accordionchangestart", function( event, ui ) { + equals( ui.oldHeader.size(), 1 ); + strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); + equals( ui.oldContent.size(), 1 ); + strictEqual( ui.oldContent[ 0 ], content[ 1 ] ); + equals( ui.newHeader.size(), 0 ); + equals( ui.newContent.size(), 0 ); + }); + ac.accordion( "option", "active", false ); +}); + +test( "change", function() { + expect( 20 ); + var ac = $( "#list1" ).accordion({ + active: false, + collapsible: true + }); + var headers = ac.find( ".ui-accordion-header" ); + var content = ac.find( ".ui-accordion-content" ); + + ac.one( "accordionchange", function( event, ui ) { + equals( ui.oldHeader.size(), 0 ); + equals( ui.oldContent.size(), 0 ); + equals( ui.newHeader.size(), 1 ); + strictEqual( ui.newHeader[ 0 ], headers[ 0 ] ); + equals( ui.newContent.size(), 1 ); + strictEqual( ui.newContent[ 0 ], content[ 0 ] ); + }); + ac.accordion( "option", "active", 0 ); + + ac.one( "accordionchange", function( event, ui ) { + equals( ui.oldHeader.size(), 1 ); + strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); + equals( ui.oldContent.size(), 1 ); + strictEqual( ui.oldContent[ 0 ], content[ 0 ] ); + equals( ui.newHeader.size(), 1 ); + strictEqual( ui.newHeader[ 0 ], headers[ 1 ] ); + equals( ui.newContent.size(), 1 ); + strictEqual( ui.newContent[ 0 ], content[ 1 ] ); + }); + headers.eq( 1 ).click(); + + ac.one( "accordionchange", function( event, ui ) { + equals( ui.oldHeader.size(), 1 ); + strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); + equals( ui.oldContent.size(), 1 ); + strictEqual( ui.oldContent[ 0 ], content[ 1 ] ); + equals( ui.newHeader.size(), 0 ); + equals( ui.newContent.size(), 0 ); + }); + ac.accordion( "option", "active", false ); +}); + })(jQuery); diff --git a/tests/unit/accordion/accordion_events.js b/tests/unit/accordion/accordion_events.js index 463a277d8..fd7391387 100644 --- a/tests/unit/accordion/accordion_events.js +++ b/tests/unit/accordion/accordion_events.js @@ -2,7 +2,7 @@ module( "accordion: events", accordionSetupTeardown() ); -test( "changestart", function() { +test( "beforeActivate", function() { expect( 20 ); var ac = $( "#list1" ).accordion({ active: false, @@ -11,7 +11,7 @@ test( "changestart", function() { var headers = ac.find( ".ui-accordion-header" ); var content = ac.find( ".ui-accordion-content" ); - ac.one( "accordionchangestart", function( event, ui ) { + ac.one( "accordionbeforeactivate", function( event, ui ) { equals( ui.oldHeader.size(), 0 ); equals( ui.oldContent.size(), 0 ); equals( ui.newHeader.size(), 1 ); @@ -21,7 +21,7 @@ test( "changestart", function() { }); ac.accordion( "option", "active", 0 ); - ac.one( "accordionchangestart", function( event, ui ) { + ac.one( "accordionbeforeactivate", function( event, ui ) { equals( ui.oldHeader.size(), 1 ); strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); equals( ui.oldContent.size(), 1 ); @@ -33,7 +33,7 @@ test( "changestart", function() { }); headers.eq( 1 ).click(); - ac.one( "accordionchangestart", function( event, ui ) { + ac.one( "accordionbeforeactivate", function( event, ui ) { equals( ui.oldHeader.size(), 1 ); strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); equals( ui.oldContent.size(), 1 ); @@ -44,7 +44,7 @@ test( "changestart", function() { ac.accordion( "option", "active", false ); }); -test( "change", function() { +test( "activate", function() { expect( 20 ); var ac = $( "#list1" ).accordion({ active: false, @@ -53,7 +53,7 @@ test( "change", function() { var headers = ac.find( ".ui-accordion-header" ); var content = ac.find( ".ui-accordion-content" ); - ac.one( "accordionchange", function( event, ui ) { + ac.one( "accordionactivate", function( event, ui ) { equals( ui.oldHeader.size(), 0 ); equals( ui.oldContent.size(), 0 ); equals( ui.newHeader.size(), 1 ); @@ -63,7 +63,7 @@ test( "change", function() { }); ac.accordion( "option", "active", 0 ); - ac.one( "accordionchange", function( event, ui ) { + ac.one( "accordionactivate", function( event, ui ) { equals( ui.oldHeader.size(), 1 ); strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); equals( ui.oldContent.size(), 1 ); @@ -75,7 +75,7 @@ test( "change", function() { }); headers.eq( 1 ).click(); - ac.one( "accordionchange", function( event, ui ) { + ac.one( "accordionactivate", function( event, ui ) { equals( ui.oldHeader.size(), 1 ); strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); equals( ui.oldContent.size(), 1 ); diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js index 0033182dc..9724a946f 100644 --- a/tests/unit/testsuite.js +++ b/tests/unit/testsuite.js @@ -34,12 +34,14 @@ var privateMethods = [ ]; function testWidgetOverrides( widget ) { - test( "$.widget overrides", function() { - $.each( privateMethods, function( i, method ) { - strictEqual( $.ui[ widget ].prototype[ method ], - $.Widget.prototype[ method ], "should not override " + method ); + 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 ) { diff --git a/ui/jquery.ui.accordion.js b/ui/jquery.ui.accordion.js index d855da5f3..cd6a2ce93 100644 --- a/ui/jquery.ui.accordion.js +++ b/ui/jquery.ui.accordion.js @@ -381,8 +381,7 @@ $.widget( "ui.accordion", { return self._completed.apply( self, arguments ); }; - // trigger changestart event - self._trigger( "changestart", null, self.data ); + self._trigger( "beforeActivate", null, self.data ); // count elements to animate self.running = toHide.size() === 0 ? toShow.size() : toHide.size(); @@ -487,7 +486,7 @@ $.widget( "ui.accordion", { this.toHide.parent()[0].className = this.toHide.parent()[0].className; } - this._trigger( "change", null, this.data ); + this._trigger( "activate", null, this.data ); } }); @@ -711,6 +710,23 @@ if ( $.uiBackCompat !== false ) { // resize method jQuery.ui.accordion.prototype.resize = jQuery.ui.accordion.prototype.refresh; + + (function( $, prototype ) { + var _trigger = prototype._trigger; + prototype._trigger = function( type, event, data ) { + var ret = _trigger.apply( this, arguments ); + if ( !ret ) { + return false; + } + + if ( type === "beforeActivate" ) { + ret = _trigger.call( this, "changestart", event, data ); + } else if ( type === "activate" ) { + ret = _trigger.call( this, "change", event, data ); + } + return ret; + } + }( jQuery, jQuery.ui.accordion.prototype ) ); } })( jQuery ); -- cgit v1.2.3