r3572 committed - Fixed #4960 - Tabs: wrong selected tab index

r3572 committed - Fixed #4960 - Tabs: wrong selected tab index

Revision: 3572
Author: rdworth
Date: Thu Dec 31 05:43:54 2009
Log: Fixed #4960 - Tabs: wrong selected tab index
http://code.google.com/p/jquery-ui/source/detail?r=3572
Modified:
/trunk/tests/unit/tabs/tabs_events.js
/trunk/ui/jquery.ui.tabs.js
=======================================
--- /trunk/tests/unit/tabs/tabs_events.js    Wed Feb 25 14:09:45 2009
+++ /trunk/tests/unit/tabs/tabs_events.js    Thu Dec 31 05:43:54 2009
@@ -30,7 +30,16 @@
});
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() {
=======================================
--- /trunk/ui/jquery.ui.tabs.js    Fri Dec 25 10:25:46 2009
+++ /trunk/ui/jquery.ui.tabs.js    Thu Dec 31 05:43:54 2009
@@ -150,7 +150,7 @@
                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 @@
        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() {
--