aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDavid Petersen <public@petersendidit.com>2011-04-19 12:54:41 -0400
committerScott González <scott.gonzalez@gmail.com>2011-04-28 13:13:42 -0400
commit5d23e8eacd95b0bcb859c4303a39709ef8a4dc86 (patch)
tree0e39d17d4edf687a39926da25b89c60d095cf0e7 /tests
parentdcb1720f317aecfd7a8eaddd7a7756226d60ab09 (diff)
downloadjquery-ui-5d23e8eacd95b0bcb859c4303a39709ef8a4dc86.tar.gz
jquery-ui-5d23e8eacd95b0bcb859c4303a39709ef8a4dc86.zip
Tabs: Fix issues with refresh method, add refresh method tests
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/tabs/tabs_methods.js39
1 files changed, 31 insertions, 8 deletions
diff --git a/tests/unit/tabs/tabs_methods.js b/tests/unit/tabs/tabs_methods.js
index c7c043760..9d6864218 100644
--- a/tests/unit/tabs/tabs_methods.js
+++ b/tests/unit/tabs/tabs_methods.js
@@ -86,7 +86,7 @@ test( "disable( index )", function() {
});
test('refresh', function() {
- expect(5);
+ expect( 13 );
var el = $('<div id="tabs"><ul></ul></div>').tabs(),
ul = el.find('ul');
@@ -95,22 +95,45 @@ test('refresh', function() {
ul.append('<li><a href="data/test.html">Test 1</a></li>');
el.tabs('refresh');
+ equals( el.tabs('option', 'active'), 0, 'First tab added should be auto active');
+ ok( $( "li:eq(0)", el).is('.ui-tabs-active'), 'First tab should be auto active');
equals( el.find('.ui-tabs-panel').length, 1, 'Panel created after refresh');
ul.find('li').remove();
el.tabs('refresh');
equals( el.find('.ui-tabs-panel').length, 0, 'Panel removed after refresh');
+ equals( el.tabs('option', 'active'), false, 'No tabs are active');
- ul.append('<li><a href="#test1">Test 1</a></li>');
- $('<div id="test1">Test Panel 1</div>').insertAfter( ul );
+ // Hide second tab
+ $('<li><a href="#test1">Test 1</a></li><li><a href="#test2">Test 2</a></li><li><a href="#test3">Test 3</a></li>')
+ .appendTo( ul );
+ $('<div id="test1">Test Panel 1</div><div id="test2">Test Panel 2</div><div id="test3">Test Panel 3</div>')
+ .insertAfter( ul );
el.tabs('refresh');
- el.tabs('option', 'active', 0);
- equals( el.tabs('option', 'active'), 0, 'First tab added should be auto active');
+ equals( el.tabs('option', 'active'), 0, 'Second tab added should not be auto active');
+ equals( $( "#test2", el ).css("display"), "none", 'Second panel is hidden');
- ul.append('<li><a href="#test2">Test 2</a></li>');
- $('<div id="test2">Test Panel 2</div>').insertAfter( ul );
+ // Make second tab active and then remove the first one
+ el.tabs('option', 'active', 1);
+ el.find('a[href="#test1"]').parent().remove();
el.tabs('refresh');
- equals( el.tabs('option', 'active'), 0, 'Second tab added should not be auto active');
+ equals( el.tabs('option', 'active'), 0, 'Active index correctly updated');
+ ok( el.find('a[href="#test2"]').parent().is('.ui-tabs-active'), 'Tab is still active');
+
+ // Refresh with disabled tabs
+ el.tabs('disable', 1);
+ same( el.tabs('option', 'disabled'), [ 1 ], 'Second tab disabled');
+
+ el.find('a[href="#test3"]').remove();
+ ul.append('<li><a href="#test4">Test 4</a></li>');
+ $('<div id="test4">Test Panel 4</div>').insertAfter( ul );
+ el.tabs('refresh');
+ equals( el.tabs('option', 'disabled'), false, 'Not disabled');
+
+ ul.append('<li class="ui-state-disabled"><a href="#test3">Test 3</a></li>');
+ $('<div id="test3">Test Panel 3</div>').insertAfter( ul );
+ el.tabs('refresh');
+ same( el.tabs('option', 'disabled'), [ 2 ], 'Second tab disabled');
});
test('load', function() {