diff options
-rw-r--r-- | tests/unit/tabs/tabs_events.js | 11 | ||||
-rw-r--r-- | ui/jquery.ui.tabs.js | 3 |
2 files changed, 12 insertions, 2 deletions
diff --git a/tests/unit/tabs/tabs_events.js b/tests/unit/tabs/tabs_events.js index 4acf15225..2c0eaac18 100644 --- a/tests/unit/tabs/tabs_events.js +++ b/tests/unit/tabs/tabs_events.js @@ -30,7 +30,16 @@ test('show', function() { }); test('add', function() { - ok(false, "missing test - untested code is broken code."); + + var el = $('<div id="tabs"><ul></ul></div>').tabs(); + equals(el.tabs('option', 'selected'), -1, 'Initially empty, no selected tab'); + + el.tabs('add', '#test1', 'Test 1'); + equals(el.tabs('option', 'selected'), 0, 'First tab added should be auto selected'); + + el.tabs('add', '#test2', 'Test 2'); + equals(el.tabs('option', 'selected'), 0, 'Second tab added should not be auto selected'); + }); test('remove', function() { diff --git a/ui/jquery.ui.tabs.js b/ui/jquery.ui.tabs.js index b9fad83d4..2d6a992c0 100644 --- a/ui/jquery.ui.tabs.js +++ b/ui/jquery.ui.tabs.js @@ -150,7 +150,7 @@ $.widget("ui.tabs", { if (typeof o.selected != 'number' && this.lis.filter('.ui-tabs-selected').length) { o.selected = this.lis.index(this.lis.filter('.ui-tabs-selected')); } - o.selected = o.selected || 0; + o.selected = o.selected || this.lis.length ? 0 : -1; } else if (o.selected === null) { // usage of null is deprecated, TODO remove in next release o.selected = -1; @@ -468,6 +468,7 @@ $.widget("ui.tabs", { this._tabify(); if (this.anchors.length == 1) { // after tabify + o.selected = 0; $li.addClass('ui-tabs-selected ui-state-active'); $panel.removeClass('ui-tabs-hide'); this.element.queue("tabs", function() { |