aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/tabs/tabs_events.js11
-rw-r--r--ui/jquery.ui.tabs.js3
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() {