1 | /*
|
---|
2 | * tabs_methods.js
|
---|
3 | */
|
---|
4 | (function($) {
|
---|
5 |
|
---|
6 | module("tabs: methods");
|
---|
7 |
|
---|
8 | test('init', function() {
|
---|
9 | expect(9);
|
---|
10 |
|
---|
11 | el = $('#tabs1').tabs();
|
---|
12 |
|
---|
13 | ok(true, '.tabs() called on element');
|
---|
14 | ok( el.is('.ui-tabs.ui-widget.ui-widget-content.ui-corner-all'), 'attach classes to container');
|
---|
15 | ok( $('ul', el).is('.ui-tabs-nav.ui-helper-reset.ui-helper-clearfix.ui-widget-header.ui-corner-all'), 'attach classes to list' );
|
---|
16 | ok( $('div:eq(0)', el).is('.ui-tabs-panel.ui-widget-content.ui-corner-bottom'), 'attach classes to panel' );
|
---|
17 | ok( $('li:eq(0)', el).is('.ui-tabs-selected.ui-state-active.ui-corner-top'), 'attach classes to active li');
|
---|
18 | ok( $('li:eq(1)', el).is('.ui-state-default.ui-corner-top'), 'attach classes to inactive li');
|
---|
19 | equals( el.tabs('option', 'selected'), 0, 'selected option set' );
|
---|
20 | equals( $('li', el).index( $('li.ui-tabs-selected', el) ), 0, 'second tab active');
|
---|
21 | equals( $('div', el).index( $('div.ui-tabs-hide', '#tabs1') ), 1, 'second panel should be hidden' );
|
---|
22 | });
|
---|
23 |
|
---|
24 | test('destroy', function() {
|
---|
25 | expect(6);
|
---|
26 |
|
---|
27 | el = $('#tabs1').tabs({ collapsible: true });
|
---|
28 | $('li:eq(2)', el).simulate('mouseover').find('a').focus();
|
---|
29 | el.tabs('destroy');
|
---|
30 |
|
---|
31 | ok( el.is(':not(.ui-tabs, .ui-widget, .ui-widget-content, .ui-corner-all, .ui-tabs-collapsible)'), 'remove classes from container');
|
---|
32 | ok( $('ul', el).is(':not(.ui-tabs-nav, .ui-helper-reset, .ui-helper-clearfix, .ui-widget-header, .ui-corner-all)'), 'remove classes from list' );
|
---|
33 | ok( $('div:eq(1)', el).is(':not(.ui-tabs-panel, .ui-widget-content, .ui-corner-bottom, .ui-tabs-hide)'), 'remove classes to panel' );
|
---|
34 | ok( $('li:eq(0)', el).is(':not(.ui-tabs-selected, .ui-state-active, .ui-corner-top)'), 'remove classes from active li');
|
---|
35 | ok( $('li:eq(1)', el).is(':not(.ui-state-default, .ui-corner-top)'), 'remove classes from inactive li');
|
---|
36 | ok( $('li:eq(2)', el).is(':not(.ui-state-hover, .ui-state-focus)'), 'remove classes from mouseovered or focused li');
|
---|
37 | });
|
---|
38 |
|
---|
39 | test('enable', function() {
|
---|
40 | ok(false, "missing test - untested code is broken code.");
|
---|
41 | });
|
---|
42 |
|
---|
43 | test('disable', function() {
|
---|
44 | ok(false, "missing test - untested code is broken code.");
|
---|
45 | });
|
---|
46 |
|
---|
47 | test('add', function() {
|
---|
48 | expect(4);
|
---|
49 |
|
---|
50 | el = $('#tabs1').tabs();
|
---|
51 | el.tabs('add', "#new", 'New');
|
---|
52 |
|
---|
53 | var added = $('li:last', el).simulate('mouseover');
|
---|
54 | ok(added.is('.ui-state-hover'), 'should add mouseover handler to added tab');
|
---|
55 | added.simulate('mouseout');
|
---|
56 | var other = $('li:first', el).simulate('mouseover');
|
---|
57 | ok(other.is('.ui-state-hover'), 'should not remove mouseover handler from existing tab');
|
---|
58 | other.simulate('mouseout');
|
---|
59 |
|
---|
60 | equals($('a', added).attr('href'), '#new', 'should not expand href to full url of current page');
|
---|
61 |
|
---|
62 | ok(false, "missing test - untested code is broken code.");
|
---|
63 | });
|
---|
64 |
|
---|
65 | test('remove', function() {
|
---|
66 | expect(4);
|
---|
67 |
|
---|
68 | el = $('#tabs1').tabs();
|
---|
69 |
|
---|
70 | el.tabs('remove', 0);
|
---|
71 | equals(el.tabs('length'), 2, 'remove tab');
|
---|
72 | equals($('li a[href$="fragment-1"]', el).length, 0, 'remove associated list item');
|
---|
73 | equals($('#fragment-1').length, 0, 'remove associated panel');
|
---|
74 |
|
---|
75 | // TODO delete tab -> focus tab to right
|
---|
76 | // TODO delete last tab -> focus tab to left
|
---|
77 |
|
---|
78 | el.tabs('select', 1);
|
---|
79 | el.tabs('remove', 1);
|
---|
80 | equals(el.tabs('option', 'selected'), 0, 'update selected property');
|
---|
81 | });
|
---|
82 |
|
---|
83 | test('select', function() {
|
---|
84 | expect(9);
|
---|
85 |
|
---|
86 | el = $('#tabs1').tabs();
|
---|
87 |
|
---|
88 | el.tabs('select', 1);
|
---|
89 | equals(el.tabs('option', 'selected'), 1, 'should select tab');
|
---|
90 |
|
---|
91 | el.tabs('destroy');
|
---|
92 | el.tabs({ collapsible: true });
|
---|
93 | el.tabs('select', 0);
|
---|
94 | equals(el.tabs('option', 'selected'), -1, 'should collapse tab passing in the already selected tab');
|
---|
95 |
|
---|
96 | el.tabs('destroy');
|
---|
97 | el.tabs({ collapsible: true });
|
---|
98 | el.tabs('select', -1);
|
---|
99 | equals(el.tabs('option', 'selected'), -1, 'should collapse tab passing in -1');
|
---|
100 |
|
---|
101 | el.tabs('destroy');
|
---|
102 | el.tabs({ collapsible: true });
|
---|
103 | el.tabs('select', null);
|
---|
104 | equals(el.tabs('option', 'selected'), -1, 'should collapse tab passing in null (deprecated)');
|
---|
105 | el.tabs('select', null);
|
---|
106 | equals(el.tabs('option', 'selected'), -1, 'should not select tab passing in null a second time (deprecated)');
|
---|
107 |
|
---|
108 | el.tabs('destroy');
|
---|
109 | el.tabs();
|
---|
110 | el.tabs('select', 0);
|
---|
111 | equals(el.tabs('option', 'selected'), 0, 'should not collapse tab if collapsible is not set to true');
|
---|
112 | el.tabs('select', -1);
|
---|
113 | equals(el.tabs('option', 'selected'), 0, 'should not collapse tab if collapsible is not set to true');
|
---|
114 | el.tabs('select', null);
|
---|
115 | equals(el.tabs('option', 'selected'), 0, 'should not collapse tab if collapsible is not set to true');
|
---|
116 |
|
---|
117 | el.tabs('select', '#fragment-2');
|
---|
118 | equals(el.tabs('option', 'selected'), 1, 'should select tab by id');
|
---|
119 | });
|
---|
120 |
|
---|
121 | test('load', function() {
|
---|
122 | ok(false, "missing test - untested code is broken code.");
|
---|
123 | });
|
---|
124 |
|
---|
125 | test('url', function() {
|
---|
126 | ok(false, "missing test - untested code is broken code.");
|
---|
127 | });
|
---|
128 |
|
---|
129 | test('length', function() {
|
---|
130 | expect(1);
|
---|
131 |
|
---|
132 | el = $('#tabs1').tabs();
|
---|
133 | equals(el.tabs('length'), $('ul a', el).length, ' should return length');
|
---|
134 | });
|
---|
135 |
|
---|
136 | test('rotate', function() {
|
---|
137 | ok(false, "missing test - untested code is broken code.");
|
---|
138 | });
|
---|
139 |
|
---|
140 | })(jQuery);
|
---|