diff options
author | Scott González <scott.gonzalez@gmail.com> | 2011-04-04 11:22:32 -0400 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2011-04-04 11:22:32 -0400 |
commit | 632e6c76185664f1831c2f008e40f9057ef91bd0 (patch) | |
tree | 63524bed40da4028ae32fb249912cc2041ced380 /tests/unit/tabs | |
parent | fdedf1616d03b07c84045a3fd57d3cff073c6148 (diff) | |
download | jquery-ui-632e6c76185664f1831c2f008e40f9057ef91bd0.tar.gz jquery-ui-632e6c76185664f1831c2f008e40f9057ef91bd0.zip |
Tabs: Pass appropriate data for beforeActivate event. Fixes #7136 - Tabs: Rename select event to beforeActivate.
Diffstat (limited to 'tests/unit/tabs')
-rw-r--r-- | tests/unit/tabs/tabs.html | 9 | ||||
-rw-r--r-- | tests/unit/tabs/tabs_deprecated.html | 9 | ||||
-rw-r--r-- | tests/unit/tabs/tabs_events.js | 69 |
3 files changed, 64 insertions, 23 deletions
diff --git a/tests/unit/tabs/tabs.html b/tests/unit/tabs/tabs.html index 36e30517e..3d1c78040 100644 --- a/tests/unit/tabs/tabs.html +++ b/tests/unit/tabs/tabs.html @@ -27,6 +27,15 @@ <script src="tabs_tickets.js"></script> <script> + function tabs_state( tabs ) { + var expected = $.makeArray( arguments ).slice( 1 ); + var actual = tabs.find( ".ui-tabs-nav li" ).map(function() { + return $( this ).hasClass( "ui-state-active" ) ? 1 : 0; + }).get(); + same( actual, expected ); + } + </script> + <script> // disable this stale testsuite for testswarm only var url = window.location.search; url = decodeURIComponent( url.slice( url.indexOf("swarmURL=") + 9 ) ); diff --git a/tests/unit/tabs/tabs_deprecated.html b/tests/unit/tabs/tabs_deprecated.html index f886a9b7b..b50cebebc 100644 --- a/tests/unit/tabs/tabs_deprecated.html +++ b/tests/unit/tabs/tabs_deprecated.html @@ -26,6 +26,15 @@ <script src="tabs_deprecated.js"></script> <script> + function tabs_state( tabs ) { + var expected = $.makeArray( arguments ).slice( 1 ); + var actual = tabs.find( ".ui-tabs-nav li" ).map(function() { + return $( this ).hasClass( "ui-state-active" ) ? 1 : 0; + }).get(); + same( actual, expected ); + } + </script> + <script> // disable this stale testsuite for testswarm only var url = window.location.search; url = decodeURIComponent( url.slice( url.indexOf("swarmURL=") + 9 ) ); diff --git a/tests/unit/tabs/tabs_events.js b/tests/unit/tabs/tabs_events.js index 381326533..72c6d29e1 100644 --- a/tests/unit/tabs/tabs_events.js +++ b/tests/unit/tabs/tabs_events.js @@ -1,32 +1,55 @@ -/* - * tabs_events.js - */ -(function($) { +(function( $ ) { -module("tabs: events"); +module( "tabs: events" ); -test('beforeActivate', function() { - expect(7); +test( "beforeActivate", function() { + expect( 26 ); - el = $('#tabs1').tabs({ - beforeActivate: function(event, ui) { - ok(true, 'beforeActivate triggered after initialization'); - equals(this, el[0], "context of callback"); - equals(event.type, 'tabsbeforeactivate', 'event type in callback'); - equals(ui.tab, el.find('a')[1], 'contain tab as DOM anchor element'); - equals(ui.panel, el.find('div')[1], 'contain panel as DOM div element'); - equals(ui.index, 1, 'contain index'); - } + var element = $( "#tabs1" ).tabs({ + // TODO: should be false + active: -1, + collapsible: true + }), + tabs = element.find( ".ui-tabs-nav a" ), + panels = element.find( ".ui-tabs-panel" ); + + element.one( "tabsbeforeactivate", function( event, ui ) { + equals( ui.oldTab.size(), 0 ); + equals( ui.oldPanel.size(), 0 ); + equals( ui.newTab.size(), 1 ); + strictEqual( ui.newTab[ 0 ], tabs[ 0 ] ); + equals( ui.newPanel.size(), 1 ); + strictEqual( ui.newPanel[ 0 ], panels[ 0 ] ); + tabs_state( element, 0, 0, 0 ); }); - el.tabs('option', 'active', 1); + element.tabs( "option", "active", 0 ); + tabs_state( element, 1, 0, 0 ); - el.tabs('destroy'); - el.tabs({ - beforeActivate: function(event, ui) { - equals( event.originalEvent.type, "click", "beforeActivate triggered by click" ); - } + element.one( "tabsbeforeactivate", function( event, ui ) { + equals( ui.oldTab.size(), 1 ); + strictEqual( ui.oldTab[ 0 ], tabs[ 0 ] ); + equals( ui.oldPanel.size(), 1 ); + strictEqual( ui.oldPanel[ 0 ], panels[ 0 ] ); + equals( ui.newTab.size(), 1 ); + strictEqual( ui.newTab[ 0 ], tabs[ 1 ] ); + equals( ui.newPanel.size(), 1 ); + strictEqual( ui.newPanel[ 0 ], panels[ 1 ] ); + tabs_state( element, 1, 0, 0 ); }); - el.find( "li:eq(1) a" ).simulate( "click" ); + element.tabs( "option", "active", 1 ); + tabs_state( element, 0, 1, 0 ); + + element.one( "tabsbeforeactivate", function( event, ui ) { + equals( ui.oldTab.size(), 1 ); + strictEqual( ui.oldTab[ 0 ], tabs[ 1 ] ); + equals( ui.oldPanel.size(), 1 ); + strictEqual( ui.oldPanel[ 0 ], panels[ 1 ] ); + equals( ui.newTab.size(), 0 ); + equals( ui.newPanel.size(), 0 ); + tabs_state( element, 0, 1, 0 ); + }); + element.tabs( "option", "active", false ); + tabs_state( element, 0, 0, 0 ); }); test('beforeload', function() { |