aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/accordion/accordion.html20
-rw-r--r--tests/unit/accordion/accordion_common.js (renamed from tests/unit/accordion/accordion_defaults.js)2
-rw-r--r--tests/unit/accordion/accordion_common_deprecated.js (renamed from tests/unit/accordion/accordion_defaults_deprecated.js)2
-rw-r--r--tests/unit/accordion/accordion_core.js21
-rw-r--r--tests/unit/accordion/accordion_deprecated.html20
-rw-r--r--tests/unit/accordion/accordion_deprecated.js170
-rw-r--r--tests/unit/accordion/accordion_events.js109
-rw-r--r--tests/unit/accordion/accordion_methods.js18
-rw-r--r--tests/unit/accordion/accordion_options.js142
-rw-r--r--tests/unit/accordion/accordion_test_helpers.js58
-rw-r--r--tests/unit/accordion/all.html4
-rw-r--r--tests/unit/all-active.html4
-rw-r--r--tests/unit/all.html4
-rw-r--r--tests/unit/autocomplete/all.html4
-rw-r--r--tests/unit/autocomplete/autocomplete.html14
-rw-r--r--tests/unit/autocomplete/autocomplete_common.js (renamed from tests/unit/autocomplete/autocomplete_defaults.js)2
-rw-r--r--tests/unit/autocomplete/autocomplete_core.js29
-rw-r--r--tests/unit/autocomplete/autocomplete_events.js2
-rw-r--r--tests/unit/button/all.html4
-rw-r--r--tests/unit/button/button.html14
-rw-r--r--tests/unit/button/button_common.js (renamed from tests/unit/button/button_defaults.js)2
-rw-r--r--tests/unit/button/button_core.js11
-rw-r--r--tests/unit/button/button_methods.js4
-rw-r--r--tests/unit/core/all.html4
-rw-r--r--tests/unit/core/core.html26
-rw-r--r--tests/unit/core/core.js57
-rw-r--r--tests/unit/core/selector.js76
-rw-r--r--tests/unit/datepicker/all.html4
-rw-r--r--tests/unit/datepicker/datepicker.html12
-rw-r--r--tests/unit/datepicker/datepicker_core.js80
-rw-r--r--tests/unit/datepicker/datepicker_defaults.js2
-rw-r--r--tests/unit/datepicker/datepicker_events.js17
-rw-r--r--tests/unit/datepicker/datepicker_methods.js34
-rw-r--r--tests/unit/datepicker/datepicker_options.js231
-rw-r--r--tests/unit/datepicker/datepicker_tickets.js14
-rw-r--r--tests/unit/dialog/all.html4
-rw-r--r--tests/unit/dialog/dialog.html14
-rw-r--r--tests/unit/dialog/dialog_common.js (renamed from tests/unit/dialog/dialog_defaults.js)2
-rw-r--r--tests/unit/dialog/dialog_core.js8
-rw-r--r--tests/unit/dialog/dialog_events.js10
-rw-r--r--tests/unit/dialog/dialog_methods.js9
-rw-r--r--tests/unit/dialog/dialog_options.js94
-rw-r--r--tests/unit/dialog/dialog_tickets.js81
-rw-r--r--tests/unit/draggable/all.html4
-rw-r--r--tests/unit/draggable/draggable.html14
-rw-r--r--tests/unit/draggable/draggable_common.js32
-rw-r--r--tests/unit/draggable/draggable_core.js18
-rw-r--r--tests/unit/draggable/draggable_defaults.js36
-rw-r--r--tests/unit/draggable/draggable_options.js79
-rw-r--r--tests/unit/droppable/all.html4
-rw-r--r--tests/unit/droppable/droppable.html14
-rw-r--r--tests/unit/droppable/droppable_common.js12
-rw-r--r--tests/unit/droppable/droppable_core.js10
-rw-r--r--tests/unit/droppable/droppable_defaults.js16
-rw-r--r--tests/unit/droppable/droppable_options.js4
-rw-r--r--tests/unit/effects/all.html4
-rw-r--r--tests/unit/effects/effects.html11
-rw-r--r--tests/unit/effects/effects_core.js121
-rw-r--r--tests/unit/effects/effects_scale.js19
-rw-r--r--tests/unit/menu/all.html4
-rw-r--r--tests/unit/menu/menu.html30
-rw-r--r--tests/unit/menu/menu_common.js (renamed from tests/unit/menu/menu_defaults.js)2
-rw-r--r--tests/unit/menu/menu_core.js9
-rw-r--r--tests/unit/menu/menu_events.js232
-rw-r--r--tests/unit/menu/menu_methods.js17
-rw-r--r--tests/unit/menu/menu_options.js19
-rw-r--r--tests/unit/menu/menu_test_helpers.js28
-rw-r--r--tests/unit/position/all.html4
-rw-r--r--tests/unit/position/position.html57
-rw-r--r--tests/unit/position/position_core.js534
-rw-r--r--tests/unit/position/position_core_within.js545
-rw-r--r--tests/unit/position/position_deprecated.html54
-rw-r--r--tests/unit/progressbar/all.html4
-rw-r--r--tests/unit/progressbar/progressbar.html14
-rw-r--r--tests/unit/progressbar/progressbar_common.js (renamed from tests/unit/progressbar/progressbar_defaults.js)2
-rw-r--r--tests/unit/progressbar/progressbar_events.js2
-rw-r--r--tests/unit/qunit-composite.css13
-rw-r--r--tests/unit/qunit-composite.js102
-rw-r--r--tests/unit/resizable/all.html4
-rw-r--r--tests/unit/resizable/resizable.html16
-rw-r--r--tests/unit/resizable/resizable_common.js27
-rw-r--r--tests/unit/resizable/resizable_defaults.js28
-rw-r--r--tests/unit/resizable/resizable_events.js12
-rw-r--r--tests/unit/resizable/resizable_methods.js55
-rw-r--r--tests/unit/resizable/resizable_options.js9
-rw-r--r--tests/unit/selectable/all.html4
-rw-r--r--tests/unit/selectable/selectable.html14
-rw-r--r--tests/unit/selectable/selectable_common.js12
-rw-r--r--tests/unit/selectable/selectable_defaults.js16
-rw-r--r--tests/unit/selectable/selectable_methods.js16
-rw-r--r--tests/unit/selectable/selectable_options.js6
-rw-r--r--tests/unit/slider/all.html4
-rw-r--r--tests/unit/slider/slider.html14
-rw-r--r--tests/unit/slider/slider_common.js (renamed from tests/unit/slider/slider_defaults.js)2
-rw-r--r--tests/unit/slider/slider_methods.js14
-rw-r--r--tests/unit/slider/slider_options.js10
-rw-r--r--tests/unit/sortable/all.html4
-rw-r--r--tests/unit/sortable/sortable.html14
-rw-r--r--tests/unit/sortable/sortable_common.js30
-rw-r--r--tests/unit/sortable/sortable_defaults.js34
-rw-r--r--tests/unit/sortable/sortable_events.js64
-rw-r--r--tests/unit/sortable/sortable_methods.js4
-rw-r--r--tests/unit/sortable/sortable_tickets.js4
-rw-r--r--tests/unit/spinner/all.html4
-rw-r--r--tests/unit/spinner/spinner.html16
-rw-r--r--tests/unit/spinner/spinner_common.js (renamed from tests/unit/spinner/spinner_defaults.js)2
-rw-r--r--tests/unit/spinner/spinner_core.js48
-rw-r--r--tests/unit/spinner/spinner_events.js148
-rw-r--r--tests/unit/spinner/spinner_methods.js14
-rw-r--r--tests/unit/spinner/spinner_options.js4
-rw-r--r--tests/unit/spinner/spinner_test_helpers.js11
-rw-r--r--tests/unit/subsuite.js13
-rw-r--r--tests/unit/subsuiteRunner.css8
-rw-r--r--tests/unit/subsuiteRunner.js82
-rw-r--r--tests/unit/swarminject.js2
-rw-r--r--tests/unit/tabs/all.html4
-rw-r--r--tests/unit/tabs/tabs.html72
-rw-r--r--tests/unit/tabs/tabs_common.js (renamed from tests/unit/tabs/tabs_defaults.js)2
-rw-r--r--tests/unit/tabs/tabs_common_deprecated.js (renamed from tests/unit/tabs/tabs_defaults_deprecated.js)2
-rw-r--r--tests/unit/tabs/tabs_core.js4
-rw-r--r--tests/unit/tabs/tabs_deprecated.html72
-rw-r--r--tests/unit/tabs/tabs_deprecated.js130
-rw-r--r--tests/unit/tabs/tabs_events.js140
-rw-r--r--tests/unit/tabs/tabs_methods.js113
-rw-r--r--tests/unit/tabs/tabs_options.js73
-rw-r--r--tests/unit/tabs/tabs_test_helpers.js61
-rw-r--r--tests/unit/testsuite.js110
-rw-r--r--tests/unit/tooltip/all.html4
-rw-r--r--tests/unit/tooltip/tooltip.html14
-rw-r--r--tests/unit/tooltip/tooltip_common.js (renamed from tests/unit/tooltip/tooltip_defaults.js)2
-rw-r--r--tests/unit/tooltip/tooltip_methods.js10
-rw-r--r--tests/unit/tooltip/tooltip_options.js11
-rw-r--r--tests/unit/widget/all.html4
-rw-r--r--tests/unit/widget/widget.html12
-rw-r--r--tests/unit/widget/widget_core.js76
-rw-r--r--tests/unit/widget/widget_extend.js47
136 files changed, 2504 insertions, 2737 deletions
diff --git a/tests/unit/accordion/accordion.html b/tests/unit/accordion/accordion.html
index 5c9169ea3..b3b7caeae 100644
--- a/tests/unit/accordion/accordion.html
+++ b/tests/unit/accordion/accordion.html
@@ -8,9 +8,12 @@
<script>
$.uiBackCompat = false;
</script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.accordion" ],
js: [
"ui/jquery.ui.core.js",
@@ -20,13 +23,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
<script src="accordion_test_helpers.js"></script>
- <script src="accordion_defaults.js"></script>
+ <script src="accordion_common.js"></script>
<script src="accordion_core.js"></script>
<script src="accordion_events.js"></script>
<script src="accordion_methods.js"></script>
@@ -93,7 +91,7 @@
<li><a href="?p=1.1.1.3">Amps</a></li>
<li><a href="?p=1.1.1.4">Effects</a></li>
<li><a href="?p=1.1.1.5">Accessories</a></li>
- </ul>
+ </ul>
</li>
<li>
<h2><a href="?p=1.1.2"><span>Bass</span></a></h2>
@@ -105,7 +103,7 @@
<li><a href="?p=1.1.2.5">Accessories</a></li>
<li><a href="?p=1.1.2.5">Accessories</a></li>
<li><a href="?p=1.1.2.5">Accessories</a></li>
- </ul>
+ </ul>
</li>
<li>
<h2><a href="?p=1.1.3">Drums</a></h2>
@@ -113,7 +111,7 @@
<li><a href="?p=1.1.3.2">Acoustic</a></li>
<li><a href="?p=1.1.3.3">Electronic</a></li>
<li><a href="?p=1.1.3.6">Accessories</a></li>
- </ul>
+ </ul>
</li>
</ul>
</div>
diff --git a/tests/unit/accordion/accordion_defaults.js b/tests/unit/accordion/accordion_common.js
index 9ad85bbce..ef24cf25e 100644
--- a/tests/unit/accordion/accordion_defaults.js
+++ b/tests/unit/accordion/accordion_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "accordion", {
+TestHelpers.commonWidgetTests( "accordion", {
defaults: {
active: 0,
animate: {},
diff --git a/tests/unit/accordion/accordion_defaults_deprecated.js b/tests/unit/accordion/accordion_common_deprecated.js
index 99f5ac827..22d5e1289 100644
--- a/tests/unit/accordion/accordion_defaults_deprecated.js
+++ b/tests/unit/accordion/accordion_common_deprecated.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "accordion", {
+TestHelpers.commonWidgetTests( "accordion", {
defaults: {
active: 0,
animate: null,
diff --git a/tests/unit/accordion/accordion_core.js b/tests/unit/accordion/accordion_core.js
index 92d79c121..7a1d56c18 100644
--- a/tests/unit/accordion/accordion_core.js
+++ b/tests/unit/accordion/accordion_core.js
@@ -1,6 +1,9 @@
(function( $ ) {
-module( "accordion: core", accordion_setupTeardown() );
+var setupTeardown = TestHelpers.accordion.setupTeardown,
+ state = TestHelpers.accordion.state;
+
+module( "accordion: core", setupTeardown() );
$.each( { div: "#list1", ul: "#navigation", dl: "#accordion-dl" }, function( type, selector ) {
test( "markup structure: " + type, function() {
@@ -21,15 +24,15 @@ test( "handle click on header-descendant", function() {
expect( 1 );
var element = $( "#navigation" ).accordion();
$( "#navigation h2:eq(1) a" ).click();
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "accessibility", function () {
expect( 37 );
var element = $( "#list1" ).accordion({
- active: 1
- });
- var headers = element.find( ".ui-accordion-header" );
+ active: 1
+ }),
+ headers = element.find( ".ui-accordion-header" );
equal( element.attr( "role" ), "tablist", "element role" );
headers.each(function( i ) {
@@ -85,22 +88,22 @@ asyncTest( "keybaord support", function() {
ok( headers.eq( 2 ).is( ".ui-state-focus" ), "RIGHT moves focus to next header" );
headers.eq( 2 ).simulate( "keydown", { keyCode: keyCode.DOWN } );
ok( headers.eq( 0 ).is( ".ui-state-focus" ), "DOWN wraps focus to first header" );
-
+
headers.eq( 0 ).simulate( "keydown", { keyCode: keyCode.UP } );
ok( headers.eq( 2 ).is( ".ui-state-focus" ), "UP wraps focus to last header" );
headers.eq( 2 ).simulate( "keydown", { keyCode: keyCode.LEFT } );
ok( headers.eq( 1 ).is( ".ui-state-focus" ), "LEFT moves focus to previous header" );
-
+
headers.eq( 1 ).simulate( "keydown", { keyCode: keyCode.HOME } );
ok( headers.eq( 0 ).is( ".ui-state-focus" ), "HOME moves focus to first header" );
headers.eq( 0 ).simulate( "keydown", { keyCode: keyCode.END } );
ok( headers.eq( 2 ).is( ".ui-state-focus" ), "END moves focus to last header" );
-
+
headers.eq( 2 ).simulate( "keydown", { keyCode: keyCode.ENTER } );
equal( element.accordion( "option", "active" ) , 2, "ENTER activates panel" );
headers.eq( 1 ).simulate( "keydown", { keyCode: keyCode.SPACE } );
equal( element.accordion( "option", "active" ), 1, "SPACE activates panel" );
-
+
anchor.simulate( "focus" );
setTimeout(function() {
ok( !headers.eq( 1 ).is( ".ui-state-focus" ), "header loses focus when focusing inside the panel" );
diff --git a/tests/unit/accordion/accordion_deprecated.html b/tests/unit/accordion/accordion_deprecated.html
index 116eb43b5..dfb9fa90e 100644
--- a/tests/unit/accordion/accordion_deprecated.html
+++ b/tests/unit/accordion/accordion_deprecated.html
@@ -5,9 +5,12 @@
<title>jQuery UI Accordion Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.accordion" ],
js: [
"ui/jquery.ui.core.js",
@@ -17,13 +20,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
<script src="accordion_test_helpers.js"></script>
- <script src="accordion_defaults_deprecated.js"></script>
+ <script src="accordion_common_deprecated.js"></script>
<script src="accordion_core.js"></script>
<script src="accordion_events.js"></script>
<script src="accordion_methods.js"></script>
@@ -91,7 +89,7 @@
<li><a href="?p=1.1.1.3">Amps</a></li>
<li><a href="?p=1.1.1.4">Effects</a></li>
<li><a href="?p=1.1.1.5">Accessories</a></li>
- </ul>
+ </ul>
</li>
<li>
<h2><a href="?p=1.1.2"><span>Bass</span></a></h2>
@@ -103,7 +101,7 @@
<li><a href="?p=1.1.2.5">Accessories</a></li>
<li><a href="?p=1.1.2.5">Accessories</a></li>
<li><a href="?p=1.1.2.5">Accessories</a></li>
- </ul>
+ </ul>
</li>
<li>
<h2><a href="?p=1.1.3">Drums</a></h2>
@@ -111,7 +109,7 @@
<li><a href="?p=1.1.3.2">Acoustic</a></li>
<li><a href="?p=1.1.3.3">Electronic</a></li>
<li><a href="?p=1.1.3.6">Accessories</a></li>
- </ul>
+ </ul>
</li>
</ul>
</div>
diff --git a/tests/unit/accordion/accordion_deprecated.js b/tests/unit/accordion/accordion_deprecated.js
index eec034e18..7f033a340 100644
--- a/tests/unit/accordion/accordion_deprecated.js
+++ b/tests/unit/accordion/accordion_deprecated.js
@@ -1,70 +1,74 @@
(function( $ ) {
-module( "accordion (deprecated): expanded active option, activate method", accordion_setupTeardown() );
+var equalHeights = TestHelpers.accordion.equalHeights,
+ setupTeardown = TestHelpers.accordion.setupTeardown,
+ state = TestHelpers.accordion.state;
+
+module( "accordion (deprecated): expanded active option, activate method", setupTeardown() );
test( "activate, numeric", function() {
expect( 5 );
var element = $( "#list1" ).accordion({ active: 1 });
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.accordion( "activate", 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "activate", 0 );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.accordion( "activate", 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.accordion( "activate", 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
});
test( "activate, numeric, collapsible:true", function() {
expect( 3 );
var element = $( "#list1" ).accordion({ collapsible: true });
element.accordion( "activate", 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "activate", 0 );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.accordion( "activate", -1 );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
test( "activate, boolean, collapsible: true", function() {
expect( 2 );
var element = $( "#list1" ).accordion({ collapsible: true });
element.accordion( "activate", 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "activate", false );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
test( "activate, boolean, collapsible: false", function() {
expect( 2 );
var element = $( "#list1" ).accordion();
element.accordion( "activate", 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "activate", false );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
});
test( "activate, string expression", function() {
expect( 4 );
var element = $( "#list1" ).accordion({ active: "h3:last" });
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "activate", ":first" );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.accordion( "activate", ":eq(1)" );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.accordion( "activate", ":last" );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
});
test( "activate, jQuery or DOM element", function() {
expect( 3 );
var element = $( "#list1" ).accordion({ active: $( "#list1 h3:last" ) });
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "activate", $( "#list1 h3:first" ) );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.accordion( "activate", $( "#list1 h3" )[ 1 ] );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "{ active: Selector }", function() {
@@ -72,9 +76,9 @@ test( "{ active: Selector }", function() {
var element = $("#list1").accordion({
active: "h3:last"
});
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "option", "active", "h3:eq(1)" );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "{ active: Element }", function() {
@@ -82,9 +86,9 @@ test( "{ active: Element }", function() {
var element = $( "#list1" ).accordion({
active: $( "#list1 h3:last" )[ 0 ]
});
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "option", "active", $( "#list1 h3:eq(1)" )[ 0 ] );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "{ active: jQuery Object }", function() {
@@ -92,26 +96,26 @@ test( "{ active: jQuery Object }", function() {
var element = $( "#list1" ).accordion({
active: $( "#list1 h3:last" )
});
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "option", "active", $( "#list1 h3:eq(1)" ) );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
-module( "accordion (deprecated) - height options", accordion_setupTeardown() );
+module( "accordion (deprecated) - height options", setupTeardown() );
test( "{ autoHeight: true }, default", function() {
expect( 3 );
- accordion_equalHeights( $( "#navigation" ).accordion({ autoHeight: true }), 95, 130 );
+ equalHeights( $( "#navigation" ).accordion({ autoHeight: true }), 95, 130 );
});
test( "{ autoHeight: false }", function() {
expect( 3 );
- var element = $( "#navigation" ).accordion({ autoHeight: false });
- var sizes = [];
+ var element = $( "#navigation" ).accordion({ autoHeight: false }),
+ sizes = [];
element.find( ".ui-accordion-content" ).each(function() {
sizes.push( $(this).height() );
});
@@ -124,7 +128,7 @@ test( "{ fillSpace: true }", function() {
expect( 3 );
$( "#navigationWrapper" ).height( 500 );
var element = $( "#navigation" ).accordion({ fillSpace: true });
- accordion_equalHeights( element, 446, 458 );
+ equalHeights( element, 446, 458 );
});
test( "{ fillSapce: true } with sibling", function() {
@@ -138,7 +142,7 @@ test( "{ fillSapce: true } with sibling", function() {
})
.prependTo( "#navigationWrapper" );
var element = $( "#navigation" ).accordion({ fillSpace: true });
- accordion_equalHeights( element , 346, 358);
+ equalHeights( element , 346, 358);
});
test( "{ fillSpace: true } with multiple siblings", function() {
@@ -167,14 +171,14 @@ test( "{ fillSpace: true } with multiple siblings", function() {
})
.prependTo( "#navigationWrapper" );
var element = $( "#navigation" ).accordion({ fillSpace: true });
- accordion_equalHeights( element, 296, 308 );
+ equalHeights( element, 296, 308 );
});
-module( "accordion (deprecated) - icons", accordion_setupTeardown() );
+module( "accordion (deprecated) - icons", setupTeardown() );
test( "icons, headerSelected", function() {
expect( 3 );
@@ -191,7 +195,7 @@ test( "icons, headerSelected", function() {
-module( "accordion (deprecated) - resize", accordion_setupTeardown() );
+module( "accordion (deprecated) - resize", setupTeardown() );
test( "resize", function() {
expect( 6 );
@@ -202,29 +206,29 @@ test( "resize", function() {
.accordion({
heightStyle: "fill"
});
- accordion_equalHeights( element, 246, 258 );
+ equalHeights( element, 246, 258 );
element.parent().height( 500 );
element.accordion( "resize" );
- accordion_equalHeights( element, 446, 458 );
+ equalHeights( element, 446, 458 );
});
-module( "accordion (deprecated) - navigation", accordion_setupTeardown() );
+module( "accordion (deprecated) - navigation", setupTeardown() );
test( "{ navigation: true, navigationFilter: header }", function() {
expect( 2 );
var element = $( "#navigation" ).accordion({
navigation: true,
navigationFilter: function() {
- return /\?p=1\.1\.3$/.test( this.href );
+ return (/\?p=1\.1\.3$/).test( this.href );
}
});
equal( element.accordion( "option", "active" ), 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
});
test( "{ navigation: true, navigationFilter: content }", function() {
@@ -232,105 +236,105 @@ test( "{ navigation: true, navigationFilter: content }", function() {
var element = $( "#navigation" ).accordion({
navigation: true,
navigationFilter: function() {
- return /\?p=1\.1\.3\.2$/.test( this.href );
+ return (/\?p=1\.1\.3\.2$/).test( this.href );
}
});
equal( element.accordion( "option", "active" ), 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
});
-module( "accordion (deprecated) - changestart/change events", accordion_setupTeardown() );
+module( "accordion (deprecated) - changestart/change events", setupTeardown() );
test( "changestart", function() {
expect( 26 );
var element = $( "#list1" ).accordion({
- active: false,
- collapsible: true
- });
- var headers = element.find( ".ui-accordion-header" );
- var content = element.find( ".ui-accordion-content" );
+ active: false,
+ collapsible: true
+ }),
+ headers = element.find( ".ui-accordion-header" ),
+ content = element.find( ".ui-accordion-content" );
element.one( "accordionchangestart", function( event, ui ) {
- equal( ui.oldHeader.size(), 0 );
- equal( ui.oldContent.size(), 0 );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.oldHeader.length, 0 );
+ equal( ui.oldContent.length, 0 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 0 ] );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
element.accordion( "option", "active", 0 );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.one( "accordionchangestart", function( event, ui ) {
- equal( ui.oldHeader.size(), 1 );
+ equal( ui.oldHeader.length, 1 );
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
- equal( ui.oldContent.size(), 1 );
+ equal( ui.oldContent.length, 1 );
strictEqual( ui.oldContent[ 0 ], content[ 0 ] );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 1 ] );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
headers.eq( 1 ).click();
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.one( "accordionchangestart", function( event, ui ) {
- equal( ui.oldHeader.size(), 1 );
+ equal( ui.oldHeader.length, 1 );
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
- equal( ui.oldContent.size(), 1 );
+ equal( ui.oldContent.length, 1 );
strictEqual( ui.oldContent[ 0 ], content[ 1 ] );
- equal( ui.newHeader.size(), 0 );
- equal( ui.newContent.size(), 0 );
- accordion_state( element, 0, 1, 0 );
+ equal( ui.newHeader.length, 0 );
+ equal( ui.newContent.length, 0 );
+ state( element, 0, 1, 0 );
});
element.accordion( "option", "active", false );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
test( "change", function() {
expect( 20 );
var element = $( "#list1" ).accordion({
- active: false,
- collapsible: true
- });
- var headers = element.find( ".ui-accordion-header" );
- var content = element.find( ".ui-accordion-content" );
+ active: false,
+ collapsible: true
+ }),
+ headers = element.find( ".ui-accordion-header" ),
+ content = element.find( ".ui-accordion-content" );
element.one( "accordionchange", function( event, ui ) {
- equal( ui.oldHeader.size(), 0 );
- equal( ui.oldContent.size(), 0 );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.oldHeader.length, 0 );
+ equal( ui.oldContent.length, 0 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 0 ] );
});
element.accordion( "option", "active", 0 );
element.one( "accordionchange", function( event, ui ) {
- equal( ui.oldHeader.size(), 1 );
+ equal( ui.oldHeader.length, 1 );
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
- equal( ui.oldContent.size(), 1 );
+ equal( ui.oldContent.length, 1 );
strictEqual( ui.oldContent[ 0 ], content[ 0 ] );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 1 ] );
});
headers.eq( 1 ).click();
element.one( "accordionchange", function( event, ui ) {
- equal( ui.oldHeader.size(), 1 );
+ equal( ui.oldHeader.length, 1 );
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
- equal( ui.oldContent.size(), 1 );
+ equal( ui.oldContent.length, 1 );
strictEqual( ui.oldContent[ 0 ], content[ 1 ] );
- equal( ui.newHeader.size(), 0 );
- equal( ui.newContent.size(), 0 );
+ equal( ui.newHeader.length, 0 );
+ equal( ui.newContent.length, 0 );
});
element.accordion( "option", "active", false );
});
diff --git a/tests/unit/accordion/accordion_events.js b/tests/unit/accordion/accordion_events.js
index dbb3e37df..079c71a62 100644
--- a/tests/unit/accordion/accordion_events.js
+++ b/tests/unit/accordion/accordion_events.js
@@ -1,6 +1,9 @@
(function( $ ) {
-module( "accordion: events", accordion_setupTeardown() );
+var setupTeardown = TestHelpers.accordion.setupTeardown,
+ state = TestHelpers.accordion.state;
+
+module( "accordion: events", setupTeardown() );
test( "create", function() {
expect( 10 );
@@ -11,9 +14,9 @@ test( "create", function() {
element.accordion({
create: function( event, ui ) {
- equal( ui.header.size(), 1, "header size" );
+ equal( ui.header.length, 1, "header length" );
strictEqual( ui.header[ 0 ], headers[ 0 ], "header" );
- equal( ui.content.size(), 1, "content size" );
+ equal( ui.content.length, 1, "content length" );
strictEqual( ui.content[ 0 ], contents[ 0 ], "content" );
}
});
@@ -22,9 +25,9 @@ test( "create", function() {
element.accordion({
active: 2,
create: function( event, ui ) {
- equal( ui.header.size(), 1, "header size" );
+ equal( ui.header.length, 1, "header length" );
strictEqual( ui.header[ 0 ], headers[ 2 ], "header" );
- equal( ui.content.size(), 1, "content size" );
+ equal( ui.content.length, 1, "content length" );
strictEqual( ui.content[ 0 ], contents[ 2 ], "content" );
}
});
@@ -34,8 +37,8 @@ test( "create", function() {
active: false,
collapsible: true,
create: function( event, ui ) {
- equal( ui.header.size(), 0, "header size" );
- equal( ui.content.size(), 0, "content size" );
+ equal( ui.header.length, 0, "header length" );
+ equal( ui.content.length, 0, "content length" );
}
});
element.accordion( "destroy" );
@@ -44,106 +47,106 @@ test( "create", function() {
test( "beforeActivate", function() {
expect( 38 );
var element = $( "#list1" ).accordion({
- active: false,
- collapsible: true
- });
- var headers = element.find( ".ui-accordion-header" );
- var content = element.find( ".ui-accordion-content" );
+ active: false,
+ collapsible: true
+ }),
+ headers = element.find( ".ui-accordion-header" ),
+ content = element.find( ".ui-accordion-content" );
element.one( "accordionbeforeactivate", function( event, ui ) {
ok( !( "originalEvent" in event ) );
- equal( ui.oldHeader.size(), 0 );
- equal( ui.oldContent.size(), 0 );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.oldHeader.length, 0 );
+ equal( ui.oldContent.length, 0 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 0 ] );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
element.accordion( "option", "active", 0 );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.one( "accordionbeforeactivate", function( event, ui ) {
equal( event.originalEvent.type, "click" );
- equal( ui.oldHeader.size(), 1 );
+ equal( ui.oldHeader.length, 1 );
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
- equal( ui.oldContent.size(), 1 );
+ equal( ui.oldContent.length, 1 );
strictEqual( ui.oldContent[ 0 ], content[ 0 ] );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 1 ] );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
headers.eq( 1 ).click();
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.one( "accordionbeforeactivate", function( event, ui ) {
ok( !( "originalEvent" in event ) );
- equal( ui.oldHeader.size(), 1 );
+ equal( ui.oldHeader.length, 1 );
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
- equal( ui.oldContent.size(), 1 );
+ equal( ui.oldContent.length, 1 );
strictEqual( ui.oldContent[ 0 ], content[ 1 ] );
- equal( ui.newHeader.size(), 0 );
- equal( ui.newContent.size(), 0 );
- accordion_state( element, 0, 1, 0 );
+ equal( ui.newHeader.length, 0 );
+ equal( ui.newContent.length, 0 );
+ state( element, 0, 1, 0 );
});
element.accordion( "option", "active", false );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
element.one( "accordionbeforeactivate", function( event, ui ) {
ok( !( "originalEvent" in event ) );
- equal( ui.oldHeader.size(), 0 );
- equal( ui.oldContent.size(), 0 );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.oldHeader.length, 0 );
+ equal( ui.oldContent.length, 0 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 2 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 2 ] );
event.preventDefault();
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
element.accordion( "option", "active", 2 );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
test( "activate", function() {
expect( 21 );
var element = $( "#list1" ).accordion({
- active: false,
- collapsible: true
- });
- var headers = element.find( ".ui-accordion-header" );
- var content = element.find( ".ui-accordion-content" );
+ active: false,
+ collapsible: true
+ }),
+ headers = element.find( ".ui-accordion-header" ),
+ content = element.find( ".ui-accordion-content" );
element.one( "accordionactivate", function( event, ui ) {
- equal( ui.oldHeader.size(), 0 );
- equal( ui.oldContent.size(), 0 );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.oldHeader.length, 0 );
+ equal( ui.oldContent.length, 0 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 0 ] );
});
element.accordion( "option", "active", 0 );
element.one( "accordionactivate", function( event, ui ) {
- equal( ui.oldHeader.size(), 1 );
+ equal( ui.oldHeader.length, 1 );
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
- equal( ui.oldContent.size(), 1 );
+ equal( ui.oldContent.length, 1 );
strictEqual( ui.oldContent[ 0 ], content[ 0 ] );
- equal( ui.newHeader.size(), 1 );
+ equal( ui.newHeader.length, 1 );
strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
- equal( ui.newContent.size(), 1 );
+ equal( ui.newContent.length, 1 );
strictEqual( ui.newContent[ 0 ], content[ 1 ] );
});
headers.eq( 1 ).click();
element.one( "accordionactivate", function( event, ui ) {
- equal( ui.oldHeader.size(), 1 );
+ equal( ui.oldHeader.length, 1 );
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
- equal( ui.oldContent.size(), 1 );
+ equal( ui.oldContent.length, 1 );
strictEqual( ui.oldContent[ 0 ], content[ 1 ] );
- equal( ui.newHeader.size(), 0 );
- equal( ui.newContent.size(), 0 );
+ equal( ui.newHeader.length, 0 );
+ equal( ui.newContent.length, 0 );
});
element.accordion( "option", "active", false );
diff --git a/tests/unit/accordion/accordion_methods.js b/tests/unit/accordion/accordion_methods.js
index 2f4722070..2c5b36632 100644
--- a/tests/unit/accordion/accordion_methods.js
+++ b/tests/unit/accordion/accordion_methods.js
@@ -1,6 +1,10 @@
(function( $ ) {
-module( "accordion: methods", accordion_setupTeardown() );
+var equalHeights = TestHelpers.accordion.equalHeights,
+ setupTeardown = TestHelpers.accordion.setupTeardown,
+ state = TestHelpers.accordion.state;
+
+module( "accordion: methods", setupTeardown() );
test( "destroy", function() {
expect( 1 );
@@ -12,17 +16,17 @@ test( "destroy", function() {
test( "enable/disable", function() {
expect( 4 );
var element = $( "#list1" ).accordion();
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.accordion( "disable" );
// event does nothing
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
// option still works
element.accordion( "option", "active", 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.accordion( "enable" );
element.accordion( "option", "active", 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
});
test( "refresh", function() {
@@ -34,11 +38,11 @@ test( "refresh", function() {
.accordion({
heightStyle: "fill"
});
- accordion_equalHeights( element, 246, 258 );
+ equalHeights( element, 246, 258 );
element.parent().height( 500 );
element.accordion( "refresh" );
- accordion_equalHeights( element, 446, 458 );
+ equalHeights( element, 446, 458 );
});
}( jQuery ) );
diff --git a/tests/unit/accordion/accordion_options.js b/tests/unit/accordion/accordion_options.js
index 2b7176394..3c7863520 100644
--- a/tests/unit/accordion/accordion_options.js
+++ b/tests/unit/accordion/accordion_options.js
@@ -1,12 +1,16 @@
(function( $ ) {
-module( "accordion: options", accordion_setupTeardown() );
+var equalHeights = TestHelpers.accordion.equalHeights,
+ setupTeardown = TestHelpers.accordion.setupTeardown,
+ state = TestHelpers.accordion.state;
+
+module( "accordion: options", setupTeardown() );
test( "{ active: default }", function() {
expect( 2 );
var element = $( "#list1" ).accordion();
equal( element.accordion( "option", "active" ), 0 );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
test( "{ active: false }", function() {
@@ -15,19 +19,19 @@ test( "{ active: false }", function() {
active: false,
collapsible: true
});
- accordion_state( element, 0, 0, 0 );
- equal( element.find( ".ui-accordion-header.ui-state-active" ).size(), 0, "no headers selected" );
+ state( element, 0, 0, 0 );
+ equal( element.find( ".ui-accordion-header.ui-state-active" ).length, 0, "no headers selected" );
equal( element.accordion( "option", "active" ), false );
element.accordion( "option", "collapsible", false );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
equal( element.accordion( "option", "active" ), 0 );
element.accordion( "destroy" );
element.accordion({
active: false
});
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
strictEqual( element.accordion( "option", "active" ), 0 );
});
@@ -37,19 +41,19 @@ test( "{ active: Number }", function() {
active: 2
});
equal( element.accordion( "option", "active" ), 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "option", "active", 0 );
equal( element.accordion( "option", "active" ), 0 );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.find( ".ui-accordion-header" ).eq( 1 ).click();
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.accordion( "option", "active", 10 );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
if ( $.uiBackCompat === false ) {
@@ -59,19 +63,19 @@ if ( $.uiBackCompat === false ) {
active: -1
});
equal( element.accordion( "option", "active" ), 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "option", "active", -2 );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.accordion( "option", "active", -10 );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.accordion( "option", "active", -3 );
equal( element.accordion( "option", "active" ), 0 );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
}
@@ -80,7 +84,7 @@ test( "{ animate: false }", function() {
var element = $( "#list1" ).accordion({
animate: false
}),
- panels = element.find( ".ui-accordion-content" );
+ panels = element.find( ".ui-accordion-content" ),
animate = $.fn.animate;
$.fn.animate = function() {
ok( false, ".animate() called" );
@@ -98,7 +102,7 @@ asyncTest( "{ animate: Number }", function() {
var element = $( "#list1" ).accordion({
animate: 100
}),
- panels = element.find( ".ui-accordion-content" );
+ panels = element.find( ".ui-accordion-content" ),
animate = $.fn.animate;
// called twice (both panels)
$.fn.animate = function( props, duration, easing ) {
@@ -120,10 +124,10 @@ asyncTest( "{ animate: Number }", function() {
asyncTest( "{ animate: String }", function() {
expect( 7 );
var element = $( "#list1" ).accordion({
- animate: "linear"
- }),
- panels = element.find( ".ui-accordion-content" );
- animate = $.fn.animate;
+ animate: "linear"
+ }),
+ panels = element.find( ".ui-accordion-content" ),
+ animate = $.fn.animate;
// called twice (both panels)
$.fn.animate = function( props, duration, easing ) {
equal( duration, undefined, "default duration" );
@@ -144,10 +148,10 @@ asyncTest( "{ animate: String }", function() {
asyncTest( "{ animate: {} }", function() {
expect( 7 );
var element = $( "#list1" ).accordion({
- animate: {}
- }),
- panels = element.find( ".ui-accordion-content" );
- animate = $.fn.animate;
+ animate: {}
+ }),
+ panels = element.find( ".ui-accordion-content" ),
+ animate = $.fn.animate;
// called twice (both panels)
$.fn.animate = function( props, duration, easing ) {
equal( duration, undefined, "default duration" );
@@ -168,10 +172,10 @@ asyncTest( "{ animate: {} }", function() {
asyncTest( "{ animate: { duration, easing } }", function() {
expect( 7 );
var element = $( "#list1" ).accordion({
- animate: { duration: 100, easing: "linear" }
- }),
- panels = element.find( ".ui-accordion-content" );
- animate = $.fn.animate;
+ animate: { duration: 100, easing: "linear" }
+ }),
+ panels = element.find( ".ui-accordion-content" ),
+ animate = $.fn.animate;
// called twice (both panels)
$.fn.animate = function( props, duration, easing ) {
equal( duration, 100, "correct duration" );
@@ -192,11 +196,11 @@ asyncTest( "{ animate: { duration, easing } }", function() {
asyncTest( "{ animate: { duration, easing } }, animate down", function() {
expect( 7 );
var element = $( "#list1" ).accordion({
- active: 1,
- animate: { duration: 100, easing: "linear" }
- }),
- panels = element.find( ".ui-accordion-content" );
- animate = $.fn.animate;
+ active: 1,
+ animate: { duration: 100, easing: "linear" }
+ }),
+ panels = element.find( ".ui-accordion-content" ),
+ animate = $.fn.animate;
// called twice (both panels)
$.fn.animate = function( props, duration, easing ) {
equal( duration, 100, "correct duration" );
@@ -217,17 +221,17 @@ asyncTest( "{ animate: { duration, easing } }, animate down", function() {
asyncTest( "{ animate: { duration, easing, down } }, animate down", function() {
expect( 7 );
var element = $( "#list1" ).accordion({
- active: 1,
- animate: {
- duration: 100,
- easing: "linear",
- down: {
- easing: "swing"
+ active: 1,
+ animate: {
+ duration: 100,
+ easing: "linear",
+ down: {
+ easing: "swing"
+ }
}
- }
- }),
- panels = element.find( ".ui-accordion-content" );
- animate = $.fn.animate;
+ }),
+ panels = element.find( ".ui-accordion-content" ),
+ animate = $.fn.animate;
// called twice (both panels)
$.fn.animate = function( props, duration, easing ) {
equal( duration, 100, "correct duration" );
@@ -252,11 +256,11 @@ test( "{ collapsible: false }", function() {
});
element.accordion( "option", "active", false );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.find( ".ui-accordion-header" ).eq( 1 ).click();
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "{ collapsible: true }", function() {
@@ -268,15 +272,15 @@ test( "{ collapsible: true }", function() {
element.accordion( "option", "active", false );
equal( element.accordion( "option", "active" ), false );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
element.accordion( "option", "active", 1 );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.find( ".ui-accordion-header" ).eq( 1 ).click();
equal( element.accordion( "option", "active" ), false );
- accordion_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
test( "{ event: null }", function() {
@@ -284,16 +288,16 @@ test( "{ event: null }", function() {
var element = $( "#list1" ).accordion({
event: null
});
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.accordion( "option", "active", 1 );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
// ensure default click handler isn't bound
element.find( ".ui-accordion-header" ).eq( 2 ).click();
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "{ event: custom }", function() {
@@ -301,20 +305,20 @@ test( "{ event: custom }", function() {
var element = $( "#list1" ).accordion({
event: "custom1 custom2"
});
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom1" );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
// ensure default click handler isn't bound
element.find( ".ui-accordion-header" ).eq( 2 ).trigger( "click" );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.find( ".ui-accordion-header" ).eq( 2 ).trigger( "custom2" );
equal( element.accordion( "option", "active" ), 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.accordion( "option", "event", "custom3" );
@@ -322,20 +326,20 @@ test( "{ event: custom }", function() {
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom1" );
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom2" );
equal( element.accordion( "option", "active" ), 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom3" );
equal( element.accordion( "option", "active" ), 1 );
- accordion_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "{ header: default }", function() {
expect( 2 );
// default: > li > :first-child,> :not(li):even
// > :not(li):even
- accordion_state( $( "#list1" ).accordion(), 1, 0, 0);
+ state( $( "#list1" ).accordion(), 1, 0, 0);
// > li > :first-child
- accordion_state( $( "#navigation" ).accordion(), 1, 0, 0);
+ state( $( "#navigation" ).accordion(), 1, 0, 0);
});
test( "{ header: custom }", function() {
@@ -347,23 +351,23 @@ test( "{ header: custom }", function() {
ok( $( this ).hasClass( "ui-accordion-header" ) );
});
equal( element.find( ".ui-accordion-header" ).length, 3 );
- accordion_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.accordion( "option", "active", 2 );
- accordion_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
});
test( "{ heightStyle: 'auto' }", function() {
expect( 3 );
var element = $( "#navigation" ).accordion({ heightStyle: "auto" });
- accordion_equalHeights( element, 95, 130 );
+ equalHeights( element, 95, 130 );
});
test( "{ heightStyle: 'content' }", function() {
expect( 3 );
- var element = $( "#navigation" ).accordion({ heightStyle: "content" });
- var sizes = element.find( ".ui-accordion-content" ).map(function() {
- return $( this ).height();
- }).get();
+ var element = $( "#navigation" ).accordion({ heightStyle: "content" }),
+ sizes = element.find( ".ui-accordion-content" ).map(function() {
+ return $( this ).height();
+ }).get();
ok( sizes[ 0 ] >= 70 && sizes[ 0 ] <= 105, "was " + sizes[ 0 ] );
ok( sizes[ 1 ] >= 98 && sizes[ 1 ] <= 126, "was " + sizes[ 1 ] );
ok( sizes[ 2 ] >= 42 && sizes[ 2 ] <= 54, "was " + sizes[ 2 ] );
@@ -373,7 +377,7 @@ test( "{ heightStyle: 'fill' }", function() {
expect( 3 );
$( "#navigationWrapper" ).height( 500 );
var element = $( "#navigation" ).accordion({ heightStyle: "fill" });
- accordion_equalHeights( element, 446, 458 );
+ equalHeights( element, 446, 458 );
});
test( "{ heightStyle: 'fill' } with sibling", function() {
@@ -387,7 +391,7 @@ test( "{ heightStyle: 'fill' } with sibling", function() {
})
.prependTo( "#navigationWrapper" );
var element = $( "#navigation" ).accordion({ heightStyle: "fill" });
- accordion_equalHeights( element , 346, 358);
+ equalHeights( element , 346, 358);
});
test( "{ heightStyle: 'fill' } with multiple siblings", function() {
@@ -416,7 +420,7 @@ test( "{ heightStyle: 'fill' } with multiple siblings", function() {
})
.prependTo( "#navigationWrapper" );
var element = $( "#navigation" ).accordion({ heightStyle: "fill" });
- accordion_equalHeights( element, 296, 308 );
+ equalHeights( element, 296, 308 );
});
test( "{ icons: false }", function() {
diff --git a/tests/unit/accordion/accordion_test_helpers.js b/tests/unit/accordion/accordion_test_helpers.js
index 542809ea0..56967793d 100644
--- a/tests/unit/accordion/accordion_test_helpers.js
+++ b/tests/unit/accordion/accordion_test_helpers.js
@@ -1,30 +1,32 @@
-function accordion_state( accordion ) {
- var expected = $.makeArray( arguments ).slice( 1 );
- var actual = accordion.find( ".ui-accordion-content" ).map(function() {
- return $( this ).css( "display" ) === "none" ? 0 : 1;
- }).get();
- QUnit.push( QUnit.equiv(actual, expected), actual, expected );
-}
+TestHelpers.accordion = {
+ equalHeights: function( accordion, min, max ) {
+ var sizes = [];
+ accordion.find( ".ui-accordion-content" ).each(function() {
+ sizes.push( $( this ).outerHeight() );
+ });
+ ok( sizes[ 0 ] >= min && sizes[ 0 ] <= max,
+ "must be within " + min + " and " + max + ", was " + sizes[ 0 ] );
+ deepEqual( sizes[ 0 ], sizes[ 1 ] );
+ deepEqual( sizes[ 0 ], sizes[ 2 ] );
+ },
-function accordion_equalHeights( accordion, min, max ) {
- var sizes = [];
- accordion.find( ".ui-accordion-content" ).each(function() {
- sizes.push( $( this ).outerHeight() );
- });
- ok( sizes[ 0 ] >= min && sizes[ 0 ] <= max,
- "must be within " + min + " and " + max + ", was " + sizes[ 0 ] );
- deepEqual( sizes[ 0 ], sizes[ 1 ] );
- deepEqual( sizes[ 0 ], sizes[ 2 ] );
-}
+ setupTeardown: function() {
+ var animate = $.ui.accordion.prototype.options.animate;
+ return {
+ setup: function() {
+ $.ui.accordion.prototype.options.animate = false;
+ },
+ teardown: function() {
+ $.ui.accordion.prototype.options.animate = animate;
+ }
+ };
+ },
-function accordion_setupTeardown() {
- var animate = $.ui.accordion.prototype.options.animate;
- return {
- setup: function() {
- $.ui.accordion.prototype.options.animate = false;
- },
- teardown: function() {
- $.ui.accordion.prototype.options.animate = animate;
- }
- };
-}
+ state: function( accordion ) {
+ var expected = $.makeArray( arguments ).slice( 1 ),
+ actual = accordion.find( ".ui-accordion-content" ).map(function() {
+ return $( this ).css( "display" ) === "none" ? 0 : 1;
+ }).get();
+ QUnit.push( QUnit.equiv(actual, expected), actual, expected );
+ }
+};
diff --git a/tests/unit/accordion/all.html b/tests/unit/accordion/all.html
index ec9c003d9..2fb783c1c 100644
--- a/tests/unit/accordion/all.html
+++ b/tests/unit/accordion/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/all-active.html b/tests/unit/all-active.html
index 89c10441d..b3e2fbcba 100644
--- a/tests/unit/all-active.html
+++ b/tests/unit/all-active.html
@@ -7,9 +7,9 @@
<script src="../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../external/qunit.css">
- <link rel="stylesheet" href="subsuiteRunner.css">
+ <link rel="stylesheet" href="qunit-composite.css">
<script src="../../external/qunit.js"></script>
- <script src="subsuiteRunner.js"></script>
+ <script src="qunit-composite.js"></script>
<script>
(function() {
diff --git a/tests/unit/all.html b/tests/unit/all.html
index e48b1ac0e..6d98df0f9 100644
--- a/tests/unit/all.html
+++ b/tests/unit/all.html
@@ -7,9 +7,9 @@
<script src="../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../external/qunit.css">
- <link rel="stylesheet" href="subsuiteRunner.css">
+ <link rel="stylesheet" href="qunit-composite.css">
<script src="../../external/qunit.js"></script>
- <script src="subsuiteRunner.js"></script>
+ <script src="qunit-composite.js"></script>
<script>
(function() {
diff --git a/tests/unit/autocomplete/all.html b/tests/unit/autocomplete/all.html
index 87cde75fb..e35777f65 100644
--- a/tests/unit/autocomplete/all.html
+++ b/tests/unit/autocomplete/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/autocomplete/autocomplete.html b/tests/unit/autocomplete/autocomplete.html
index 70d2ecfd1..571c62033 100644
--- a/tests/unit/autocomplete/autocomplete.html
+++ b/tests/unit/autocomplete/autocomplete.html
@@ -5,9 +5,12 @@
<title>jQuery UI Autocomplete Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.menu", "ui.autocomplete" ],
js: [
"ui/jquery.ui.core.js",
@@ -19,12 +22,7 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
- <script src="autocomplete_defaults.js"></script>
+ <script src="autocomplete_common.js"></script>
<script src="autocomplete_core.js"></script>
<script src="autocomplete_events.js"></script>
<script src="autocomplete_methods.js"></script>
diff --git a/tests/unit/autocomplete/autocomplete_defaults.js b/tests/unit/autocomplete/autocomplete_common.js
index ac83eaea4..c090ce4df 100644
--- a/tests/unit/autocomplete/autocomplete_defaults.js
+++ b/tests/unit/autocomplete/autocomplete_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "autocomplete", {
+TestHelpers.commonWidgetTests( "autocomplete", {
defaults: {
appendTo: "body",
autoFocus: false,
diff --git a/tests/unit/autocomplete/autocomplete_core.js b/tests/unit/autocomplete/autocomplete_core.js
index ef6ea58af..daeea0972 100644
--- a/tests/unit/autocomplete/autocomplete_core.js
+++ b/tests/unit/autocomplete/autocomplete_core.js
@@ -123,4 +123,33 @@ test( "allow form submit on enter when menu is not active", function() {
}
})();
+asyncTest( "handle race condition", function() {
+ expect( 3 );
+ var count = 0,
+ element = $( "#autocomplete" ).autocomplete({
+ source: function( request, response ) {
+ count++;
+ if ( request.term.length === 1 ) {
+ equal( count, 1, "request with 1 character is first" );
+ setTimeout(function() {
+ response([ "one" ]);
+ setTimeout( checkResults, 1 );
+ }, 1 );
+ return;
+ }
+ equal( count, 2, "request with 2 characters is second" );
+ response([ "two" ]);
+ }
+ });
+
+ element.autocomplete( "search", "a" );
+ element.autocomplete( "search", "ab" );
+
+ function checkResults() {
+ equal( element.autocomplete( "widget" ).find( ".ui-menu-item" ).text(), "two",
+ "correct results displayed" );
+ start();
+ }
+});
+
}( jQuery ) );
diff --git a/tests/unit/autocomplete/autocomplete_events.js b/tests/unit/autocomplete/autocomplete_events.js
index 1c7ff7462..082263a35 100644
--- a/tests/unit/autocomplete/autocomplete_events.js
+++ b/tests/unit/autocomplete/autocomplete_events.js
@@ -123,7 +123,7 @@ asyncTest( "cancel search", function() {
asyncTest( "cancel focus", function() {
expect( 1 );
- var customVal = "custom value";
+ var customVal = "custom value",
element = $( "#autocomplete" ).autocomplete({
delay: 0,
source: data,
diff --git a/tests/unit/button/all.html b/tests/unit/button/all.html
index 115743e94..6c46c9650 100644
--- a/tests/unit/button/all.html
+++ b/tests/unit/button/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/button/button.html b/tests/unit/button/button.html
index 5ec7e316a..b79ca1dc6 100644
--- a/tests/unit/button/button.html
+++ b/tests/unit/button/button.html
@@ -5,9 +5,12 @@
<title>jQuery UI Button Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.button" ],
js: [
"ui/jquery.ui.core.js",
@@ -17,13 +20,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="button_common.js"></script>
<script src="button_core.js"></script>
- <script src="button_defaults.js"></script>
<script src="button_events.js"></script>
<script src="button_methods.js"></script>
<script src="button_options.js"></script>
diff --git a/tests/unit/button/button_defaults.js b/tests/unit/button/button_common.js
index 96c7e5bfa..ef22d3011 100644
--- a/tests/unit/button/button_defaults.js
+++ b/tests/unit/button/button_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "button", {
+TestHelpers.commonWidgetTests( "button", {
defaults: {
disabled: null,
icons: {
diff --git a/tests/unit/button/button_core.js b/tests/unit/button/button_core.js
index c110b4311..0d93ecedf 100644
--- a/tests/unit/button/button_core.js
+++ b/tests/unit/button/button_core.js
@@ -8,7 +8,7 @@
module("button: core");
test("checkbox", function() {
- var input = $("#check");
+ var input = $("#check"),
label = $("label[for=check]");
ok( input.is(":visible") );
ok( label.is(":not(.ui-button)") );
@@ -18,7 +18,7 @@ test("checkbox", function() {
});
test("radios", function() {
- var inputs = $("#radio0 input");
+ var inputs = $("#radio0 input"),
labels = $("#radio0 label");
ok( inputs.is(":visible") );
ok( labels.is(":not(.ui-button)") );
@@ -51,7 +51,7 @@ test("radio groups", function() {
});
test("input type submit, don't create child elements", function() {
- var input = $("#submit")
+ var input = $("#submit");
deepEqual( input.children().length, 0 );
input.button();
deepEqual( input.children().length, 0 );
@@ -68,11 +68,12 @@ test("buttonset", function() {
});
test("buttonset (rtl)", function() {
- var parent = $("#radio1").parent();
+ var set,
+ parent = $("#radio1").parent();
// Set to rtl
parent.attr("dir", "rtl");
- var set = $("#radio1").buttonset();
+ set = $("#radio1").buttonset();
ok( set.is(".ui-buttonset") );
deepEqual( set.children(".ui-button").length, 3 );
deepEqual( set.children("input:radio.ui-helper-hidden-accessible").length, 3 );
diff --git a/tests/unit/button/button_methods.js b/tests/unit/button/button_methods.js
index a83a73ba4..347806d4e 100644
--- a/tests/unit/button/button_methods.js
+++ b/tests/unit/button/button_methods.js
@@ -7,8 +7,8 @@
module("button: methods");
test("destroy", function() {
- var beforeHtml = $("#button").parent().html();
- var afterHtml = $("#button").button().button("destroy").parent().html();
+ var beforeHtml = $("#button").parent().html(),
+ afterHtml = $("#button").button().button("destroy").parent().html();
// Opera 9 outputs role="" instead of removing the attribute like everyone else
if ($.browser.opera) {
afterHtml = afterHtml.replace(/ role=""/g, "");
diff --git a/tests/unit/core/all.html b/tests/unit/core/all.html
index 78bbe9aef..e31d6905c 100644
--- a/tests/unit/core/all.html
+++ b/tests/unit/core/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/core/core.html b/tests/unit/core/core.html
index 3b1dc1fc8..e259f3270 100644
--- a/tests/unit/core/core.html
+++ b/tests/unit/core/core.html
@@ -5,17 +5,15 @@
<title>jQuery UI Core Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
- <script>
- loadResources({
- js: [ "ui/jquery.ui.core.js" ]
- });
- </script>
-
<link rel="stylesheet" href="../../../external/qunit.css">
<script src="../../../external/qunit.js"></script>
<script src="../../jquery.simulate.js"></script>
<script src="../testsuite.js"></script>
+ <script>
+ TestHelpers.loadResources({
+ js: [ "ui/jquery.ui.core.js" ]
+ });
+ </script>
<script src="core.js"></script>
<script src="selector.js"></script>
@@ -39,15 +37,13 @@
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">
-<img src="../images/jqueryui_32x32.png" usemap="#mymap" width="10", height="10">
+<img src="../images/jqueryui_32x32.png" usemap="#mymap" width="10" height="10" alt="">
<map name="mymap">
- <area shape="rect" coords="0,0,1,1" id="areaCoordsNoHref">
- <area shape="rect" coords="1,1,2,2" href="foo.html" id="areaCoordsHref">
- <area shape="rect" coords="0,0,0,0" href="foo.html" id="areaCoordsNoSizeHref">
- <area href="foo.html" id="areaNoCoordsHref">
+ <area shape="rect" coords="1,1,2,2" href="foo.html" id="areaCoordsHref" alt="">
+ <area href="foo.html" id="areaNoCoordsHref" alt="">
</map>
<map name="mymap2">
- <area shape="rect" coords="1,1,2,2" href="foo.html" id="areaNoImg">
+ <area shape="rect" coords="1,1,2,2" href="foo.html" id="areaNoImg" alt="">
</map>
<form id="formNoTabindex"></form>
@@ -58,7 +54,7 @@
<input type="text" id="visibleAncestor-inputTypeText">
<input type="checkbox" id="visibleAncestor-inputTypeCheckbox">
<input type="radio" id="visibleAncestor-inputTypeRadio">
- <input type="button" id="visibleAncestor-inputTypeButton">
+ <input type="button" id="visibleAncestor-inputTypeButton" value="visibleAncestor-inputTypeButton">
<input type="hidden" id="visibleAncestor-inputTypeHidden">
<button id="visibleAncestor-button">x</button>
<select id="visibleAncestor-select">
@@ -79,7 +75,7 @@
<input type="text" id="disabledElement-inputTypeText" disabled="disabled">
<input type="checkbox" id="disabledElement-inputTypeCheckbox" disabled="disabled">
<input type="radio" id="disabledElement-inputTypeRadio" disabled="disabled">
- <input type="button" id="disabledElement-inputTypeButton" disabled="disabled">
+ <input type="button" id="disabledElement-inputTypeButton" disabled="disabled" value="disabledElement-inputTypeButton">
<input type="hidden" id="disabledElement-inputTypeHidden" disabled="disabled">
<button id="disabledElement-button" disabled="disabled"></button>
<select id="disabledElement-select" disabled="disabled"></select>
diff --git a/tests/unit/core/core.js b/tests/unit/core/core.js
index 53415584f..7a78ae34d 100644
--- a/tests/unit/core/core.js
+++ b/tests/unit/core/core.js
@@ -1,49 +1,48 @@
-/*
- * core unit tests
- */
-(function($) {
+(function( $ ) {
-module('core - jQuery extensions');
+module( "core - jQuery extensions" );
-test('focus - original functionality', function() {
- expect(1);
+TestHelpers.testJshint( "ui.core" );
- $('#inputTabindex0')
+test( "focus - original functionality", function() {
+ expect( 1 );
+ $( "#inputTabindex0" )
.focus(function() {
- ok(true, 'event triggered');
+ ok( true, "event triggered" );
})
.focus();
});
-asyncTest('focus', function() {
- expect(2);
- $('#inputTabindex0')
+asyncTest( "focus", function() {
+ expect( 2 );
+ $( "#inputTabindex0" )
.focus(function() {
- ok(true, 'event triggered');
+ ok( true, "event triggered" );
})
- .focus(500, function() {
- ok(true, 'callback triggered');
- $(this).unbind('focus');
+ .focus( 500, function() {
+ // prevent double focus event in IE
+ $( this ).unbind( "focus" );
+ ok( true, "callback triggered" );
start();
});
});
-test('zIndex', function() {
- var el = $('#zIndexAutoWithParent'),
+test( "zIndex", function() {
+ var el = $( "#zIndexAutoWithParent" ),
parent = el.parent();
- equal(el.zIndex(), 100, 'zIndex traverses up to find value');
- equal(parent.zIndex(200), parent, 'zIndex setter is chainable');
- equal(el.zIndex(), 200, 'zIndex setter changed zIndex');
+ equal( el.zIndex(), 100, "zIndex traverses up to find value" );
+ equal( parent.zIndex(200 ), parent, "zIndex setter is chainable" );
+ equal( el.zIndex(), 200, "zIndex setter changed zIndex" );
- el = $('#zIndexAutoWithParentViaCSS');
- equal(el.zIndex(), 0, 'zIndex traverses up to find CSS value, not found because not positioned');
+ el = $( "#zIndexAutoWithParentViaCSS" );
+ equal( el.zIndex(), 0, "zIndex traverses up to find CSS value, not found because not positioned" );
- el = $('#zIndexAutoWithParentViaCSSPositioned');
- equal(el.zIndex(), 100, 'zIndex traverses up to find CSS value');
- el.parent().zIndex(200);
- equal(el.zIndex(), 200, 'zIndex setter changed zIndex, overriding CSS');
+ el = $( "#zIndexAutoWithParentViaCSSPositioned" );
+ equal( el.zIndex(), 100, "zIndex traverses up to find CSS value" );
+ el.parent().zIndex( 200 );
+ equal( el.zIndex(), 200, "zIndex setter changed zIndex, overriding CSS" );
- equal($('#zIndexAutoNoParent').zIndex(), 0, 'zIndex never explicitly set in hierarchy');
+ equal( $( "#zIndexAutoNoParent" ).zIndex(), 0, "zIndex never explicitly set in hierarchy" );
});
test( "innerWidth - getter", function() {
@@ -154,4 +153,4 @@ test( "outerHeight(true) - setter", function() {
equal( el.height(), 32, "height set properly when hidden" );
});
-})(jQuery);
+})( jQuery );
diff --git a/tests/unit/core/selector.js b/tests/unit/core/selector.js
index 2fb78025c..4309289c9 100644
--- a/tests/unit/core/selector.js
+++ b/tests/unit/core/selector.js
@@ -6,24 +6,24 @@
module("core - selectors");
function isFocusable(selector, msg) {
- ok($(selector).is(':focusable'), msg + " - selector " + selector + " is focusable");
+ QUnit.push($(selector).is(':focusable'), null, null, msg + " - selector " + selector + " is focusable");
}
function isNotFocusable(selector, msg) {
- ok($(selector).length && !$(selector).is(':focusable'), msg + " - selector " + selector + " is not focusable");
+ QUnit.push($(selector).length && !$(selector).is(':focusable'), null, null, msg + " - selector " + selector + " is not focusable");
}
function isTabbable(selector, msg) {
- ok($(selector).is(':tabbable'), msg + " - selector " + selector + " is tabbable");
+ QUnit.push($(selector).is(':tabbable'), null, null, msg + " - selector " + selector + " is tabbable");
}
function isNotTabbable(selector, msg) {
- ok($(selector).length && !$(selector).is(':tabbable'), msg + " - selector " + selector + " is not tabbable");
+ QUnit.push($(selector).length && !$(selector).is(':tabbable'), null, null, msg + " - selector " + selector + " is not tabbable");
}
test("data", function() {
expect(15);
-
+
var el;
function shouldHaveData(msg) {
ok(el.is(':data(test)'), msg);
@@ -31,56 +31,56 @@ test("data", function() {
function shouldNotHaveData(msg) {
ok(!el.is(':data(test)'), msg);
}
-
+
el = $('<div>');
shouldNotHaveData('data never set');
-
+
el = $('<div>').data('test', null);
shouldNotHaveData('data is null');
-
+
el = $('<div>').data('test', true);
shouldHaveData('data set to true');
-
+
el = $('<div>').data('test', false);
shouldNotHaveData('data set to false');
-
+
el = $('<div>').data('test', 0);
shouldNotHaveData('data set to 0');
-
+
el = $('<div>').data('test', 1);
shouldHaveData('data set to 1');
-
+
el = $('<div>').data('test', '');
shouldNotHaveData('data set to empty string');
-
+
el = $('<div>').data('test', 'foo');
shouldHaveData('data set to string');
-
+
el = $('<div>').data('test', []);
shouldHaveData('data set to empty array');
-
+
el = $('<div>').data('test', [1]);
shouldHaveData('data set to array');
-
+
el = $('<div>').data('test', {});
shouldHaveData('data set to empty object');
-
+
el = $('<div>').data('test', {foo: 'bar'});
shouldHaveData('data set to object');
-
+
el = $('<div>').data('test', new Date());
shouldHaveData('data set to date');
-
+
el = $('<div>').data('test', /test/);
shouldHaveData('data set to regexp');
-
+
el = $('<div>').data('test', function() {});
shouldHaveData('data set to function');
});
test("focusable - visible, enabled elements", function() {
expect(18);
-
+
isNotFocusable('#formNoTabindex', 'form');
isFocusable('#formTabindex', 'form with tabindex');
isFocusable('#visibleAncestor-inputTypeNone', 'input, no type');
@@ -103,7 +103,7 @@ test("focusable - visible, enabled elements", function() {
test("focusable - disabled elements", function() {
expect(9);
-
+
isNotFocusable('#disabledElement-inputTypeNone', 'input, no type');
isNotFocusable('#disabledElement-inputTypeText', 'input, type text');
isNotFocusable('#disabledElement-inputTypeCheckbox', 'input, type checkbox');
@@ -117,23 +117,23 @@ test("focusable - disabled elements", function() {
test("focusable - hidden styles", function() {
expect(8);
-
+
isNotFocusable('#displayNoneAncestor-input', 'input, display: none parent');
isNotFocusable('#displayNoneAncestor-span', 'span with tabindex, display: none parent');
-
+
isNotFocusable('#visibilityHiddenAncestor-input', 'input, visibility: hidden parent');
isNotFocusable('#visibilityHiddenAncestor-span', 'span with tabindex, visibility: hidden parent');
-
+
isNotFocusable('#displayNone-input', 'input, display: none');
isNotFocusable('#visibilityHidden-input', 'input, visibility: hidden');
-
+
isNotFocusable('#displayNone-span', 'span with tabindex, display: none');
isNotFocusable('#visibilityHidden-span', 'span with tabindex, visibility: hidden');
});
test("focusable - natively focusable with various tabindex", function() {
expect(4);
-
+
isFocusable('#inputTabindex0', 'input, tabindex 0');
isFocusable('#inputTabindex10', 'input, tabindex 10');
isFocusable('#inputTabindex-1', 'input, tabindex -1');
@@ -142,7 +142,7 @@ test("focusable - natively focusable with various tabindex", function() {
test("focusable - not natively focusable with various tabindex", function() {
expect(4);
-
+
isFocusable('#spanTabindex0', 'span, tabindex 0');
isFocusable('#spanTabindex10', 'span, tabindex 10');
isFocusable('#spanTabindex-1', 'span, tabindex -1');
@@ -150,16 +150,14 @@ test("focusable - not natively focusable with various tabindex", function() {
});
test("focusable - area elements", function() {
- isNotFocusable('#areaCoordsNoHref', 'coords but no href');
isFocusable('#areaCoordsHref', 'coords and href');
- isFocusable('#areaCoordsNoSizeHref', 'coords of zero px and href');
isFocusable('#areaNoCoordsHref', 'href but no coords');
isNotFocusable('#areaNoImg', 'not associated with an image');
});
test("tabbable - visible, enabled elements", function() {
expect(18);
-
+
isNotTabbable('#formNoTabindex', 'form');
isTabbable('#formTabindex', 'form with tabindex');
isTabbable('#visibleAncestor-inputTypeNone', 'input, no type');
@@ -182,7 +180,7 @@ test("tabbable - visible, enabled elements", function() {
test("tabbable - disabled elements", function() {
expect(9);
-
+
isNotTabbable('#disabledElement-inputTypeNone', 'input, no type');
isNotTabbable('#disabledElement-inputTypeText', 'input, type text');
isNotTabbable('#disabledElement-inputTypeCheckbox', 'input, type checkbox');
@@ -196,23 +194,23 @@ test("tabbable - disabled elements", function() {
test("tabbable - hidden styles", function() {
expect(8);
-
+
isNotTabbable('#displayNoneAncestor-input', 'input, display: none parent');
isNotTabbable('#displayNoneAncestor-span', 'span with tabindex, display: none parent');
-
+
isNotTabbable('#visibilityHiddenAncestor-input', 'input, visibility: hidden parent');
isNotTabbable('#visibilityHiddenAncestor-span', 'span with tabindex, visibility: hidden parent');
-
+
isNotTabbable('#displayNone-input', 'input, display: none');
isNotTabbable('#visibilityHidden-input', 'input, visibility: hidden');
-
+
isNotTabbable('#displayNone-span', 'span with tabindex, display: none');
isNotTabbable('#visibilityHidden-span', 'span with tabindex, visibility: hidden');
});
test("tabbable - natively tabbable with various tabindex", function() {
expect(4);
-
+
isTabbable('#inputTabindex0', 'input, tabindex 0');
isTabbable('#inputTabindex10', 'input, tabindex 10');
isNotTabbable('#inputTabindex-1', 'input, tabindex -1');
@@ -221,7 +219,7 @@ test("tabbable - natively tabbable with various tabindex", function() {
test("tabbable - not natively tabbable with various tabindex", function() {
expect(4);
-
+
isTabbable('#spanTabindex0', 'span, tabindex 0');
isTabbable('#spanTabindex10', 'span, tabindex 10');
isNotTabbable('#spanTabindex-1', 'span, tabindex -1');
@@ -229,9 +227,7 @@ test("tabbable - not natively tabbable with various tabindex", function() {
});
test("tabbable - area elements", function() {
- isNotTabbable('#areaCoordsNoHref', 'coords but no href');
isTabbable('#areaCoordsHref', 'coords and href');
- isTabbable('#areaCoordsNoSizeHref', 'coords of zero px and href');
isTabbable('#areaNoCoordsHref', 'href but no coords');
isNotTabbable('#areaNoImg', 'not associated with an image');
});
diff --git a/tests/unit/datepicker/all.html b/tests/unit/datepicker/all.html
index 1540705f8..c62c7c07d 100644
--- a/tests/unit/datepicker/all.html
+++ b/tests/unit/datepicker/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/datepicker/datepicker.html b/tests/unit/datepicker/datepicker.html
index 592db53cc..bfff32d32 100644
--- a/tests/unit/datepicker/datepicker.html
+++ b/tests/unit/datepicker/datepicker.html
@@ -5,9 +5,12 @@
<title>jQuery UI Datepicker Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.datepicker" ],
js: [
"ui/jquery.ui.core.js",
@@ -19,11 +22,6 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
<script src="datepicker_core.js"></script>
<script src="datepicker_defaults.js"></script>
<script src="datepicker_events.js"></script>
diff --git a/tests/unit/datepicker/datepicker_core.js b/tests/unit/datepicker/datepicker_core.js
index bbc447ffe..4bf04d83e 100644
--- a/tests/unit/datepicker/datepicker_core.js
+++ b/tests/unit/datepicker/datepicker_core.js
@@ -53,52 +53,52 @@ test("widget method", function() {
});
test('baseStructure', function() {
- var inp = init('#inp');
- inp.focus();
- var dp = $('#ui-datepicker-div');
- var iframe = ($.browser.msie && parseInt($.browser.version) < 7);
+ var header, title, table, thead, week, panel, inl, child,
+ inp = init('#inp').focus(),
+ dp = $('#ui-datepicker-div'),
+ iframe = ($.browser.msie && parseInt($.browser.version, 10) < 7);
ok(dp.is(':visible'), 'Structure - datepicker visible');
ok(!dp.is('.ui-datepicker-rtl'), 'Structure - not right-to-left');
ok(!dp.is('.ui-datepicker-multi'), 'Structure - not multi-month');
equal(dp.children().length, 2 + (iframe ? 1 : 0), 'Structure - child count');
- var header = dp.children(':first');
+ header = dp.children(':first');
ok(header.is('div.ui-datepicker-header'), 'Structure - header division');
equal(header.children().length, 3, 'Structure - header child count');
- ok(header.children(':first').is('a.ui-datepicker-prev') && header.children(':first').html() != '', 'Structure - prev link');
- ok(header.children(':eq(1)').is('a.ui-datepicker-next') && header.children(':eq(1)').html() != '', 'Structure - next link');
+ ok(header.children(':first').is('a.ui-datepicker-prev') && header.children(':first').html() !== '', 'Structure - prev link');
+ ok(header.children(':eq(1)').is('a.ui-datepicker-next') && header.children(':eq(1)').html() !== '', 'Structure - next link');
- var title = header.children(':last');
- ok(title.is('div.ui-datepicker-title') && title.html() != '','Structure - title division');
+ title = header.children(':last');
+ ok(title.is('div.ui-datepicker-title') && title.html() !== '','Structure - title division');
equal(title.children().length, 2, 'Structure - title child count');
- ok(title.children(':first').is('span.ui-datepicker-month') && title.children(':first').text() != '', 'Structure - month text')
- ok(title.children(':last').is('span.ui-datepicker-year') && title.children(':last').text() != '', 'Structure - year text')
+ ok(title.children(':first').is('span.ui-datepicker-month') && title.children(':first').text() !== '', 'Structure - month text');
+ ok(title.children(':last').is('span.ui-datepicker-year') && title.children(':last').text() !== '', 'Structure - year text');
- var table = dp.children(':eq(1)');
+ table = dp.children(':eq(1)');
ok(table.is('table.ui-datepicker-calendar'), 'Structure - month table');
ok(table.children(':first').is('thead'), 'Structure - month table thead');
- var thead = table.children(':first').children(':first');
+ thead = table.children(':first').children(':first');
ok(thead.is('tr'), 'Structure - month table title row');
equal(thead.find('th').length, 7, 'Structure - month table title cells');
ok(table.children(':eq(1)').is('tbody'), 'Structure - month table body');
ok(table.children(':eq(1)').children('tr').length >= 4, 'Structure - month table week count');
- var week = table.children(':eq(1)').children(':first');
+ week = table.children(':eq(1)').children(':first');
ok(week.is('tr'), 'Structure - month table week row');
equal(week.children().length, 7, 'Structure - week child count');
ok(week.children(':first').is('td.ui-datepicker-week-end'), 'Structure - month table first day cell');
ok(week.children(':last').is('td.ui-datepicker-week-end'), 'Structure - month table second day cell');
- ok(dp.children('iframe').length == (iframe ? 1 : 0), 'Structure - iframe');
+ ok(dp.children('iframe').length === (iframe ? 1 : 0), 'Structure - iframe');
inp.datepicker('hide').datepicker('destroy');
// Editable month/year and button panel
inp = init('#inp', {changeMonth: true, changeYear: true, showButtonPanel: true});
inp.focus();
- var title = dp.find('div.ui-datepicker-title');
+ title = dp.find('div.ui-datepicker-title');
ok(title.children(':first').is('select.ui-datepicker-month'), 'Structure - month selector');
ok(title.children(':last').is('select.ui-datepicker-year'), 'Structure - year selector');
- var panel = dp.children(':last');
+ panel = dp.children(':last');
ok(panel.is('div.ui-datepicker-buttonpane'), 'Structure - button panel division');
equal(panel.children().length, 2, 'Structure - button panel child count');
ok(panel.children(':first').is('button.ui-datepicker-current'), 'Structure - today button');
@@ -110,7 +110,7 @@ test('baseStructure', function() {
inp.focus();
ok(dp.is('.ui-datepicker-multi'), 'Structure multi [2] - multi-month');
equal(dp.children().length, 3 + (iframe ? 1 : 0), 'Structure multi [2] - child count');
- var child = dp.children(':first');
+ child = dp.children(':first');
ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-first'), 'Structure multi [2] - first month division');
child = dp.children(':eq(1)');
ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-last'), 'Structure multi [2] - second month division');
@@ -146,16 +146,16 @@ test('baseStructure', function() {
inp.datepicker('hide').datepicker('destroy');
// Inline
- var inl = init('#inl');
+ inl = init('#inl');
dp = inl.children();
ok(dp.is('.ui-datepicker-inline'), 'Structure inline - main div');
ok(!dp.is('.ui-datepicker-rtl'), 'Structure inline - not right-to-left');
ok(!dp.is('.ui-datepicker-multi'), 'Structure inline - not multi-month');
equal(dp.children().length, 2, 'Structure inline - child count');
- var header = dp.children(':first');
+ header = dp.children(':first');
ok(header.is('div.ui-datepicker-header'), 'Structure inline - header division');
equal(header.children().length, 3, 'Structure inline - header child count');
- var table = dp.children(':eq(1)');
+ table = dp.children(':eq(1)');
ok(table.is('table.ui-datepicker-calendar'), 'Structure inline - month table');
ok(table.children(':first').is('thead'), 'Structure inline - month table thead');
ok(table.children(':eq(1)').is('tbody'), 'Structure inline - month table body');
@@ -176,19 +176,20 @@ test('baseStructure', function() {
});
test('customStructure', function() {
- var dp = $('#ui-datepicker-div');
- // Check right-to-left localisation
- var inp = init('#inp', $.datepicker.regional['he']);
+ var iframe, header, panel, title, thead,
+ dp = $('#ui-datepicker-div'),
+ // Check right-to-left localisation
+ inp = init('#inp', $.datepicker.regional.he);
inp.data('showButtonPanel.datepicker',true);
inp.focus();
- var iframe = ($.browser.msie && parseInt($.browser.version) < 7);
+ iframe = ($.browser.msie && parseInt($.browser.version, 10) < 7);
ok(dp.is('.ui-datepicker-rtl'), 'Structure RTL - right-to-left');
- var header = dp.children(':first');
+ header = dp.children(':first');
ok(header.is('div.ui-datepicker-header'), 'Structure RTL - header division');
equal(header.children().length, 3, 'Structure RTL - header child count');
ok(header.children(':first').is('a.ui-datepicker-next'), 'Structure RTL - prev link');
ok(header.children(':eq(1)').is('a.ui-datepicker-prev'), 'Structure RTL - next link');
- var panel = dp.children(':last');
+ panel = dp.children(':last');
ok(panel.is('div.ui-datepicker-buttonpane'), 'Structure RTL - button division');
equal(panel.children().length, 2, 'Structure RTL - button panel child count');
ok(panel.children(':first').is('button.ui-datepicker-close'), 'Structure RTL - close button');
@@ -198,7 +199,7 @@ test('customStructure', function() {
// Hide prev/next
inp = init('#inp', {hideIfNoPrevNext: true, minDate: new Date(2008, 2 - 1, 4), maxDate: new Date(2008, 2 - 1, 14)});
inp.val('02/10/2008').focus();
- var header = dp.children(':first');
+ header = dp.children(':first');
ok(header.is('div.ui-datepicker-header'), 'Structure hide prev/next - header division');
equal(header.children().length, 1, 'Structure hide prev/next - links child count');
ok(header.children(':first').is('div.ui-datepicker-title'), 'Structure hide prev/next - title division');
@@ -207,7 +208,7 @@ test('customStructure', function() {
// Changeable Month with read-only year
inp = init('#inp', {changeMonth: true});
inp.focus();
- var title = dp.children(':first').children(':last');
+ title = dp.children(':first').children(':last');
equal(title.children().length, 2, 'Structure changeable month - title child count');
ok(title.children(':first').is('select.ui-datepicker-month'), 'Structure changeable month - month selector');
ok(title.children(':last').is('span.ui-datepicker-year'), 'Structure changeable month - read-only year');
@@ -216,7 +217,7 @@ test('customStructure', function() {
// Changeable year with read-only month
inp = init('#inp', {changeYear: true});
inp.focus();
- var title = dp.children(':first').children(':last');
+ title = dp.children(':first').children(':last');
equal(title.children().length, 2, 'Structure changeable year - title child count');
ok(title.children(':first').is('span.ui-datepicker-month'), 'Structure changeable year - read-only month');
ok(title.children(':last').is('select.ui-datepicker-year'), 'Structure changeable year - year selector');
@@ -225,15 +226,15 @@ test('customStructure', function() {
// Read-only first day of week
inp = init('#inp', {changeFirstDay: false});
inp.focus();
- var thead = dp.find('.ui-datepicker-calendar thead tr');
+ thead = dp.find('.ui-datepicker-calendar thead tr');
equal(thead.children().length, 7, 'Structure read-only first day - thead child count');
equal(thead.find('a').length, 0, 'Structure read-only first day - thead links count');
inp.datepicker('hide').datepicker('destroy');
});
test('keystrokes', function() {
- var inp = init('#inp');
- var date = new Date();
+ var inp = init('#inp'),
+ date = new Date();
inp.val('').datepicker('show').
simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
equalsDate(inp.datepicker('getDate'), date, 'Keystroke enter');
@@ -366,9 +367,10 @@ test('keystrokes', function() {
});
test('mouse', function() {
- var inp = init('#inp');
- var dp = $('#ui-datepicker-div');
- var date = new Date();
+ var inl,
+ inp = init('#inp'),
+ dp = $('#ui-datepicker-div'),
+ date = new Date();
inp.val('').datepicker('show');
$('.ui-datepicker-calendar tbody a:contains(10)', dp).simulate('click', {});
date.setDate(10);
@@ -419,9 +421,9 @@ test('mouse', function() {
equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 18),
'Mouse click - next + min/max');
// Inline
- var inl = init('#inl');
- var dp = $('.ui-datepicker-inline', inl);
- var date = new Date();
+ inl = init('#inl');
+ dp = $('.ui-datepicker-inline', inl);
+ date = new Date();
inl.datepicker('setDate', date);
$('.ui-datepicker-calendar tbody a:contains(10)', dp).simulate('click', {});
date.setDate(10);
diff --git a/tests/unit/datepicker/datepicker_defaults.js b/tests/unit/datepicker/datepicker_defaults.js
index 4243cf187..28e150791 100644
--- a/tests/unit/datepicker/datepicker_defaults.js
+++ b/tests/unit/datepicker/datepicker_defaults.js
@@ -6,4 +6,4 @@ var datepicker_defaults = {
disabled: false
};
-//commonWidgetTests('datepicker', { defaults: datepicker_defaults });
+//TestHelpers.commonWidgetTests('datepicker', { defaults: datepicker_defaults });
diff --git a/tests/unit/datepicker/datepicker_events.js b/tests/unit/datepicker/datepicker_events.js
index 9876b7e60..b3e6704ef 100644
--- a/tests/unit/datepicker/datepicker_events.js
+++ b/tests/unit/datepicker/datepicker_events.js
@@ -5,9 +5,9 @@
module("datepicker: events");
-var selectedThis = null;
-var selectedDate = null;
-var selectedInst = null;
+var selectedThis = null,
+selectedDate = null,
+selectedInst = null;
function callback(date, inst) {
selectedThis = this;
@@ -22,8 +22,9 @@ function callback2(year, month, inst) {
}
test('events', function() {
- var inp = init('#inp', {onSelect: callback});
- var date = new Date();
+ var dateStr, newMonthYear, inp2,
+ inp = init('#inp', {onSelect: callback}),
+ date = new Date();
// onSelect
inp.val('').datepicker('show').
simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
@@ -41,7 +42,7 @@ test('events', function() {
simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
equal(selectedDate, $.datepicker.formatDate('mm/dd/yy', date),
'Callback selected date - esc');
- var dateStr = '02/04/2008';
+ dateStr = '02/04/2008';
inp.val(dateStr).datepicker('show').
simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
equal(dateStr, selectedDate,
@@ -49,7 +50,7 @@ test('events', function() {
// onChangeMonthYear
inp.datepicker('option', {onChangeMonthYear: callback2, onSelect: null}).
val('').datepicker('show');
- var newMonthYear = function(date) {
+ newMonthYear = function(date) {
return date.getFullYear() + '/' + (date.getMonth() + 1);
};
date = new Date();
@@ -118,7 +119,7 @@ test('events', function() {
simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.END});
equal(selectedDate, '', 'Callback close date - ctrl+end');
- var inp2 = init('#inp2');
+ inp2 = init('#inp2');
inp2.datepicker().datepicker('option', {onClose: callback}).datepicker('show');
inp.datepicker('show');
equal(selectedThis, inp2[0], 'Callback close this');
diff --git a/tests/unit/datepicker/datepicker_methods.js b/tests/unit/datepicker/datepicker_methods.js
index c8f1b75b2..603427440 100644
--- a/tests/unit/datepicker/datepicker_methods.js
+++ b/tests/unit/datepicker/datepicker_methods.js
@@ -6,7 +6,8 @@
module("datepicker: methods");
test('destroy', function() {
- var inp = init('#inp');
+ var inl,
+ inp = init('#inp');
ok(inp.is('.hasDatepicker'), 'Default - marker class set');
ok($.data(inp[0], PROP_NAME), 'Default - instance present');
ok(inp.next().is('#alt'), 'Default - button absent');
@@ -19,7 +20,7 @@ test('destroy', function() {
inp= init('#inp', {showOn: 'both'});
ok(inp.is('.hasDatepicker'), 'Button - marker class set');
ok($.data(inp[0], PROP_NAME), 'Button - instance present');
- ok(inp.next().text() == '...', 'Button - button added');
+ ok(inp.next().text() === '...', 'Button - button added');
inp.datepicker('destroy');
inp = $('#inp');
ok(!inp.is('.hasDatepicker'), 'Button - marker class cleared');
@@ -29,7 +30,7 @@ test('destroy', function() {
inp = init('#inp', {appendText: 'Testing'});
ok(inp.is('.hasDatepicker'), 'Append - marker class set');
ok($.data(inp[0], PROP_NAME), 'Append - instance present');
- ok(inp.next().text() == 'Testing', 'Append - append text added');
+ ok(inp.next().text() === 'Testing', 'Append - append text added');
inp.datepicker('destroy');
inp = $('#inp');
ok(!inp.is('.hasDatepicker'), 'Append - marker class cleared');
@@ -40,29 +41,30 @@ test('destroy', function() {
buttonImage: 'img/calendar.gif', appendText: 'Testing'});
ok(inp.is('.hasDatepicker'), 'Both - marker class set');
ok($.data(inp[0], PROP_NAME), 'Both - instance present');
- ok(inp.next()[0].nodeName.toLowerCase() == 'img', 'Both - button added');
- ok(inp.next().next().text() == 'Testing', 'Both - append text added');
+ ok(inp.next()[0].nodeName.toLowerCase() === 'img', 'Both - button added');
+ ok(inp.next().next().text() === 'Testing', 'Both - append text added');
inp.datepicker('destroy');
inp = $('#inp');
ok(!inp.is('.hasDatepicker'), 'Both - marker class cleared');
ok(!$.data(inp[0], PROP_NAME), 'Both - instance absent');
ok(inp.next().is('#alt'), 'Both - button and append text absent');
// Inline
- var inl = init('#inl');
+ inl = init('#inl');
ok(inl.is('.hasDatepicker'), 'Inline - marker class set');
- ok(inl.html() != '', 'Inline - datepicker present');
+ ok(inl.html() !== '', 'Inline - datepicker present');
ok($.data(inl[0], PROP_NAME), 'Inline - instance present');
- ok(inl.next().length == 0 || inl.next().is('p'), 'Inline - button absent');
+ ok(inl.next().length === 0 || inl.next().is('p'), 'Inline - button absent');
inl.datepicker('destroy');
inl = $('#inl');
ok(!inl.is('.hasDatepicker'), 'Inline - marker class cleared');
- ok(inl.html() == '', 'Inline - datepicker absent');
+ ok(inl.html() === '', 'Inline - datepicker absent');
ok(!$.data(inl[0], PROP_NAME), 'Inline - instance absent');
- ok(inl.next().length == 0 || inl.next().is('p'), 'Inline - button absent');
+ ok(inl.next().length === 0 || inl.next().is('p'), 'Inline - button absent');
});
test('enableDisable', function() {
- var inp = init('#inp');
+ var inl, dp,
+ inp = init('#inp');
ok(!inp.datepicker('isDisabled'), 'Enable/disable - initially marked as enabled');
ok(!inp[0].disabled, 'Enable/disable - field initially enabled');
inp.datepicker('disable');
@@ -91,19 +93,19 @@ test('enableDisable', function() {
buttonImage: 'img/calendar.gif'});
ok(!inp.datepicker('isDisabled'), 'Enable/disable image - initially marked as enabled');
ok(!inp[0].disabled, 'Enable/disable image - field initially enabled');
- ok(inp.next('img').css('opacity') == 1, 'Enable/disable image - image initially enabled');
+ ok(parseFloat(inp.next('img').css('opacity')) === 1, 'Enable/disable image - image initially enabled');
inp.datepicker('disable');
ok(inp.datepicker('isDisabled'), 'Enable/disable image - now marked as disabled');
ok(inp[0].disabled, 'Enable/disable image - field now disabled');
- ok(inp.next('img').css('opacity') != 1, 'Enable/disable image - image now disabled');
+ ok(parseFloat(inp.next('img').css('opacity')) !== 1, 'Enable/disable image - image now disabled');
inp.datepicker('enable');
ok(!inp.datepicker('isDisabled'), 'Enable/disable image - now marked as enabled');
ok(!inp[0].disabled, 'Enable/disable image - field now enabled');
- ok(inp.next('img').css('opacity') == 1, 'Enable/disable image - image now enabled');
+ ok(parseFloat(inp.next('img').css('opacity')) === 1, 'Enable/disable image - image now enabled');
inp.datepicker('destroy');
// Inline
- var inl = init('#inl', {changeYear: true});
- var dp = $('.ui-datepicker-inline', inl);
+ inl = init('#inl', {changeYear: true});
+ dp = $('.ui-datepicker-inline', inl);
ok(!inl.datepicker('isDisabled'), 'Enable/disable inline - initially marked as enabled');
ok(!dp.children().is('.ui-state-disabled'), 'Enable/disable inline - not visually disabled initially');
ok(!dp.find('select').prop('disabled'), 'Enable/disable inline - form element enabled initially');
diff --git a/tests/unit/datepicker/datepicker_options.js b/tests/unit/datepicker/datepicker_options.js
index f538c6d03..3e200ecaa 100644
--- a/tests/unit/datepicker/datepicker_options.js
+++ b/tests/unit/datepicker/datepicker_options.js
@@ -16,8 +16,8 @@ test('setDefaults', function() {
});
test('option', function() {
- var inp = init('#inp');
- var inst = $.data(inp[0], PROP_NAME);
+ var inp = init('#inp'),
+ inst = $.data(inp[0], PROP_NAME);
// Set option
equal(inst.settings.showOn, null, 'Initial setting showOn');
equal($.datepicker._get(inst, 'showOn'), 'focus', 'Initial instance showOn');
@@ -47,8 +47,8 @@ test('option', function() {
});
test('change', function() {
- var inp = init('#inp');
- var inst = $.data(inp[0], PROP_NAME);
+ var inp = init('#inp'),
+ inst = $.data(inp[0], PROP_NAME);
equal(inst.settings.showOn, null, 'Initial setting showOn');
equal($.datepicker._get(inst, 'showOn'), 'focus', 'Initial instance showOn');
equal($.datepicker._defaults.showOn, 'focus', 'Initial default showOn');
@@ -67,14 +67,15 @@ test('change', function() {
});
test('invocation', function() {
- var inp = init('#inp');
- var dp = $('#ui-datepicker-div');
- var body = $('body');
+ var button, image,
+ inp = init('#inp'),
+ dp = $('#ui-datepicker-div'),
+ body = $('body');
// On focus
- var button = inp.siblings('button');
- ok(button.length == 0, 'Focus - button absent');
- var image = inp.siblings('img');
- ok(image.length == 0, 'Focus - image absent');
+ button = inp.siblings('button');
+ ok(button.length === 0, 'Focus - button absent');
+ image = inp.siblings('img');
+ ok(image.length === 0, 'Focus - image absent');
inp.focus();
ok(dp.is(':visible'), 'Focus - rendered on focus');
inp.simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
@@ -89,8 +90,8 @@ test('invocation', function() {
ok(!dp.is(':visible'), 'Button - initially hidden');
button = inp.siblings('button');
image = inp.siblings('img');
- ok(button.length == 1, 'Button - button present');
- ok(image.length == 0, 'Button - image absent');
+ ok(button.length === 1, 'Button - button present');
+ ok(image.length === 0, 'Button - image absent');
equal(button.text(), 'Popup', 'Button - button text');
inp.focus();
ok(!dp.is(':visible'), 'Button - not rendered on focus');
@@ -104,9 +105,9 @@ test('invocation', function() {
buttonImage: 'img/calendar.gif', buttonText: 'Cal'});
ok(!dp.is(':visible'), 'Image button - initially hidden');
button = inp.siblings('button');
- ok(button.length == 0, 'Image button - button absent');
+ ok(button.length === 0, 'Image button - button absent');
image = inp.siblings('img');
- ok(image.length == 1, 'Image button - image present');
+ ok(image.length === 1, 'Image button - image present');
equal(image.attr('src'), 'img/calendar.gif', 'Image button - image source');
equal(image.attr('title'), 'Cal', 'Image button - image text');
inp.focus();
@@ -120,11 +121,11 @@ test('invocation', function() {
inp = init('#inp', {showOn: 'both', buttonImage: 'img/calendar.gif'});
ok(!dp.is(':visible'), 'Both - initially hidden');
button = inp.siblings('button');
- ok(button.length == 1, 'Both - button present');
+ ok(button.length === 1, 'Both - button present');
image = inp.siblings('img');
- ok(image.length == 0, 'Both - image absent');
+ ok(image.length === 0, 'Both - image absent');
image = button.children('img');
- ok(image.length == 1, 'Both - button image present');
+ ok(image.length === 1, 'Both - button image present');
inp.focus();
ok(dp.is(':visible'), 'Both - rendered on focus');
body.simulate('mousedown', {});
@@ -137,29 +138,29 @@ test('invocation', function() {
});
test('otherMonths', function() {
- var inp = init('#inp');
- var pop = $('#ui-datepicker-div');
+ var inp = init('#inp'),
+ pop = $('#ui-datepicker-div');
inp.val('06/01/2009').datepicker('show');
equal(pop.find('tbody').text(), '\u00a0123456789101112131415161718192021222324252627282930\u00a0\u00a0\u00a0\u00a0',
'Other months - none');
- ok(pop.find('td:last *').length == 0, 'Other months - no content');
+ ok(pop.find('td:last *').length === 0, 'Other months - no content');
inp.datepicker('hide').datepicker('option', 'showOtherMonths', true).datepicker('show');
equal(pop.find('tbody').text(), '311234567891011121314151617181920212223242526272829301234',
'Other months - show');
- ok(pop.find('td:last span').length == 1, 'Other months - span content');
+ ok(pop.find('td:last span').length === 1, 'Other months - span content');
inp.datepicker('hide').datepicker('option', 'selectOtherMonths', true).datepicker('show');
equal(pop.find('tbody').text(), '311234567891011121314151617181920212223242526272829301234',
'Other months - select');
- ok(pop.find('td:last a').length == 1, 'Other months - link content');
+ ok(pop.find('td:last a').length === 1, 'Other months - link content');
inp.datepicker('hide').datepicker('option', 'showOtherMonths', false).datepicker('show');
equal(pop.find('tbody').text(), '\u00a0123456789101112131415161718192021222324252627282930\u00a0\u00a0\u00a0\u00a0',
'Other months - none');
- ok(pop.find('td:last *').length == 0, 'Other months - no content');
+ ok(pop.find('td:last *').length === 0, 'Other months - no content');
});
test('defaultDate', function() {
- var inp = init('#inp');
- var date = new Date();
+ var inp = init('#inp'),
+ date = new Date();
inp.val('').datepicker('show').
simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
equalsDate(inp.datepicker('getDate'), date, 'Default date null');
@@ -252,17 +253,19 @@ test('defaultDate', function() {
});
test('miscellaneous', function() {
- var dp = $('#ui-datepicker-div');
- var inp = init('#inp');
+ var curYear, longNames, shortNames, date,
+ dp = $('#ui-datepicker-div'),
+ inp = init('#inp');
// Year range
- var genRange = function(start, offset) {
- var range = '';
- for (var i = start; i < start + offset; i++) {
+ function genRange(start, offset) {
+ var i = start,
+ range = '';
+ for (; i < start + offset; i++) {
range += i;
}
return range;
- };
- var curYear = new Date().getFullYear();
+ }
+ curYear = new Date().getFullYear();
inp.val('02/04/2008').datepicker('show');
equal(dp.find('.ui-datepicker-year').text(), '2008', 'Year range - read-only default');
inp.datepicker('hide').datepicker('option', {changeYear: true}).datepicker('show');
@@ -285,9 +288,9 @@ test('miscellaneous', function() {
equal(dp.find('.ui-datepicker-next').text(), 'Next', 'Navigation next - default');
inp.datepicker('hide').datepicker('option', {navigationAsDateFormat: true, prevText: '< M', currentText: 'MM', nextText: 'M >'}).
val('02/04/2008').datepicker('show');
- var longNames = $.datepicker.regional[''].monthNames;
- var shortNames = $.datepicker.regional[''].monthNamesShort;
- var date = new Date();
+ longNames = $.datepicker.regional[''].monthNames;
+ shortNames = $.datepicker.regional[''].monthNamesShort;
+ date = new Date();
equal(dp.find('.ui-datepicker-prev').text(), '< ' + shortNames[0], 'Navigation prev - as date format');
equal(dp.find('.ui-datepicker-current').text(),
longNames[date.getMonth()], 'Navigation current - as date format');
@@ -311,11 +314,12 @@ test('miscellaneous', function() {
});
test('minMax', function() {
- var inp = init('#inp');
- var lastYear = new Date(2007, 6 - 1, 4);
- var nextYear = new Date(2009, 6 - 1, 4);
- var minDate = new Date(2008, 2 - 1, 29);
- var maxDate = new Date(2008, 12 - 1, 7);
+ var date,
+ inp = init('#inp'),
+ lastYear = new Date(2007, 6 - 1, 4),
+ nextYear = new Date(2009, 6 - 1, 4),
+ minDate = new Date(2008, 2 - 1, 29),
+ maxDate = new Date(2008, 12 - 1, 7);
inp.val('06/04/2008').datepicker('show');
inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
@@ -360,7 +364,7 @@ test('minMax', function() {
equalsDate(inp.datepicker('getDate'), maxDate,
'Min/max - null, 12/07/2008 - ctrl+pgdn');
// Relative dates
- var date = new Date();
+ date = new Date();
date.setDate(date.getDate() - 7);
inp.datepicker('option', {minDate: '-1w', maxDate: '+1 M +10 D '}).
datepicker('hide').val('').datepicker('show');
@@ -394,9 +398,10 @@ test('minMax', function() {
});
test('setDate', function() {
- var inp = init('#inp');
- var date1 = new Date(2008, 6 - 1, 4);
- var date2 = new Date();
+ var inl, alt, minDate, maxDate, dateAndTimeToSet, dateAndTimeClone,
+ inp = init('#inp'),
+ date1 = new Date(2008, 6 - 1, 4),
+ date2 = new Date();
ok(inp.datepicker('getDate') == null, 'Set date - default');
inp.datepicker('setDate', date1);
equalsDate(inp.datepicker('getDate'), date1, 'Set date - 2008-06-04');
@@ -423,7 +428,7 @@ test('setDate', function() {
inp.datepicker('setDate', 'c -3 w');
equalsDate(inp.datepicker('getDate'), date1, 'Set date - c -3 w');
// Inline
- var inl = init('#inl');
+ inl = init('#inl');
date1 = new Date(2008, 6 - 1, 4);
date2 = new Date();
equalsDate(inl.datepicker('getDate'), date2, 'Set date inline - default');
@@ -441,7 +446,7 @@ test('setDate', function() {
inl.datepicker('setDate');
ok(inl.datepicker('getDate') == null, 'Set date inline - null');
// Alternate field
- var alt = $('#alt');
+ alt = $('#alt');
inp.datepicker('option', {altField: '#alt', altFormat: 'yy-mm-dd'});
date1 = new Date(2008, 6 - 1, 4);
inp.datepicker('setDate', date1);
@@ -451,8 +456,8 @@ test('setDate', function() {
inp = init('#inp');
date1 = new Date(2008, 1 - 1, 4);
date2 = new Date(2008, 6 - 1, 4);
- var minDate = new Date(2008, 2 - 1, 29);
- var maxDate = new Date(2008, 3 - 1, 28);
+ minDate = new Date(2008, 2 - 1, 29);
+ maxDate = new Date(2008, 3 - 1, 28);
inp.val('').datepicker('option', {minDate: minDate}).datepicker('setDate', date2);
equalsDate(inp.datepicker('getDate'), date2, 'Set date min/max - setDate > min');
inp.datepicker('setDate', date1);
@@ -465,15 +470,15 @@ test('setDate', function() {
equalsDate(inp.datepicker('getDate'), minDate, 'Set date min/max - setDate < min');
inp.datepicker('setDate', date2);
equalsDate(inp.datepicker('getDate'), maxDate, 'Set date min/max - setDate > max');
- var dateAndTimeToSet = new Date(2008, 3 - 1, 28, 1, 11, 0);
- var dateAndTimeClone = new Date(2008, 3 - 1, 28, 1, 11, 0);
+ dateAndTimeToSet = new Date(2008, 3 - 1, 28, 1, 11, 0);
+ dateAndTimeClone = new Date(2008, 3 - 1, 28, 1, 11, 0);
inp.datepicker('setDate', dateAndTimeToSet);
equal(dateAndTimeToSet.getTime(), dateAndTimeClone.getTime(), 'Date object passed should not be changed by setDate');
});
test('altField', function() {
- var inp = init('#inp');
- var alt = $('#alt');
+ var inp = init('#inp'),
+ alt = $('#alt');
// No alternate field set
alt.val('');
inp.val('06/04/2008').datepicker('show');
@@ -507,26 +512,6 @@ test('altField', function() {
inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.END});
equal(inp.val(), '', 'Alt field - dp - ctrl+end');
equal(alt.val(), '', 'Alt field - alt - ctrl+end');
-
- return
- // TODO manual entry impl works (see altField demo) but this test doesn't
- // probably something the rewrite won't cover anymore anyway
-
- // Verify alt field is updated on keyup
- alt.val('');
- inp.val('06/04/200').datepicker('show');
- inp.simulate('keydown', {charCode: '8'.charCodeAt(0)});
- inp.simulate('keypress', {charCode: '8'.charCodeAt(0)});
- inp.simulate('keyup', {charCode: '8'.charCodeAt(0)});
- equal(inp.val(), '06/04/2008', 'Alt field - dp - manual entry');
- equal(alt.val(), '2008-06-04', 'Alt field - manual entry');
- // Verify alt field is not updated on keyup if date is invalid
- inp.val('12/04');
- inp.simulate('keydown', {charCode: '/'.charCodeAt(0)});
- inp.simulate('keypress', {charCode: '/'.charCodeAt(0)});
- inp.simulate('keyup', {charCode: '/'.charCodeAt(0)});
- equal(inp.val(), '12/04/', 'Alt field - dp - manual entry incomplete');
- equal(alt.val(), '2008-06-04', 'Alt field - manual entry - not updated');
});
test('autoSize', function() {
@@ -541,7 +526,7 @@ test('autoSize', function() {
inp.datepicker('option', 'dateFormat', 'DD, MM dd, yy');
equal(inp.prop('size'), 29, 'Auto size - DD, MM dd, yy');
// French
- inp.datepicker('option', $.extend({autoSize: false}, $.datepicker.regional['fr']));
+ inp.datepicker('option', $.extend({autoSize: false}, $.datepicker.regional.fr));
equal(inp.prop('size'), 29, 'Auto size - fr - default');
inp.datepicker('option', 'autoSize', true);
equal(inp.prop('size'), 10, 'Auto size - fr - dd/mm/yy');
@@ -552,7 +537,7 @@ test('autoSize', function() {
inp.datepicker('option', 'dateFormat', 'DD, MM dd, yy');
equal(inp.prop('size'), 28, 'Auto size - fr - DD, MM dd, yy');
// Hebrew
- inp.datepicker('option', $.extend({autoSize: false}, $.datepicker.regional['he']));
+ inp.datepicker('option', $.extend({autoSize: false}, $.datepicker.regional.he));
equal(inp.prop('size'), 28, 'Auto size - he - default');
inp.datepicker('option', 'autoSize', true);
equal(inp.prop('size'), 10, 'Auto size - he - dd/mm/yy');
@@ -565,8 +550,8 @@ test('autoSize', function() {
});
test('daylightSaving', function() {
- var inp = init('#inp');
- var dp = $('#ui-datepicker-div');
+ var inp = init('#inp'),
+ dp = $('#ui-datepicker-div');
ok(true, 'Daylight saving - ' + new Date());
// Australia, Sydney - AM change, southern hemisphere
inp.val('04/01/2008').datepicker('show');
@@ -646,9 +631,12 @@ test('daylightSaving', function() {
equal(inp.val(), '11/03/2008', 'Daylight saving - US 11/03/2008');
});
-var beforeShowThis = null;
-var beforeShowInput = null;
-var beforeShowInst = null;
+var beforeShowThis = null,
+ beforeShowInput = null,
+ beforeShowInst = null,
+ beforeShowDayThis = null,
+ beforeShowDayOK = true;
+
function beforeAll(input, inst) {
beforeShowThis = this;
@@ -657,84 +645,86 @@ function beforeAll(input, inst) {
return {currentText: 'Current'};
}
-var beforeShowDayThis = null;
-var beforeShowDayOK = true;
-
function beforeDay(date) {
beforeShowDayThis = this;
beforeShowDayOK &= (date > new Date(2008, 1 - 1, 26) &&
date < new Date(2008, 3 - 1, 6));
- return [(date.getDate() % 2 == 0), (date.getDate() % 10 == 0 ? 'day10' : ''),
- (date.getDate() % 3 == 0 ? 'Divisble by 3' : '')];
+ return [(date.getDate() % 2 === 0), (date.getDate() % 10 === 0 ? 'day10' : ''),
+ (date.getDate() % 3 === 0 ? 'Divisble by 3' : '')];
}
function calcWeek(date) {
- var doy = date.getDate() + 6;
- for (var m = date.getMonth() - 1; m >= 0; m--)
+ var doy = date.getDate() + 6,
+ m = date.getMonth() - 1;
+ for (; m >= 0; m--) {
doy += $.datepicker._getDaysInMonth(date.getFullYear(), m);
+ }
// Simple count from 01/01 starting at week 1
return Math.floor(doy / 7);
}
test('callbacks', function() {
// Before show
- var inp = init('#inp', {beforeShow: beforeAll});
- var inst = $.data(inp[0], 'datepicker');
+ var dp, day20, day21,
+ inp = init('#inp', {beforeShow: beforeAll}),
+ inst = $.data(inp[0], 'datepicker');
equal($.datepicker._get(inst, 'currentText'), 'Today', 'Before show - initial');
inp.val('02/04/2008').datepicker('show');
equal($.datepicker._get(inst, 'currentText'), 'Current', 'Before show - changed');
- ok(beforeShowThis.id == inp[0].id, 'Before show - this OK');
- ok(beforeShowInput.id == inp[0].id, 'Before show - input OK');
+ ok(beforeShowThis.id === inp[0].id, 'Before show - this OK');
+ ok(beforeShowInput.id === inp[0].id, 'Before show - input OK');
deepEqual(beforeShowInst, inst, 'Before show - inst OK');
inp.datepicker('hide').datepicker('destroy');
// Before show day
inp = init('#inp', {beforeShowDay: beforeDay});
- var dp = $('#ui-datepicker-div');
+ dp = $('#ui-datepicker-div');
inp.val('02/04/2008').datepicker('show');
- ok(beforeShowDayThis.id == inp[0].id, 'Before show day - this OK');
+ ok(beforeShowDayThis.id === inp[0].id, 'Before show day - this OK');
ok(beforeShowDayOK, 'Before show day - dates OK');
- var day20 = dp.find('.ui-datepicker-calendar td:contains("20")');
- var day21 = dp.find('.ui-datepicker-calendar td:contains("21")');
+ day20 = dp.find('.ui-datepicker-calendar td:contains("20")');
+ day21 = dp.find('.ui-datepicker-calendar td:contains("21")');
ok(!day20.is('.ui-datepicker-unselectable'), 'Before show day - unselectable 20');
ok(day21.is('.ui-datepicker-unselectable'), 'Before show day - unselectable 21');
ok(day20.is('.day10'), 'Before show day - CSS 20');
ok(!day21.is('.day10'), 'Before show day - CSS 21');
ok(!day20.attr('title'), 'Before show day - title 20');
- ok(day21.attr('title') == 'Divisble by 3', 'Before show day - title 21');
+ ok(day21.attr('title') === 'Divisble by 3', 'Before show day - title 21');
inp.datepicker('hide').datepicker('destroy');
});
test('localisation', function() {
- var inp = init('#inp', $.datepicker.regional['fr']);
+ var dp, month, day, date,
+ inp = init('#inp', $.datepicker.regional.fr);
inp.datepicker('option', {dateFormat: 'DD, d MM yy', showButtonPanel:true, changeMonth:true, changeYear:true}).val('').datepicker('show');
- var dp = $('#ui-datepicker-div');
+ dp = $('#ui-datepicker-div');
equal($('.ui-datepicker-close', dp).text(), 'Fermer', 'Localisation - close');
$('.ui-datepicker-close', dp).simulate('mouseover');
equal($('.ui-datepicker-prev', dp).text(), 'Précédent', 'Localisation - previous');
equal($('.ui-datepicker-current', dp).text(), 'Aujourd\'hui', 'Localisation - current');
equal($('.ui-datepicker-next', dp).text(), 'Suivant', 'Localisation - next');
- var month = 0;
+ month = 0;
$('.ui-datepicker-month option', dp).each(function() {
- equal($(this).text(), $.datepicker.regional['fr'].monthNamesShort[month],
+ equal($(this).text(), $.datepicker.regional.fr.monthNamesShort[month],
'Localisation - month ' + month);
month++;
});
- var day = 1;
+ day = 1;
$('.ui-datepicker-calendar th', dp).each(function() {
- equal($(this).text(), $.datepicker.regional['fr'].dayNamesMin[day],
+ equal($(this).text(), $.datepicker.regional.fr.dayNamesMin[day],
'Localisation - day ' + day);
day = (day + 1) % 7;
});
inp.simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
- var date = new Date();
- equal(inp.val(), $.datepicker.regional['fr'].dayNames[date.getDay()] + ', ' +
- date.getDate() + ' ' + $.datepicker.regional['fr'].monthNames[date.getMonth()] +
+ date = new Date();
+ equal(inp.val(), $.datepicker.regional.fr.dayNames[date.getDay()] + ', ' +
+ date.getDate() + ' ' + $.datepicker.regional.fr.monthNames[date.getMonth()] +
' ' + date.getFullYear(), 'Localisation - formatting');
});
test('noWeekends', function() {
- for (var i = 1; i <= 31; i++) {
- var date = new Date(2001, 1 - 1, i);
+ var i, date;
+ for (i = 1; i <= 31; i++) {
+ date = new Date(2001, 1 - 1, i);
deepEqual($.datepicker.noWeekends(date), [(i + 1) % 7 >= 2, ''],
'No weekends ' + date);
}
@@ -769,6 +759,7 @@ test('iso8601Week', function() {
test('parseDate', function() {
init('#inp');
+ var currentYear, gmtDate, fr, settings, zh;
ok($.datepicker.parseDate('d m y', '') == null, 'Parse date empty');
equalsDate($.datepicker.parseDate('d m y', '3 2 01'),
new Date(2001, 2 - 1, 3), 'Parse date d m y');
@@ -793,7 +784,7 @@ test('parseDate', function() {
equalsDate($.datepicker.parseDate('\'day\' d \'of\' MM (\'\'DD\'\'), yy',
'day 3 of February (\'Saturday\'), 2001'), new Date(2001, 2 - 1, 3),
'Parse date \'day\' d \'of\' MM (\'\'DD\'\'), yy');
- var currentYear = new Date().getFullYear();
+ currentYear = new Date().getFullYear();
equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000) + '-02-03'),
new Date(currentYear, 2 - 1, 3), 'Parse date y-m-d - default cutuff');
equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 10) + '-02-03'),
@@ -808,12 +799,12 @@ test('parseDate', function() {
new Date(currentYear + 60, 2 - 1, 3), 'Parse date y-m-d - cutoff +60');
equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 61) + '-02-03', {shortYearCutoff: '+60'}),
new Date(currentYear - 39, 2 - 1, 3), 'Parse date y-m-d - cutoff +60');
- var gmtDate = new Date(2001, 2 - 1, 3);
+ gmtDate = new Date(2001, 2 - 1, 3);
gmtDate.setMinutes(gmtDate.getMinutes() - gmtDate.getTimezoneOffset());
equalsDate($.datepicker.parseDate('@', '981158400000'), gmtDate, 'Parse date @');
equalsDate($.datepicker.parseDate('!', '631167552000000000'), gmtDate, 'Parse date !');
- var fr = $.datepicker.regional['fr'];
- var settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames,
+ fr = $.datepicker.regional.fr;
+ settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames,
monthNamesShort: fr.monthNamesShort, monthNames: fr.monthNames};
equalsDate($.datepicker.parseDate('D d M y', 'Lun. 9 Avril 01', settings),
new Date(2001, 4 - 1, 9), 'Parse date D M y with settings');
@@ -825,14 +816,15 @@ test('parseDate', function() {
'jour 9 de Avril (\'Lundi\'), 2001', settings), new Date(2001, 4 - 1, 9),
'Parse date \'jour\' d \'de\' MM (\'\'DD\'\'), yy with settings');
- var zh = $.datepicker.regional['zh-CN'];
+ zh = $.datepicker.regional['zh-CN'];
equalsDate($.datepicker.parseDate('yy M d', '2011 十一 22', zh),
new Date(2011, 11 - 1, 22), 'Parse date yy M d with zh-CN');
});
test('parseDateErrors', function() {
init('#inp');
- var expectError = function(expr, value, error) {
+ var fr, settings;
+ function expectError(expr, value, error) {
try {
expr();
ok(false, 'Parsed error ' + value);
@@ -840,7 +832,7 @@ test('parseDateErrors', function() {
catch (e) {
equal(e, error, 'Parsed error ' + value);
}
- };
+ }
expectError(function() { $.datepicker.parseDate(null, 'Sat 2 01'); },
'Sat 2 01', 'Invalid arguments');
expectError(function() { $.datepicker.parseDate('d m y', null); },
@@ -872,8 +864,8 @@ test('parseDateErrors', function() {
'day 3 of Mon2 ("Day7"), 2001', 'Unexpected literal at position 19');
expectError(function() { $.datepicker.parseDate('d m y', '29 2 01'); },
'29 2 01 - d m y', 'Invalid date');
- var fr = $.datepicker.regional['fr'];
- var settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames,
+ fr = $.datepicker.regional.fr;
+ settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames,
monthNamesShort: fr.monthNamesShort, monthNames: fr.monthNames};
expectError(function() { $.datepicker.parseDate('D d M y', 'Mon 9 Avr 01', settings); },
'Mon 9 Avr 01 - D d M y', 'Unknown name at position 0');
@@ -883,6 +875,7 @@ test('parseDateErrors', function() {
test('formatDate', function() {
init('#inp');
+ var gmtDate, fr, settings;
equal($.datepicker.formatDate('d m y', new Date(2001, 2 - 1, 3)),
'3 2 01', 'Format date d m y');
equal($.datepicker.formatDate('dd mm yy', new Date(2001, 2 - 1, 3)),
@@ -904,12 +897,12 @@ test('formatDate', function() {
equal($.datepicker.formatDate('\'day\' d \'of\' MM (\'\'DD\'\'), yy',
new Date(2001, 2 - 1, 3)), 'day 3 of February (\'Saturday\'), 2001',
'Format date \'day\' d \'of\' MM (\'\'DD\'\'), yy');
- var gmtDate = new Date(2001, 2 - 1, 3);
+ gmtDate = new Date(2001, 2 - 1, 3);
gmtDate.setMinutes(gmtDate.getMinutes() - gmtDate.getTimezoneOffset());
equal($.datepicker.formatDate('@', gmtDate), '981158400000', 'Format date @');
equal($.datepicker.formatDate('!', gmtDate), '631167552000000000', 'Format date !');
- var fr = $.datepicker.regional['fr'];
- var settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames,
+ fr = $.datepicker.regional.fr;
+ settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames,
monthNamesShort: fr.monthNamesShort, monthNames: fr.monthNames};
equal($.datepicker.formatDate('D M y', new Date(2001, 4 - 1, 9), settings),
'Lun. Avril 01', 'Format date D M y with settings');
diff --git a/tests/unit/datepicker/datepicker_tickets.js b/tests/unit/datepicker/datepicker_tickets.js
index fcf712370..105be63a6 100644
--- a/tests/unit/datepicker/datepicker_tickets.js
+++ b/tests/unit/datepicker/datepicker_tickets.js
@@ -7,8 +7,8 @@ module("datepicker: tickets");
// http://forum.jquery.com/topic/several-breaking-changes-in-jquery-ui-1-8rc1
test('beforeShowDay-getDate', function() {
- var inp = init('#inp', {beforeShowDay: function(date) { inp.datepicker('getDate'); return [true, '']; }});
- var dp = $('#ui-datepicker-div');
+ var inp = init('#inp', {beforeShowDay: function(date) { inp.datepicker('getDate'); return [true, '']; }}),
+ dp = $('#ui-datepicker-div');
inp.val('01/01/2010').datepicker('show');
// contains non-breaking space
equal($('div.ui-datepicker-title').text(), 'January 2010', 'Initial month');
@@ -26,11 +26,11 @@ test('beforeShowDay-getDate', function() {
test('Ticket 7602: Stop datepicker from appearing with beforeShow event handler', function(){
var inp = init('#inp',{
- beforeShow: function(){
- return false;
- }
- });
- var dp = $('#ui-datepicker-div');
+ beforeShow: function(){
+ return false;
+ }
+ }),
+ dp = $('#ui-datepicker-div');
inp.datepicker('show');
equal(dp.css('display'), 'none',"beforeShow returns false");
inp.datepicker('destroy');
diff --git a/tests/unit/dialog/all.html b/tests/unit/dialog/all.html
index 973119c08..b1c69c6c9 100644
--- a/tests/unit/dialog/all.html
+++ b/tests/unit/dialog/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/dialog/dialog.html b/tests/unit/dialog/dialog.html
index 94b20a225..d804807f2 100644
--- a/tests/unit/dialog/dialog.html
+++ b/tests/unit/dialog/dialog.html
@@ -6,9 +6,12 @@
<script src="../../jquery.js"></script>
<script src="../../../external/jquery.bgiframe-2.1.2.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.dialog" ],
js: [
"ui/jquery.ui.core.js",
@@ -22,13 +25,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="dialog_common.js"></script>
<script src="dialog_core.js"></script>
- <script src="dialog_defaults.js"></script>
<script src="dialog_events.js"></script>
<script src="dialog_methods.js"></script>
<script src="dialog_options.js"></script>
diff --git a/tests/unit/dialog/dialog_defaults.js b/tests/unit/dialog/dialog_common.js
index 9f2e4c6a8..623908da7 100644
--- a/tests/unit/dialog/dialog_defaults.js
+++ b/tests/unit/dialog/dialog_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "dialog", {
+TestHelpers.commonWidgetTests( "dialog", {
defaults: {
autoOpen: true,
buttons: {},
diff --git a/tests/unit/dialog/dialog_core.js b/tests/unit/dialog/dialog_core.js
index 4a671968e..5d7beb99b 100644
--- a/tests/unit/dialog/dialog_core.js
+++ b/tests/unit/dialog/dialog_core.js
@@ -40,8 +40,8 @@ function drag(handle, dx, dy) {
function moved(dx, dy, msg) {
msg = msg ? msg + "." : "";
- var actual = { left: Math.round(offsetAfter.left), top: Math.round(offsetAfter.top) };
- var expected = { left: Math.round(offsetBefore.left + dx), top: Math.round(offsetBefore.top + dy) };
+ var actual = { left: Math.round(offsetAfter.left), top: Math.round(offsetAfter.top) },
+ expected = { left: Math.round(offsetBefore.left + dx), top: Math.round(offsetBefore.top + dy) };
deepEqual(actual, expected, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
}
@@ -59,8 +59,8 @@ function shouldnotmove(why) {
function resized(dw, dh, msg) {
msg = msg ? msg + "." : "";
- var actual = { width: widthAfter, height: heightAfter };
- var expected = { width: widthBefore + dw, height: heightBefore + dh };
+ var actual = { width: widthAfter, height: heightAfter },
+ expected = { width: widthBefore + dw, height: heightBefore + dh };
deepEqual(actual, expected, 'resized[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
}
diff --git a/tests/unit/dialog/dialog_events.js b/tests/unit/dialog/dialog_events.js
index 4b769bafc..85afa5a3b 100644
--- a/tests/unit/dialog/dialog_events.js
+++ b/tests/unit/dialog/dialog_events.js
@@ -63,7 +63,8 @@ test("dragStart", function() {
test("drag", function() {
expect(9);
- var hasDragged = false;
+ var handle,
+ hasDragged = false;
el = $('<div></div>').dialog({
drag: function(ev, ui) {
@@ -83,7 +84,7 @@ test("drag", function() {
ok(ui.position !== undefined, "ui.position in callback");
ok(ui.offset !== undefined, "ui.offset in callback");
});
- var handle = $(".ui-dialog-titlebar", dlg());
+ handle = $(".ui-dialog-titlebar", dlg());
drag(handle, 50, 50);
el.remove();
});
@@ -138,7 +139,8 @@ test("resizeStart", function() {
test("resize", function() {
expect(13);
- var hasResized = false;
+ var handle,
+ hasResized = false;
el = $('<div></div>').dialog({
resize: function(ev, ui) {
@@ -162,7 +164,7 @@ test("resize", function() {
ok(ui.position !== undefined, "ui.position in callback");
ok(ui.size !== undefined, "ui.size in callback");
});
- var handle = $(".ui-resizable-se", dlg());
+ handle = $(".ui-resizable-se", dlg());
drag(handle, 50, 50);
el.remove();
});
diff --git a/tests/unit/dialog/dialog_methods.js b/tests/unit/dialog/dialog_methods.js
index 645baa9f5..1f84cd6b5 100644
--- a/tests/unit/dialog/dialog_methods.js
+++ b/tests/unit/dialog/dialog_methods.js
@@ -98,14 +98,17 @@ test("isOpen", function() {
});
test("moveToTop", function() {
- var expected = $('<div></div>').dialog(),
+ var d1, d2, dlg1, dlg2,
+ expected = $('<div></div>').dialog(),
actual = expected.dialog('moveToTop');
equal(actual, expected, 'moveToTop is chainable');
- var d1 = $('<div></div>').dialog(), dlg1 = d1.parents('.ui-dialog');
+ d1 = $('<div></div>').dialog();
+ dlg1 = d1.parents('.ui-dialog');
d1.dialog('close');
d1.dialog('open');
- var d2 = $('<div></div>').dialog(), dlg2 = d2.parents('.ui-dialog');
+ d2 = $('<div></div>').dialog();
+ dlg2 = d2.parents('.ui-dialog');
d2.dialog('close');
d2.dialog('open');
ok(dlg1.css('zIndex') < dlg2.css('zIndex'), 'dialog 1 under dialog 2 before moveToTop method called');
diff --git a/tests/unit/dialog/dialog_options.js b/tests/unit/dialog/dialog_options.js
index 10443892b..c071c1b09 100644
--- a/tests/unit/dialog/dialog_options.js
+++ b/tests/unit/dialog/dialog_options.js
@@ -20,7 +20,8 @@ test("autoOpen", function() {
test("buttons", function() {
expect(21);
- var buttons = {
+ var btn, i, newButtons,
+ buttons = {
"Ok": function(ev, ui) {
ok(true, "button click fires callback");
equal(this, el[0], "context of callback");
@@ -34,10 +35,10 @@ test("buttons", function() {
};
el = $('<div></div>').dialog({ buttons: buttons });
- var btn = $("button", dlg());
+ btn = $("button", dlg());
equal(btn.length, 2, "number of buttons");
- var i = 0;
+ i = 0;
$.each(buttons, function(key, val) {
equal(btn.eq(i).text(), key, "text of button " + (i+1));
i++;
@@ -48,7 +49,7 @@ test("buttons", function() {
btn.trigger("click");
- var newButtons = {
+ newButtons = {
"Close": function(ev, ui) {
ok(true, "button click fires callback");
equal(this, el[0], "context of callback");
@@ -275,54 +276,54 @@ test("minWidth", function() {
});
test("position, default center on window", function() {
- var el = $('<div></div>').dialog();
- var dialog = el.dialog('widget');
- var offset = dialog.offset();
+ var el = $('<div></div>').dialog(),
+ dialog = el.dialog('widget'),
+ offset = dialog.offset();
deepEqual(offset.left, Math.round($(window).width() / 2 - dialog.outerWidth() / 2) + $(window).scrollLeft());
deepEqual(offset.top, Math.round($(window).height() / 2 - dialog.outerHeight() / 2) + $(window).scrollTop());
el.remove();
});
test("position, top on window", function() {
- var el = $('<div></div>').dialog({ position: "top" });
- var dialog = el.dialog('widget');
- var offset = dialog.offset();
+ var el = $('<div></div>').dialog({ position: "top" }),
+ dialog = el.dialog('widget'),
+ offset = dialog.offset();
deepEqual(offset.left, Math.round($(window).width() / 2 - dialog.outerWidth() / 2) + $(window).scrollLeft());
deepEqual(offset.top, $(window).scrollTop());
el.remove();
});
test("position, left on window", function() {
- var el = $('<div></div>').dialog({ position: "left" });
- var dialog = el.dialog('widget');
- var offset = dialog.offset();
+ var el = $('<div></div>').dialog({ position: "left" }),
+ dialog = el.dialog('widget'),
+ offset = dialog.offset();
deepEqual(offset.left, 0);
deepEqual(offset.top, Math.round($(window).height() / 2 - dialog.outerHeight() / 2) + $(window).scrollTop());
el.remove();
});
test("position, right bottom on window", function() {
- var el = $('<div></div>').dialog({ position: "right bottom" });
- var dialog = el.dialog('widget');
- var offset = dialog.offset();
+ var el = $('<div></div>').dialog({ position: "right bottom" }),
+ dialog = el.dialog('widget'),
+ offset = dialog.offset();
deepEqual(offset.left, $(window).width() - dialog.outerWidth() + $(window).scrollLeft());
deepEqual(offset.top, $(window).height() - dialog.outerHeight() + $(window).scrollTop());
el.remove();
});
test("position, right bottom on window w/array", function() {
- var el = $('<div></div>').dialog({ position: ["right", "bottom"] });
- var dialog = el.dialog('widget');
- var offset = dialog.offset();
+ var el = $('<div></div>').dialog({ position: ["right", "bottom"] }),
+ dialog = el.dialog('widget'),
+ offset = dialog.offset();
deepEqual(offset.left, $(window).width() - dialog.outerWidth() + $(window).scrollLeft());
deepEqual(offset.top, $(window).height() - dialog.outerHeight() + $(window).scrollTop());
el.remove();
});
test("position, offset from top left w/array", function() {
- var el = $('<div></div>').dialog({ position: [10, 10] });
- var dialog = el.dialog('widget');
- var offset = dialog.offset();
+ var el = $('<div></div>').dialog({ position: [10, 10] }),
+ dialog = el.dialog('widget'),
+ offset = dialog.offset();
deepEqual(offset.left, 10 + $(window).scrollLeft());
deepEqual(offset.top, 10 + $(window).scrollTop());
el.remove();
@@ -330,14 +331,13 @@ test("position, offset from top left w/array", function() {
test("position, right bottom at right bottom via ui.position args", function() {
var el = $('<div></div>').dialog({
- position: {
- my: "right bottom",
- at: "right bottom"
- }
- });
-
- var dialog = el.dialog('widget');
- var offset = dialog.offset();
+ position: {
+ my: "right bottom",
+ at: "right bottom"
+ }
+ }),
+ dialog = el.dialog('widget'),
+ offset = dialog.offset();
deepEqual(offset.left, $(window).width() - dialog.outerWidth() + $(window).scrollLeft());
deepEqual(offset.top, $(window).height() - dialog.outerHeight() + $(window).scrollTop());
@@ -346,23 +346,23 @@ test("position, right bottom at right bottom via ui.position args", function() {
test("position, at another element", function() {
var parent = $('<div></div>').css({
- position: 'absolute',
- top: 400,
- left: 600,
- height: 10,
- width: 10
- }).appendTo('body');
-
- var el = $('<div></div>').dialog({
- position: {
- my: "left top",
- at: "left top",
- of: parent
- }
- });
+ position: 'absolute',
+ top: 400,
+ left: 600,
+ height: 10,
+ width: 10
+ }).appendTo('body'),
+
+ el = $('<div></div>').dialog({
+ position: {
+ my: "left top",
+ at: "left top",
+ of: parent
+ }
+ }),
- var dialog = el.dialog('widget');
- var offset = dialog.offset();
+ dialog = el.dialog('widget'),
+ offset = dialog.offset();
deepEqual(offset.left, 600);
deepEqual(offset.top, 400);
@@ -373,7 +373,7 @@ test("position, at another element", function() {
of: parent
});
- var offset = dialog.offset();
+ offset = dialog.offset();
deepEqual(offset.left, 610);
deepEqual(offset.top, 410);
diff --git a/tests/unit/dialog/dialog_tickets.js b/tests/unit/dialog/dialog_tickets.js
index bd9056153..98983cf33 100644
--- a/tests/unit/dialog/dialog_tickets.js
+++ b/tests/unit/dialog/dialog_tickets.js
@@ -12,12 +12,6 @@ asyncTest( "#3123: Prevent tabbing out of modal dialogs", function() {
inputs = el.find( "input" ),
widget = el.dialog( "widget" );
- inputs.eq( 1 ).focus();
- equal( document.activeElement, inputs[1], "Focus set on second input" );
- inputs.eq( 1 ).simulate( "keydown", { keyCode: $.ui.keyCode.TAB });
-
- setTimeout( checkTab, 2 );
-
function checkTab() {
ok( $.contains( widget, document.activeElement ), "Tab key event moved focus within the modal" );
@@ -32,14 +26,21 @@ asyncTest( "#3123: Prevent tabbing out of modal dialogs", function() {
el.remove();
start();
}
+
+ inputs.eq( 1 ).focus();
+ equal( document.activeElement, inputs[1], "Focus set on second input" );
+ inputs.eq( 1 ).simulate( "keydown", { keyCode: $.ui.keyCode.TAB });
+
+ setTimeout( checkTab, 2 );
});
test("#4826: setting resizable false toggles resizable on dialog", function() {
expect(6);
+ var i;
el = $('<div></div>').dialog({ resizable: false });
shouldnotresize("[default]");
- for (var i=0; i<2; i++) {
+ for (i=0; i<2; i++) {
el.dialog('close').dialog('open');
shouldnotresize('initialized with resizable false toggle ('+ (i+1) +')');
}
@@ -47,7 +48,7 @@ test("#4826: setting resizable false toggles resizable on dialog", function() {
el = $('<div></div>').dialog({ resizable: true });
shouldresize("[default]");
- for (var i=0; i<2; i++) {
+ for (i=0; i<2; i++) {
el.dialog('close').dialog('option', 'resizable', false).dialog('open');
shouldnotresize('set option resizable false toggle ('+ (i+1) +')');
}
@@ -108,7 +109,7 @@ test("#6137: dialog('open') causes form elements to reset on IE7", function() {
test("#6645: Missing element not found check in overlay", function(){
expect(2);
d1 = $('<div title="dialog 1">Dialog 1</div>').dialog({modal: true});
- d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true, close: function(){ d2.remove()}});
+ d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true, close: function(){ d2.remove(); }});
equal($.ui.dialog.overlay.instances.length, 2, 'two overlays created');
d2.dialog('close');
equal($.ui.dialog.overlay.instances.length, 1, 'one overlay remains after closing the 2nd overlay');
@@ -116,26 +117,76 @@ test("#6645: Missing element not found check in overlay", function(){
});
test("#6966: Escape key closes all dialogs, not the top one", function(){
- expect(8);
- // test with close function removing dialog
+ expect(24);
+ // test with close function removing dialog triggered through the overlay
+ d1 = $('<div title="dialog 1">Dialog 1</div>').dialog({modal: true, close: function(){ d1.remove(); }});
+ d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true, close: function(){ d2.remove(); }});
+
+ ok(d1.data('dialog') && d1.dialog('isOpen'), 'first dialog is open');
+ ok(d2.data('dialog') && d2.dialog('isOpen'), 'second dialog is open');
+
+ $( document ).simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
+ ok(d1.data('dialog') && d1.dialog('isOpen'), 'first dialog still open');
+ ok(!d2.data('dialog'), 'second dialog is closed');
+
+ $( document ).simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
+ ok(!d1.data('dialog'), 'first dialog is closed');
+ ok(!d2.data('dialog'), 'second dialog is closed');
+
+ d2.remove();
+ d1.remove();
+
+ // test with close function removing dialog triggered through the dialog
+ d1 = $('<div title="dialog 1">Dialog 1</div>').dialog({modal: true, close: function(){ d1.remove(); }});
+ d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true, close: function(){ d2.remove(); }});
+
+ ok(d1.data('dialog') && d1.dialog('isOpen'), 'first dialog is open');
+ ok(d2.data('dialog') && d2.dialog('isOpen'), 'second dialog is open');
+
+ d2.simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
+ ok(d1.data('dialog') && d1.dialog('isOpen'), 'first dialog still open');
+ ok(!d2.data('dialog'), 'second dialog is closed');
+
+ d1.simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
+ ok(!d1.data('dialog'), 'first dialog is closed');
+ ok(!d2.data('dialog'), 'second dialog is closed');
+
+ d2.remove();
+ d1.remove();
+
+ // test without close function removing dialog
d1 = $('<div title="dialog 1">Dialog 1</div>').dialog({modal: true});
- d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true, close: function(){ d2.remove()}});
+ d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true});
+
ok(d1.dialog("isOpen"), 'first dialog is open');
ok(d2.dialog("isOpen"), 'second dialog is open');
+
d2.simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
ok(d1.dialog("isOpen"), 'first dialog still open');
- ok(!d2.data('dialog'), 'second dialog is closed');
+ ok(!d2.dialog("isOpen"), 'second dialog is closed');
+
+ d1.simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
+ ok(!d1.dialog("isOpen"), 'first dialog is closed');
+ ok(!d2.dialog("isOpen"), 'second dialog is closed');
+
d2.remove();
d1.remove();
- // test without close function removing dialog
+ // test without close function removing dialog triggered through the overlay
d1 = $('<div title="dialog 1">Dialog 1</div>').dialog({modal: true});
d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true});
+
ok(d1.dialog("isOpen"), 'first dialog is open');
ok(d2.dialog("isOpen"), 'second dialog is open');
- d2.simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
+
+ $( document ).simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
ok(d1.dialog("isOpen"), 'first dialog still open');
ok(!d2.dialog("isOpen"), 'second dialog is closed');
+
+ $( document ).simulate("keydown", {keyCode: $.ui.keyCode.ESCAPE});
+ ok(!d1.dialog("isOpen"), 'first dialog is closed');
+ ok(!d2.dialog("isOpen"), 'second dialog is closed');
+
d2.remove();
d1.remove();
});
diff --git a/tests/unit/draggable/all.html b/tests/unit/draggable/all.html
index 1b2a511a5..75df351ad 100644
--- a/tests/unit/draggable/all.html
+++ b/tests/unit/draggable/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/draggable/draggable.html b/tests/unit/draggable/draggable.html
index 5be71f460..09bc191c9 100644
--- a/tests/unit/draggable/draggable.html
+++ b/tests/unit/draggable/draggable.html
@@ -5,9 +5,12 @@
<title>jQuery UI Draggable Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core" ],
js: [
"ui/jquery.ui.core.js",
@@ -18,13 +21,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="draggable_common.js"></script>
<script src="draggable_core.js"></script>
- <script src="draggable_defaults.js"></script>
<script src="draggable_events.js"></script>
<script src="draggable_methods.js"></script>
<script src="draggable_options.js"></script>
diff --git a/tests/unit/draggable/draggable_common.js b/tests/unit/draggable/draggable_common.js
new file mode 100644
index 000000000..b47b139cd
--- /dev/null
+++ b/tests/unit/draggable/draggable_common.js
@@ -0,0 +1,32 @@
+TestHelpers.commonWidgetTests( "draggable", {
+ defaults: {
+ addClasses: true,
+ appendTo: "parent",
+ axis: false,
+ cancel: ":input,option",
+ connectToSortable: false,
+ containment: false,
+ cursor: "auto",
+ cursorAt: false,
+ delay: 0,
+ disabled: false,
+ distance: 1,
+ grid: false,
+ handle: false,
+ helper: "original",
+ iframeFix: false,
+ opacity: false,
+ refreshPositions: false,
+ revert: false,
+ revertDuration: 500,
+ scroll: true,
+ scrollSensitivity: 20,
+ scrollSpeed: 20,
+ scope: "default",
+ snap: false,
+ snapMode: "both",
+ snapTolerance: 20,
+ stack: false,
+ zIndex: false
+ }
+});
diff --git a/tests/unit/draggable/draggable_core.js b/tests/unit/draggable/draggable_core.js
index ba5bc4c66..9193881ad 100644
--- a/tests/unit/draggable/draggable_core.js
+++ b/tests/unit/draggable/draggable_core.js
@@ -4,7 +4,7 @@
var el, offsetBefore, offsetAfter, dragged;
-var drag = function(handle, dx, dy) {
+function drag(handle, dx, dy) {
var element = el.data("draggable").element;
offsetBefore = el.offset();
$(handle).simulate("drag", {
@@ -15,10 +15,10 @@ var drag = function(handle, dx, dy) {
offsetAfter = el.offset();
}
-var moved = function (dx, dy, msg) {
+function moved(dx, dy, msg) {
msg = msg ? msg + "." : "";
- var actual = { left: offsetAfter.left, top: offsetAfter.top };
- var expected = { left: offsetBefore.left + dx, top: offsetBefore.top + dy };
+ var actual = { left: offsetAfter.left, top: offsetAfter.top },
+ expected = { left: offsetBefore.left + dx, top: offsetBefore.top + dy };
deepEqual(actual, expected, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
}
@@ -35,15 +35,15 @@ function restoreScroll(what) {
module("draggable");
test("element types", function() {
- var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form'
- + ',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr'
- + ',acronym,code,samp,kbd,var,img,object,hr'
- + ',input,button,label,select,iframe').split(',');
+ var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form' +
+ ',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr' +
+ ',acronym,code,samp,kbd,var,img,object,hr' +
+ ',input,button,label,select,iframe').split(',');
$.each(typeNames, function(i) {
var typeName = typeNames[i];
el = $(document.createElement(typeName)).appendTo('body');
- (typeName == 'table' && el.append("<tr><td>content</td></tr>"));
+ (typeName === 'table' && el.append("<tr><td>content</td></tr>"));
el.draggable({ cancel: '' });
drag(el, 50, 50);
moved(50, 50, "&lt;" + typeName + "&gt;");
diff --git a/tests/unit/draggable/draggable_defaults.js b/tests/unit/draggable/draggable_defaults.js
deleted file mode 100644
index 4b0aaca19..000000000
--- a/tests/unit/draggable/draggable_defaults.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * draggable_defaults.js
- */
-
-var draggable_defaults = {
- addClasses: true,
- appendTo: "parent",
- axis: false,
- cancel: ":input,option",
- connectToSortable: false,
- containment: false,
- cursor: "auto",
- cursorAt: false,
- delay: 0,
- disabled: false,
- distance: 1,
- grid: false,
- handle: false,
- helper: "original",
- iframeFix: false,
- opacity: false,
- refreshPositions: false,
- revert: false,
- revertDuration: 500,
- scroll: true,
- scrollSensitivity: 20,
- scrollSpeed: 20,
- scope: "default",
- snap: false,
- snapMode: "both",
- snapTolerance: 20,
- stack: false,
- zIndex: false
-};
-
-commonWidgetTests('draggable', { defaults: draggable_defaults });
diff --git a/tests/unit/draggable/draggable_options.js b/tests/unit/draggable/draggable_options.js
index d5f85feab..464e025dd 100644
--- a/tests/unit/draggable/draggable_options.js
+++ b/tests/unit/draggable/draggable_options.js
@@ -17,15 +17,16 @@ function setScroll(what) {
}
}
-var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); }
-
-var margin = function(el, side) { return parseInt(el.css('margin-' + side)); }
+function border(el, side) {
+ return parseInt(el.css('border-' + side + '-width'), 10);
+}
+function margin(el, side) {
+ return parseInt(el.css('margin-' + side), 10);
+}
module("draggable: options");
test("{ addClasses: true }, default", function() {
- equal(draggable_defaults.addClasses, true);
-
el = $("<div></div>").draggable({ addClasses: true });
ok(el.is(".ui-draggable"), "'ui-draggable' class added");
@@ -40,8 +41,6 @@ test("{ addClasses: false }", function() {
});
test("{ appendTo: 'parent' }, default", function() {
- equal(draggable_defaults.appendTo, "parent");
-
el = $("#draggable2").draggable({ appendTo: 'parent' });
drag(el, 50, 50);
moved(50, 50);
@@ -73,8 +72,6 @@ test("{ appendTo: Selector }", function() {
});
test("{ axis: false }, default", function() {
- equal(draggable_defaults.axis, false);
-
el = $("#draggable2").draggable({ axis: false });
drag(el, 50, 50);
moved(50, 50);
@@ -106,12 +103,10 @@ test("{ axis: ? }, unexpected", function() {
drag(el, 50, 50);
moved(50, 50, "axis: " + key);
el.draggable("destroy");
- })
+ });
});
test("{ cancel: ':input,option' }, default", function() {
- equal(draggable_defaults.cancel, ":input,option");
-
$('<div id="draggable-option-cancel-default"><input type="text"></div>').appendTo('#main');
el = $("#draggable-option-cancel-default").draggable({ cancel: ":input,option" });
@@ -155,12 +150,10 @@ test("{ cancel: ? }, unexpected", function() {
var expected = [50, 50];
moved(expected[0], expected[1], "cancel: " + key);
el.draggable("destroy");
- })
+ });
});
test("{ containment: false }, default", function() {
- equal(draggable_defaults.containment, false);
-
ok(false, 'missing test - untested code is broken code');
});
@@ -170,23 +163,25 @@ test("{ containment: Element }", function() {
test("{ containment: 'parent' }, relative", function() {
el = $("#draggable1").draggable({ containment: 'parent' });
- var p = el.parent(), po = p.offset();
+ var p = el.parent(),
+ po = p.offset(),
+ expected = {
+ left: po.left + border(p, 'left') + margin(el, 'left'),
+ top: po.top + border(p, 'top') + margin(el, 'top')
+ };
drag(el, -100, -100);
- var expected = {
- left: po.left + border(p, 'left') + margin(el, 'left'),
- top: po.top + border(p, 'top') + margin(el, 'top')
- }
deepEqual(offsetAfter, expected, 'compare offset to parent');
});
test("{ containment: 'parent' }, absolute", function() {
el = $("#draggable2").draggable({ containment: 'parent' });
- var p = el.parent(), po = p.offset();
+ var p = el.parent(),
+ po = p.offset(),
+ expected = {
+ left: po.left + border(p, 'left') + margin(el, 'left'),
+ top: po.top + border(p, 'top') + margin(el, 'top')
+ };
drag(el, -100, -100);
- var expected = {
- left: po.left + border(p, 'left') + margin(el, 'left'),
- top: po.top + border(p, 'top') + margin(el, 'top')
- }
deepEqual(offsetAfter, expected, 'compare offset to parent');
});
@@ -207,11 +202,9 @@ test("{ containment: [x1, y1, x2, y2] }", function() {
});
test("{ cursor: 'auto' }, default", function() {
- equal(draggable_defaults.cursor, 'auto');
-
function getCursor() { return $("#draggable2").css("cursor"); }
- expect(3);
+ expect(2);
var expected = "auto", actual, before, after;
@@ -256,8 +249,6 @@ test("{ cursor: 'move' }", function() {
});
test("{ cursorAt: false}, default", function() {
- equal(draggable_defaults.cursorAt, false);
-
ok(false, 'missing test - untested code is broken code');
});
@@ -611,8 +602,8 @@ test("{ helper: 'original' }, fixed, with scroll offset on root and parent", fun
test("{ helper: 'clone' }, absolute", function() {
- var helperOffset = null;
- var origOffset = $("#draggable1").offset();
+ var helperOffset = null,
+ origOffset = $("#draggable1").offset();
el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
helperOffset = ui.helper.offset();
@@ -626,8 +617,8 @@ test("{ helper: 'clone' }, absolute", function() {
test("{ helper: 'clone' }, absolute with scroll offset on parent", function() {
setScroll();
- var helperOffset = null;
- var origOffset = null;
+ var helperOffset = null,
+ origOffset = null;
el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
helperOffset = ui.helper.offset();
@@ -655,8 +646,8 @@ test("{ helper: 'clone' }, absolute with scroll offset on parent", function() {
test("{ helper: 'clone' }, absolute with scroll offset on root", function() {
setScroll('root');
- var helperOffset = null;
- var origOffset = null;
+ var helperOffset = null,
+ origOffset = null;
el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
helperOffset = ui.helper.offset();
@@ -685,25 +676,25 @@ test("{ helper: 'clone' }, absolute with scroll offset on root and parent", func
setScroll('root');
setScroll();
- var helperOffset = null;
- var origOffset = null;
+ var helperOffset = null,
+ origOffset = null;
el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
helperOffset = ui.helper.offset();
} });
$("#main").css('position', 'relative');
- origOffset = $("#draggable1").offset()
+ origOffset = $("#draggable1").offset();
drag(el, 1, 1);
deepEqual({ top: helperOffset.top-1, left: helperOffset.left-1 }, origOffset, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ');
$("#main").css('position', 'static');
- origOffset = $("#draggable1").offset()
+ origOffset = $("#draggable1").offset();
drag(el, 1, 1);
deepEqual({ top: helperOffset.top-1, left: helperOffset.left-1 }, origOffset, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ');
$("#main").css('position', 'absolute');
- origOffset = $("#draggable1").offset()
+ origOffset = $("#draggable1").offset();
drag(el, 1, 1);
deepEqual({ top: helperOffset.top-1, left: helperOffset.left-1 }, origOffset, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ');
@@ -734,9 +725,9 @@ test("{ zIndex: 10 }", function() {
expect(1);
- var expected = 10, actual;
-
- var zIndex = null;
+ var actual,
+ expected = 10,
+ zIndex = null;
el = $("#draggable2").draggable({
zIndex: expected,
start: function(event, ui) {
diff --git a/tests/unit/droppable/all.html b/tests/unit/droppable/all.html
index 535f41521..aa24ed7e1 100644
--- a/tests/unit/droppable/all.html
+++ b/tests/unit/droppable/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/droppable/droppable.html b/tests/unit/droppable/droppable.html
index abf94f0c7..49ebf6beb 100644
--- a/tests/unit/droppable/droppable.html
+++ b/tests/unit/droppable/droppable.html
@@ -5,9 +5,12 @@
<title>jQuery UI Droppable Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core" ],
js: [
"ui/jquery.ui.core.js",
@@ -19,13 +22,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="droppable_common.js"></script>
<script src="droppable_core.js"></script>
- <script src="droppable_defaults.js"></script>
<script src="droppable_events.js"></script>
<script src="droppable_methods.js"></script>
<script src="droppable_options.js"></script>
diff --git a/tests/unit/droppable/droppable_common.js b/tests/unit/droppable/droppable_common.js
new file mode 100644
index 000000000..985dba06d
--- /dev/null
+++ b/tests/unit/droppable/droppable_common.js
@@ -0,0 +1,12 @@
+TestHelpers.commonWidgetTests( "droppable", {
+ defaults: {
+ accept: "*",
+ activeClass: false,
+ addClasses: true,
+ disabled: false,
+ greedy: false,
+ hoverClass: false,
+ scope: "default",
+ tolerance: "intersect"
+ }
+});
diff --git a/tests/unit/droppable/droppable_core.js b/tests/unit/droppable/droppable_core.js
index 4d82017b9..3f709d25d 100644
--- a/tests/unit/droppable/droppable_core.js
+++ b/tests/unit/droppable/droppable_core.js
@@ -17,15 +17,15 @@ function shouldNotBeDroppable() {
module("droppable: core");
test("element types", function() {
- var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form'
- + ',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr'
- + ',acronym,code,samp,kbd,var,img,object,hr'
- + ',input,button,label,select,iframe').split(',');
+ var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form' +
+ ',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr' +
+ ',acronym,code,samp,kbd,var,img,object,hr' +
+ ',input,button,label,select,iframe').split(',');
$.each(typeNames, function(i) {
var typeName = typeNames[i];
el = $(document.createElement(typeName)).appendTo('body');
- (typeName == 'table' && el.append("<tr><td>content</td></tr>"));
+ (typeName === 'table' && el.append("<tr><td>content</td></tr>"));
el.droppable();
shouldBeDroppable();
el.droppable("destroy");
diff --git a/tests/unit/droppable/droppable_defaults.js b/tests/unit/droppable/droppable_defaults.js
deleted file mode 100644
index 7584f5ec8..000000000
--- a/tests/unit/droppable/droppable_defaults.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * droppable_defaults.js
- */
-
-var droppable_defaults = {
- accept: '*',
- activeClass: false,
- addClasses: true,
- disabled: false,
- greedy: false,
- hoverClass: false,
- scope: "default",
- tolerance: "intersect"
-};
-
-commonWidgetTests('droppable', { defaults: droppable_defaults });
diff --git a/tests/unit/droppable/droppable_options.js b/tests/unit/droppable/droppable_options.js
index 4df2d9ecb..19295778b 100644
--- a/tests/unit/droppable/droppable_options.js
+++ b/tests/unit/droppable/droppable_options.js
@@ -6,8 +6,6 @@
module("droppable: options");
test("{ accept '*' }, default ", function() {
- equal(droppable_defaults.accept, '*');
-
ok(false, 'missing test - untested code is broken code');
});
@@ -24,8 +22,6 @@ test("activeClass", function() {
});
test("{ addClasses: true }, default", function() {
- equal(droppable_defaults.addClasses, true);
-
el = $("<div></div>").droppable({ addClasses: true });
ok(el.is(".ui-droppable"), "'ui-droppable' class added");
el.droppable("destroy");
diff --git a/tests/unit/effects/all.html b/tests/unit/effects/all.html
index 0ef901292..59500588c 100644
--- a/tests/unit/effects/all.html
+++ b/tests/unit/effects/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/effects/effects.html b/tests/unit/effects/effects.html
index 06023c55d..1fd94182d 100644
--- a/tests/unit/effects/effects.html
+++ b/tests/unit/effects/effects.html
@@ -8,9 +8,12 @@
<script>
$.uiBackCompat = false;
</script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
js: [
"ui/jquery.effects.core.js",
"ui/jquery.effects.blind.js",
@@ -30,10 +33,6 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
<script src="effects_core.js"></script>
<script src="effects_scale.js"></script>
diff --git a/tests/unit/effects/effects_core.js b/tests/unit/effects/effects_core.js
index aca4c4694..955e6f799 100644
--- a/tests/unit/effects/effects_core.js
+++ b/tests/unit/effects/effects_core.js
@@ -31,6 +31,7 @@ test( "Immediate Return Conditions", function() {
equal( ++count, 3, "Both Functions worked properly" );
});
+/* TODO: Disabled - Can't figure out why this is failing in IE 6/7
test( "createWrapper and removeWrapper retain focused elements (#7595)", function() {
expect( 2 );
var test = $( "div.hidden" ).show(),
@@ -41,7 +42,7 @@ test( "createWrapper and removeWrapper retain focused elements (#7595)", functio
$.effects.removeWrapper( test );
equal( document.activeElement, input[ 0 ], "Active element is still input after removeWrapper" );
});
-
+*/
module( "effects.core: animateClass" );
@@ -61,45 +62,86 @@ asyncTest( "animateClass works with borderStyle", function() {
asyncTest( "animateClass works with colors", function() {
var test = $("div.animateClass"),
- count = 0;
+ count = 0,
+ oldStep = jQuery.fx.step.backgroundColor;
expect(2);
- test.toggleClass("testChangeBackground", duration, function() {
- present( test.css("backgroundColor"), [ "#ffffff", "#fff", "rgb(255, 255, 255)" ], "Color is final" );
- start();
+
+ // we want to catch the first frame of animation
+ jQuery.fx.step.backgroundColor = function( fx ) {
+ oldStep.apply( this, arguments );
+
+ // make sure it has animated somewhere we can detect
+ if ( fx.pos > 255 / 2000 ) {
+ jQuery.fx.step.backgroundColor = oldStep;
+ notPresent( test.css("backgroundColor"),
+ [ "#000000", "#ffffff", "#000", "#fff", "rgb(0, 0, 0)", "rgb(255,255,255)" ],
+ "Color is not endpoints in middle." );
+ test.stop( true, true );
+ }
+ };
+
+ test.toggleClass("testChangeBackground", {
+ duration: 2000,
+ complete: function() {
+ present( test.css("backgroundColor"), [ "#ffffff", "#fff", "rgb(255, 255, 255)" ], "Color is final" );
+ start();
+ }
});
- setTimeout(function() {
- var color = test.css("backgroundColor");
- notPresent( color, [ "#000000", "#ffffff", "#000", "#fff", "rgb(0, 0, 0)", "rgb(255,255,255)" ],
- "Color is not endpoints in middle." );
- }, mid);
});
-asyncTest( "animateClass works with children", function() {
- var test = $("div.animateClass"),
- h2 = test.find("h2");
+asyncTest( "animateClass calls step option", 1, function() {
+ var test = jQuery("div.animateClass"),
+ done = function() {
+ done = jQuery.noop;
+ test.stop();
+ start();
+ };
+ test.toggleClass( "testChangeBackground", {
+ step: function( fx ) {
+ ok( true, "Step Function Called" );
+ setTimeout( done, 0 );
+ }
+ });
+});
- expect(4);
- setTimeout(function() {
- notPresent( h2.css("fontSize"), ["10px","20px"], "Font size is neither endpoint when in middle.");
- }, mid);
- test.toggleClass("testChildren", { children: true, duration: duration, complete: function() {
- equal( h2.css("fontSize"), "20px", "Text size is final during complete");
- test.toggleClass("testChildren", duration, function() {
- equal( h2.css("fontSize"), "10px", "Text size revertted after class removed");
+asyncTest( "animateClass works with children", 3, function() {
+ var animatedChild,
+ test = $("div.animateClass"),
+ h2 = test.find("h2");
- start();
- });
- setTimeout(function() {
- equal( h2.css("fontSize"), "20px", "Text size unchanged during animate with children: undefined" );
- }, mid);
- }});
+ test.toggleClass("testChildren", {
+ children: true,
+ duration: duration,
+ complete: function() {
+ equal( h2.css("fontSize"), "20px", "Text size is final during complete");
+ test.toggleClass("testChildren", {
+ duration: duration,
+ complete: function() {
+ equal( h2.css("fontSize"), "10px", "Text size revertted after class removed");
+
+ start();
+ },
+ step: function( val, fx ) {
+ if ( fx.elem === h2[ 0 ] ) {
+ ok( false, "Error - Animating property on h2" );
+ }
+ }
+ });
+ },
+ step: function( val, fx ) {
+ if ( fx.prop === "fontSize" && fx.elem === h2[ 0 ] && !animatedChild ) {
+ equal( fx.end, 20, "animating font size on child" );
+ animatedChild = true;
+ }
+ }
+ });
});
asyncTest( "animateClass clears style properties when stopped", function() {
var test = $("div.animateClass"),
style = test[0].style,
orig = style.cssText;
-
+
expect( 2 );
test.addClass( "testChangeBackground", duration );
@@ -113,30 +155,35 @@ asyncTest( "animateClass clears style properties when stopped", function() {
asyncTest( "animateClass: css and class changes during animation are not lost (#7106)", function() {
var test = $( "div.ticket7106" );
- // add a class and change a style property after starting an animated class
- test.addClass( "animate", minDuration, animationComplete )
- .addClass( "testClass" )
- .height( 100 );
-
// ensure the class stays and that the css property stays
function animationComplete() {
ok( test.hasClass( "testClass" ), "class change during animateClass was not lost" );
equal( test.height(), 100, "css change during animateClass was not lost" );
start();
}
+
+ // add a class and change a style property after starting an animated class
+ test.addClass( "animate", minDuration, animationComplete )
+ .addClass( "testClass" )
+ .height( 100 );
});
$.each( $.effects.effect, function( effect ) {
+ module( "effects." + effect );
+
+ // puff and size are defined inside scale
+ if ( effect !== "puff" && effect !== "size" ) {
+ TestHelpers.testJshint( "effects." + effect );
+ }
+
if ( effect === "transfer" ) {
return;
}
- module( "effect."+effect );
asyncTest( "show/hide", function() {
- var hidden = $( "div.hidden" );
expect( 8 );
-
- var count = 0,
+ var hidden = $( "div.hidden" ),
+ count = 0,
test = 0;
function queueTest( fn ) {
diff --git a/tests/unit/effects/effects_scale.js b/tests/unit/effects/effects_scale.js
index b9bb91c2e..df61d9e91 100644
--- a/tests/unit/effects/effects_scale.js
+++ b/tests/unit/effects/effects_scale.js
@@ -4,6 +4,11 @@ module( "effect.scale: Scale" );
function run( position, v, h, vo, ho ) {
var desc = "End Position Correct: " + position + " (" + v + "," + h + ") - origin: (" + vo + "," + ho + ")";
asyncTest( desc, function() {
+ function complete() {
+ equal( parseInt( test.css( h ), 10 ), target[ h ], "Horizontal Position Correct " + desc );
+ equal( parseInt( test.css( v ), 10 ), target[ v ], "Vertical Position Correct " + desc );
+ start();
+ }
var test = $( ".testScale" ),
css = {
position: position
@@ -21,22 +26,16 @@ function run( position, v, h, vo, ho ) {
css[ h ] = 33;
css[ v ] = 33;
- target[ h ] = h === ho ? css[ h ] : ho == "center" ? css[ h ] - 35 : css[ h ] - 70;
- target[ v ] = v === vo ? css[ v ] : vo == "middle" ? css[ v ] - 35 : css[ v ] - 70;
- if ( relative && h == "right" ) {
+ target[ h ] = h === ho ? css[ h ] : ho === "center" ? css[ h ] - 35 : css[ h ] - 70;
+ target[ v ] = v === vo ? css[ v ] : vo === "middle" ? css[ v ] - 35 : css[ v ] - 70;
+ if ( relative && h === "right" ) {
target[ h ] += 70;
}
- if ( relative && v == "bottom" ) {
+ if ( relative && v === "bottom" ) {
target[ v ] += 70;
}
test.css( css );
test.effect( effect );
-
- function complete() {
- equal( parseInt( test.css( h ), 10 ), target[ h ], "Horizontal Position Correct " + desc );
- equal( parseInt( test.css( v ), 10 ), target[ v ], "Vertical Position Correct " + desc );
- start();
- }
});
}
diff --git a/tests/unit/menu/all.html b/tests/unit/menu/all.html
index a58e15299..475c1b717 100644
--- a/tests/unit/menu/all.html
+++ b/tests/unit/menu/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/menu/menu.html b/tests/unit/menu/menu.html
index 76f4a7a31..fca45697f 100644
--- a/tests/unit/menu/menu.html
+++ b/tests/unit/menu/menu.html
@@ -5,9 +5,12 @@
<title>jQuery UI Menu Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.menu" ],
js: [
"ui/jquery.ui.core.js",
@@ -17,14 +20,9 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
<script src="menu_test_helpers.js"></script>
+ <script src="menu_common.js"></script>
<script src="menu_core.js"></script>
- <script src="menu_defaults.js"></script>
<script src="menu_events.js"></script>
<script src="menu_methods.js"></script>
<script src="menu_options.js"></script>
@@ -251,6 +249,22 @@
</blockquote>
</div>
+<ul id="menu6">
+ <li class="foo"><a class="foo" href="#">Aberdeen</a></li>
+ <li class="foo ui-state-disabled"><a class="foo" href="#">Ada</a></li>
+ <li class="foo"><a class="foo" href="#">Adamsville</a></li>
+ <li class="foo"><a class="foo" href="#">Addyston</a></li>
+ <li class="ui-state-disabled">
+ <a href="#">Delphi</a>
+ <ul>
+ <li class="foo"><a class="foo" href="#">Ada</a></li>
+ <li class="foo"><a class="foo" href="#">Saarland</a></li>
+ <li class="foo"><a class="foo" href="#">Salzburg</a></li>
+ </ul>
+ </li>
+ <li class="foo"><a class="foo" href="#">Saarland</a></li>
+</ul>
+
<div id="log"></div>
</div>
diff --git a/tests/unit/menu/menu_defaults.js b/tests/unit/menu/menu_common.js
index 018ac8ccf..ddcdbebf2 100644
--- a/tests/unit/menu/menu_defaults.js
+++ b/tests/unit/menu/menu_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "menu", {
+TestHelpers.commonWidgetTests( "menu", {
defaults: {
disabled: false,
menus: "ul",
diff --git a/tests/unit/menu/menu_core.js b/tests/unit/menu/menu_core.js
index 02e3be3be..f2de7ef1a 100644
--- a/tests/unit/menu/menu_core.js
+++ b/tests/unit/menu/menu_core.js
@@ -9,18 +9,19 @@ module("menu: core");
test("accessibility", function () {
expect(5);
- var menu = $('#menu1').menu();
- var item0 = $("li:eq(0) a");
+ var item,
+ menu = $('#menu1').menu(),
+ item0 = $("li:eq(0) a");
ok( menu.hasClass("ui-menu ui-widget ui-widget-content ui-corner-all"), "menu class");
equal( menu.attr("role"), "menu", "main role");
ok( !menu.attr("aria-activedescendant"), "aria attribute not yet active");
- var item = menu.find( "li:first" ).find( "a" ).attr( "id", "xid" ).end();
+ item = menu.find( "li:first" ).find( "a" ).attr( "id", "xid" ).end();
menu.menu( "focus", $.Event(), item );
equal( menu.attr("aria-activedescendant"), "xid", "aria attribute, id from dom");
- var item = menu.find( "li:last" );
+ item = menu.find( "li:last" );
menu.menu( "focus", $.Event(), item );
equal( menu.attr("aria-activedescendant"), "menu1-4", "aria attribute, generated id");
});
diff --git a/tests/unit/menu/menu_events.js b/tests/unit/menu/menu_events.js
index bee6fcfa6..4cb083240 100644
--- a/tests/unit/menu/menu_events.js
+++ b/tests/unit/menu/menu_events.js
@@ -3,21 +3,24 @@
*/
(function($) {
+var log = TestHelpers.menu.log,
+ click = TestHelpers.menu.click;
+
module("menu: events");
test("handle click on menu", function() {
expect(1);
var menu = $('#menu1').menu({
select: function(event, ui) {
- menu_log();
+ log();
}
});
- menu_log("click",true);
- menu_click($('#menu1'),"1");
- menu_log("afterclick");
- menu_click( menu,"2");
- menu_click($('#menu1'),"3");
- menu_click( menu,"1");
+ log("click",true);
+ click($('#menu1'),"1");
+ log("afterclick");
+ click( menu,"2");
+ click($('#menu1'),"3");
+ click( menu,"1");
equal( $("#log").html(), "1,3,2,afterclick,1,click,", "Click order not valid.");
});
@@ -25,16 +28,16 @@ test("handle click on custom item menu", function() {
expect(1);
var menu = $('#menu5').menu({
select: function(event, ui) {
- menu_log();
+ log();
},
menus: "div"
});
- menu_log("click",true);
- menu_click($('#menu5'),"1");
- menu_log("afterclick");
- menu_click( menu,"2");
- menu_click($('#menu5'),"3");
- menu_click( menu,"1");
+ log("click",true);
+ click($('#menu5'),"1");
+ log("afterclick");
+ click( menu,"2");
+ click($('#menu5'),"3");
+ click( menu,"1");
equal( $("#log").html(), "1,3,2,afterclick,1,click,", "Click order not valid.");
});
@@ -75,7 +78,7 @@ test( "handle blur on custom item menu: click", function() {
items: "div"
});
- menu_click($('#menu5'),"1");
+ click($('#menu5'),"1");
$( "<a>", { id: "remove"} ).appendTo("body").trigger( "click" );
$("#remove").remove();
@@ -84,14 +87,12 @@ test( "handle blur on custom item menu: click", function() {
asyncTest( "handle submenu auto collapse: mouseleave", function() {
expect( 4 );
- var $menu = $( "#menu2" ).menu();
-
- $menu.find( "li:nth-child(7)" ).trigger( "mouseover" );
- setTimeout( menumouseleave1, 350 );
+ var $menu = $( "#menu2" ).menu(),
+ event = $.Event( "mouseenter" );
function menumouseleave1() {
equal( $menu.find( "ul[aria-expanded='true']" ).length, 1, "first submenu expanded" );
- $menu.find( "li:nth-child(7) li:first" ).trigger( "mouseover" );
+ $menu.menu( "focus", event, $menu.find( "li:nth-child(7) li:first" ) );
setTimeout( menumouseleave2, 350 );
}
function menumouseleave2() {
@@ -108,18 +109,19 @@ asyncTest( "handle submenu auto collapse: mouseleave", function() {
equal( $menu.find( "ul[aria-expanded='true']" ).length, 0, "first submenu collapsed" );
start();
}
+
+ $menu.find( "li:nth-child(7)" ).trigger( "mouseenter" );
+ setTimeout( menumouseleave1, 350 );
});
asyncTest( "handle submenu auto collapse: mouseleave", function() {
expect( 4 );
- var $menu = $( "#menu5" ).menu( { menus: "div" } );
-
- $menu.find( ":nth-child(7)" ).trigger( "mouseover" );
- setTimeout( menumouseleave1, 350 );
+ var $menu = $( "#menu5" ).menu( { menus: "div" } ),
+ event = $.Event( "mouseenter" );
function menumouseleave1() {
equal( $menu.find( "div[aria-expanded='true']" ).length, 1, "first submenu expanded" );
- $menu.find( ":nth-child(7)" ).find( "div" ).eq( 0 ).children().eq( 0 ).trigger( "mouseover" );
+ $menu.menu( "focus", event, $menu.find( ":nth-child(7)" ).find( "div" ).eq( 0 ).children().eq( 0 ) );
setTimeout( menumouseleave2, 350 );
}
function menumouseleave2() {
@@ -136,6 +138,10 @@ asyncTest( "handle submenu auto collapse: mouseleave", function() {
equal( $menu.find( "div[aria-expanded='true']" ).length, 0, "first submenu collapsed" );
start();
}
+
+ $menu.find( ":nth-child(7)" ).trigger( "mouseenter" );
+ setTimeout( menumouseleave1, 350 );
+
});
@@ -143,60 +149,60 @@ test("handle keyboard navigation on menu without scroll and without submenus", f
expect(12);
var element = $('#menu1').menu({
select: function(event, ui) {
- menu_log($(ui.item[0]).text());
+ log($(ui.item[0]).text());
},
focus: function( event, ui ) {
- menu_log($(event.target).find(".ui-state-focus").parent().index());
+ log($(event.target).find(".ui-state-focus").parent().index());
}
});
- menu_log("keydown",true);
+ log("keydown",true);
element.focus();
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
equal( $("#log").html(), "2,1,0,keydown,", "Keydown DOWN");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
equal( $("#log").html(), "1,keydown,", "Keydown UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
equal( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
equal( $("#log").html(), "keydown,", "Keydown RIGHT (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "4,keydown,", "Keydown PAGE_DOWN");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "keydown,", "Keydown PAGE_DOWN (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "0,keydown,", "Keydown PAGE_UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "keydown,", "Keydown PAGE_UP (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
equal( $("#log").html(), "4,keydown,", "Keydown END");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
equal( $("#log").html(), "0,keydown,", "Keydown HOME");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
equal( $("#log").html(), "keydown,", "Keydown ESCAPE (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
equal( $("#log").html(), "Aberdeen,keydown,", "Keydown ENTER");
});
@@ -205,14 +211,14 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus",
expect(14);
var element = $('#menu2').menu({
select: function(event, ui) {
- menu_log($(ui.item[0]).text());
+ log($(ui.item[0]).text());
},
focus: function( event, ui ) {
- menu_log($(event.target).find(".ui-state-focus").parent().index());
+ log($(event.target).find(".ui-state-focus").parent().index());
}
});
- menu_log("keydown",true);
+ log("keydown",true);
element.one( "menufocus", function( event, ui ) {
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
@@ -222,16 +228,16 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus",
element.focus();
function menukeyboard1() {
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
equal( $("#log").html(), "0,1,keydown,", "Keydown UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
equal( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
@@ -245,7 +251,7 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus",
}
function menukeyboard2() {
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
equal( $("#log").html(), "4,keydown,", "Keydown LEFT (close submenu)");
@@ -255,35 +261,35 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus",
}
function menukeyboard3() {
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "2,keydown,", "Keydown PAGE_DOWN");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "keydown,", "Keydown PAGE_DOWN (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "0,keydown,", "Keydown PAGE_UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "keydown,", "Keydown PAGE_UP (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
equal( $("#log").html(), "2,keydown,", "Keydown END");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
equal( $("#log").html(), "0,keydown,", "Keydown HOME");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
equal( $("#log").html(), "4,keydown,", "Keydown ESCAPE (close submenu)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
setTimeout( menukeyboard4, 50 );
}
@@ -291,7 +297,7 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus",
function menukeyboard4() {
equal( $("#log").html(), "0,keydown,", "Keydown ENTER (open submenu)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
equal( $("#log").html(), "Ada,keydown,", "Keydown ENTER (select item)");
@@ -303,69 +309,69 @@ test("handle keyboard navigation on menu with scroll and without submenus", func
expect(14);
var element = $('#menu3').menu({
select: function(event, ui) {
- menu_log($(ui.item[0]).text());
+ log($(ui.item[0]).text());
},
focus: function( event, ui ) {
- menu_log($(event.target).find(".ui-state-focus").parent().index());
+ log($(event.target).find(".ui-state-focus").parent().index());
}
});
- menu_log("keydown",true);
+ log("keydown",true);
element.focus();
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
equal( $("#log").html(), "2,1,0,keydown,", "Keydown DOWN");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
equal( $("#log").html(), "0,1,keydown,", "Keydown UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
equal( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
equal( $("#log").html(), "keydown,", "Keydown RIGHT (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "10,keydown,", "Keydown PAGE_DOWN");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "20,keydown,", "Keydown PAGE_DOWN");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "10,keydown,", "Keydown PAGE_UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "0,keydown,", "Keydown PAGE_UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "keydown,", "Keydown PAGE_UP (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
equal( $("#log").html(), "37,keydown,", "Keydown END");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "keydown,", "Keydown PAGE_DOWN (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
equal( $("#log").html(), "0,keydown,", "Keydown HOME");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
equal( $("#log").html(), "keydown,", "Keydown ESCAPE (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
equal( $("#log").html(), "Aberdeen,keydown,", "Keydown ENTER");
});
@@ -374,14 +380,14 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
expect(14);
var element = $('#menu4').menu({
select: function(event, ui) {
- menu_log($(ui.item[0]).text());
+ log($(ui.item[0]).text());
},
focus: function( event, ui ) {
- menu_log($(event.target).find(".ui-state-focus").parent().index());
+ log($(event.target).find(".ui-state-focus").parent().index());
}
});
- menu_log("keydown",true);
+ log("keydown",true);
element.one( "menufocus", function( event, ui ) {
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
@@ -392,16 +398,16 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
function menukeyboard1() {
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
equal( $("#log").html(), "0,1,keydown,", "Keydown UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
equal( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
@@ -412,7 +418,7 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
}
function menukeyboard2() {
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
equal( $("#log").html(), "1,keydown,", "Keydown LEFT (close submenu)");
@@ -422,35 +428,35 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
}
function menukeyboard3() {
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "10,keydown,", "Keydown PAGE_DOWN");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
equal( $("#log").html(), "20,keydown,", "Keydown PAGE_DOWN");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "10,keydown,", "Keydown PAGE_UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
equal( $("#log").html(), "0,keydown,", "Keydown PAGE_UP");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.END } );
equal( $("#log").html(), "27,keydown,", "Keydown END");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.HOME } );
equal( $("#log").html(), "0,keydown,", "Keydown HOME");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
equal( $("#log").html(), "1,keydown,", "Keydown ESCAPE (close submenu)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
setTimeout( menukeyboard4, 50 );
}
@@ -458,7 +464,7 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
function menukeyboard4() {
equal( $("#log").html(), "0,keydown,", "Keydown ENTER (open submenu)");
- menu_log("keydown",true);
+ log("keydown",true);
element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
equal( $("#log").html(), "Aberdeen,keydown,", "Keydown ENTER (select item)");
@@ -466,4 +472,56 @@ asyncTest("handle keyboard navigation on menu with scroll and with submenus", fu
}
});
+asyncTest("handle keyboard navigation and mouse click on menu with disabled items", function() {
+ expect(6);
+ var element = $('#menu6').menu({
+ select: function(event, ui) {
+ log($(ui.item[0]).text());
+ },
+ focus: function( event, ui ) {
+ log($(event.target).find(".ui-state-focus").parent().index());
+ }
+ });
+
+ log("keydown",true);
+ element.one( "menufocus", function( event, ui ) {
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
+ equal( $("#log").html(), "1,keydown,", "Keydown focus but not select disabled item");
+ setTimeout( menukeyboard1, 50 );
+ });
+ element.focus();
+
+
+ function menukeyboard1() {
+ log("keydown",true);
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
+ equal( $("#log").html(), "4,3,2,keydown,", "Keydown focus disabled item with submenu");
+
+ log("keydown",true);
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
+ equal( $("#log").html(), "keydown,", "Keydown LEFT (no effect)");
+
+ log("keydown",true);
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
+
+ setTimeout( function() {
+ equal( $("#log").html(), "keydown,", "Keydown RIGHT (no effect on disabled sub-menu)");
+
+ log("keydown",true);
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
+
+ setTimeout( function() {
+ equal( $("#log").html(), "keydown,", "Keydown ENTER (no effect on disabled sub-menu)");
+ log("click",true);
+ click( element, "1" );
+ equal( $("#log").html(), "click,", "Click disabled item (no effect)");
+ start();
+ }, 50);
+ }, 50);
+ }
+});
+
})(jQuery);
diff --git a/tests/unit/menu/menu_methods.js b/tests/unit/menu/menu_methods.js
index 200ea4427..6ad7bc134 100644
--- a/tests/unit/menu/menu_methods.js
+++ b/tests/unit/menu/menu_methods.js
@@ -3,25 +3,28 @@
*/
(function($) {
+var log = TestHelpers.menu.log,
+ click = TestHelpers.menu.click;
+
module("menu: methods");
test( "enable/disable", function() {
expect( 3 );
var menu = $( "#menu1" ).menu({
select: function(event, ui) {
- menu_log();
+ log();
}
});
menu.menu("disable");
ok(menu.is(".ui-state-disabled"),"Missing ui-state-disabled class");
- menu_log("click",true);
- menu_click(menu,"1");
- menu_log("afterclick");
+ log("click",true);
+ click(menu,"1");
+ log("afterclick");
menu.menu("enable");
ok(menu.not(".ui-state-disabled"),"Has ui-state-disabled class");
- menu_log("click");
- menu_click(menu,"1");
- menu_log("afterclick");
+ log("click");
+ click(menu,"1");
+ log("afterclick");
equal( $("#log").html(), "afterclick,1,click,afterclick,click,", "Click order not valid.");
});
diff --git a/tests/unit/menu/menu_options.js b/tests/unit/menu/menu_options.js
index cda52d88d..e651fd2d1 100644
--- a/tests/unit/menu/menu_options.js
+++ b/tests/unit/menu/menu_options.js
@@ -3,6 +3,9 @@
*/
(function($) {
+var log = TestHelpers.menu.log,
+ click = TestHelpers.menu.click;
+
module("menu: options");
test( "{ disabled: true }", function() {
@@ -10,13 +13,13 @@ test( "{ disabled: true }", function() {
var menu = $( "#menu1" ).menu({
disabled: true,
select: function(event, ui) {
- menu_log();
+ log();
}
});
ok(menu.is(".ui-state-disabled"),"Missing ui-state-disabled class");
- menu_log("click",true);
- menu_click(menu,"1");
- menu_log("afterclick");
+ log("click",true);
+ click(menu,"1");
+ log("afterclick");
equal( $("#log").html(), "afterclick,click,", "Click order not valid.");
});
@@ -25,13 +28,13 @@ test( "{ disabled: false }", function() {
var menu = $( "#menu1" ).menu({
disabled: false,
select: function(event, ui) {
- menu_log();
+ log();
}
});
ok(menu.not(".ui-state-disabled"),"Has ui-state-disabled class");
- menu_log("click",true);
- menu_click(menu,"1");
- menu_log("afterclick");
+ log("click",true);
+ click(menu,"1");
+ log("afterclick");
equal( $("#log").html(), "afterclick,1,click,", "Click order not valid.");
});
diff --git a/tests/unit/menu/menu_test_helpers.js b/tests/unit/menu/menu_test_helpers.js
index e83795e5a..a576af19a 100644
--- a/tests/unit/menu/menu_test_helpers.js
+++ b/tests/unit/menu/menu_test_helpers.js
@@ -1,14 +1,16 @@
-function menu_log( message, clear ) {
- if ( clear ) {
- $( "#log" ).empty();
- }
- if ( message === undefined ) {
- message = $( "#log" ).data( "lastItem" );
- }
- $( "#log" ).prepend( $.trim( message ) + "," );
-}
+TestHelpers.menu = {
+ log: function( message, clear ) {
+ if ( clear ) {
+ $( "#log" ).empty();
+ }
+ if ( message === undefined ) {
+ message = $( "#log" ).data( "lastItem" );
+ }
+ $( "#log" ).prepend( $.trim( message ) + "," );
+ },
-function menu_click( menu, item ) {
- $( "#log" ).data( "lastItem", item );
- menu.children( ":eq(" + item + ")" ).find( "a:first" ).trigger( "click" );
-} \ No newline at end of file
+ click: function( menu, item ) {
+ $( "#log" ).data( "lastItem", item );
+ menu.children( ":eq(" + item + ")" ).find( "a:first" ).trigger( "click" );
+ }
+}; \ No newline at end of file
diff --git a/tests/unit/position/all.html b/tests/unit/position/all.html
index fa3ecf23d..d76f9bbd8 100644
--- a/tests/unit/position/all.html
+++ b/tests/unit/position/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/position/position.html b/tests/unit/position/position.html
index 115adc3e9..8738ae667 100644
--- a/tests/unit/position/position.html
+++ b/tests/unit/position/position.html
@@ -8,62 +8,43 @@
<script>
$.uiBackCompat = false;
</script>
- <script src="../../resource_loader.js"></script>
- <script>
- loadResources({
- js: [ "ui/jquery.ui.position.js" ]
- });
- </script>
-
<link rel="stylesheet" href="../../../external/qunit.css">
<script src="../../../external/qunit.js"></script>
<script src="../../jquery.simulate.js"></script>
<script src="../testsuite.js"></script>
+ <script>
+ TestHelpers.loadResources({
+ js: [ "ui/jquery.ui.position.js" ]
+ });
+ </script>
<script src="position_core.js"></script>
- <script src="position_core_within.js"></script>
<script src="../swarminject.js"></script>
</head>
<body>
-<div style="position:relative; z-index:2;">
- <h1 id="qunit-header">jQuery UI Position Test Suite</h1>
- <h2 id="qunit-banner"></h2>
- <div id="qunit-testrunner-toolbar"></div>
- <h2 id="qunit-userAgent"></h2>
- <ol id="qunit-tests">
- </ol>
-</div>
+<div id="qunit" style="position:relative; z-index:2;"></div>
<!--
-elements smaller than 10px have a line-height set on them to avoid a bug in IE6
+elements smaller than 20px have a line-height set on them to avoid a bug in IE6
.height() returns the greater of the height and line-height
-->
<div id="qunit-fixture" style="top: 0; left: 0; z-index:1">
- <div id="within-container">
- <div id="el1" style="position: absolute; width: 6px; height: 6px; line-height: 6px;"></div>
- <div id="el2" style="position: absolute; width: 6px; height: 6px; line-height: 6px;"></div>
- <div id="parent" style="position: absolute; width: 6px; height: 6px; top: 4px; left: 4px; line-height: 6px;"></div>
-
- <div style="position: absolute; top: 0px; left: 0px">
- <div id="elx" style="position: absolute; width: 10px; height: 10px; line-height: 10px;"></div>
- <div id="parentx" style="position: absolute; width: 20px; height: 20px; top: 40px; left: 40px;"></div>
- </div>
-
- <div style="position: absolute; top: 200px; left: 100px;">
- <div id="el-offset-100-200" style="position: absolute; width: 10px; height: 10px; line-height: 10px;"></div>
- <div style="position: absolute; top: 100px; left: 50px;">
- <div id="el-two-offset-150-300" style="position: absolute; width: 10px; height: 10px; line-height: 10px;"></div>
- <div id="el-fixed" style="position: fixed; top: 200px; left: 200px;"></div>
- </div>
- </div>
+ <div id="el1" style="position: absolute; width: 6px; height: 6px; line-height: 6px;"></div>
+ <div id="el2" style="position: absolute; width: 6px; height: 6px; line-height: 6px;"></div>
+ <div id="parent" style="position: absolute; width: 6px; height: 6px; top: 4px; left: 4px; line-height: 6px;"></div>
+ <div id="within" style="position: absolute; width: 12px; height: 12px; top: 2px; left: 0px; line-height: 12px;"></div>
+
+ <div id="scrollx" style="position: absolute; top: 0px; left: 0px">
+ <div id="elx" style="position: absolute; width: 10px; height: 10px; line-height: 10px;"></div>
+ <div id="parentx" style="position: absolute; width: 20px; height: 20px; top: 40px; left: 40px;"></div>
+ </div>
- <div style="position: absolute; height: 5000px; width: 5000px;"></div>
+ <div style="position: absolute; height: 5000px; width: 5000px;"></div>
- <div id="fractions-parent" style="position: absolute; left: 10.7432222px; top: 10.532325px; height: 30px; width: 201px;">
- <div id="fractions-element"></div>
- </div>
+ <div id="fractions-parent" style="position: absolute; left: 10.7432222px; top: 10.532325px; height: 30px; width: 201px;">
+ <div id="fractions-element"></div>
</div>
<div id="bug-5280" style="height: 30px; width: 201px;">
diff --git a/tests/unit/position/position_core.js b/tests/unit/position/position_core.js
index fbcac4b7f..4a2240311 100644
--- a/tests/unit/position/position_core.js
+++ b/tests/unit/position/position_core.js
@@ -1,13 +1,26 @@
(function( $ ) {
-function scrollTopSupport() {
- $( window ).scrollTop( 1 );
- return $( window ).scrollTop() === 1;
-}
+var win = $( window ),
+ scrollTopSupport = function() {
+ var support = win.scrollTop( 1 ).scrollTop() === 1;
+ win.scrollTop( 0 );
+ scrollTopSupport = function() {
+ return support;
+ };
+ return support;
+ };
+
+module( "position", {
+ setup: function() {
+ win.scrollTop( 0 ).scrollLeft( 0 );
+ }
+});
-module( "position" );
+TestHelpers.testJshint( "ui.position" );
test( "my, at, of", function() {
+ expect( 4 );
+
$( "#elx" ).position({
my: "left top",
at: "left top",
@@ -42,59 +55,61 @@ test( "my, at, of", function() {
});
test( "multiple elements", function() {
- var elements = $( "#el1, #el2" );
- var result = elements.position({
- my: "left top",
- at: "left bottom",
- of: "#parent",
- collision: "none"
- });
+ expect( 3 );
+
+ var elements = $( "#el1, #el2" ),
+ result = elements.position({
+ my: "left top",
+ at: "left bottom",
+ of: "#parent",
+ collision: "none"
+ }),
+ expected = { top: 10, left: 4 };
deepEqual( result, elements );
- var expected = { top: 10, left: 4 };
elements.each(function() {
deepEqual( $( this ).offset(), expected );
});
});
test( "positions", function() {
- var definitions = [];
+ expect( 18 );
+
var offsets = {
- left: 0,
- center: 3,
- right: 6,
- top: 0,
- bottom: 6
- };
- var start = { left: 4, top: 4 };
+ left: 0,
+ center: 3,
+ right: 6,
+ top: 0,
+ bottom: 6
+ },
+ start = { left: 4, top: 4 },
+ el = $( "#el1" );
+
$.each( [ 0, 1 ], function( my ) {
$.each( [ "top", "center", "bottom" ], function( vindex, vertical ) {
$.each( [ "left", "center", "right" ], function( hindex, horizontal ) {
- definitions.push({
- my: my ? horizontal + " " + vertical : "left top",
- at: !my ? horizontal + " " + vertical : "left top",
- result: {
- top: my ? start.top - offsets[ vertical ] : start.top + offsets[ vertical ],
- left: my ? start.left - offsets[ horizontal ] : start.left + offsets[ horizontal ]
- }
+ var _my = my ? horizontal + " " + vertical : "left top",
+ _at = !my ? horizontal + " " + vertical : "left top";
+ el.position({
+ my: _my,
+ at: _at,
+ of: "#parent",
+ collision: "none"
});
+ deepEqual( el.offset(), {
+ top: start.top + offsets[ vertical ] * (my ? -1 : 1),
+ left: start.left + offsets[ horizontal ] * (my ? -1 : 1)
+ }, "Position via " + QUnit.jsDump.parse({ my: _my, at: _at }) );
});
});
});
- var el = $( "#el1" );
- $.each( definitions, function( index, definition ) {
- el.position({
- my: definition.my,
- at: definition.at,
- of: "#parent",
- collision: "none"
- });
- deepEqual( el.offset(), definition.result,
- "Position via " + QUnit.jsDump.parse({ my:definition.my, at:definition.at }) );
- });
});
test( "of", function() {
+ expect( 9 + (scrollTopSupport() ? 1 : 0) );
+
+ var event;
+
$( "#elx" ).position({
my: "left top",
at: "left top",
@@ -141,7 +156,7 @@ test( "of", function() {
left: $( document ).width() - 10
}, "document as jQuery object" );
- $( window ).scrollTop( 0 );
+ win.scrollTop( 0 );
$( "#elx" ).position({
my: "right bottom",
@@ -150,23 +165,23 @@ test( "of", function() {
collision: "none"
});
deepEqual( $( "#elx" ).offset(), {
- top: $( window ).height() - 10,
- left: $( window ).width() - 10
+ top: win.height() - 10,
+ left: win.width() - 10
}, "window" );
$( "#elx" ).position({
my: "right bottom",
at: "right bottom",
- of: $( window ),
+ of: win,
collision: "none"
});
deepEqual( $( "#elx" ).offset(), {
- top: $( window ).height() - 10,
- left: $( window ).width() - 10
+ top: win.height() - 10,
+ left: win.width() - 10
}, "window as jQuery object" );
if ( scrollTopSupport() ) {
- $( window ).scrollTop( 500 ).scrollLeft( 200 );
+ win.scrollTop( 500 ).scrollLeft( 200 );
$( "#elx" ).position({
my: "right bottom",
at: "right bottom",
@@ -174,13 +189,13 @@ test( "of", function() {
collision: "none"
});
deepEqual( $( "#elx" ).offset(), {
- top: $( window ).height() + 500 - 10,
- left: $( window ).width() + 200 - 10
+ top: win.height() + 500 - 10,
+ left: win.width() + 200 - 10
}, "window, scrolled" );
- $( window ).scrollTop( 0 ).scrollLeft( 0 );
+ win.scrollTop( 0 ).scrollLeft( 0 );
}
- var event = $.extend( $.Event( "someEvent" ), { pageX: 200, pageY: 300 } );
+ event = $.extend( $.Event( "someEvent" ), { pageX: 200, pageY: 300 } );
$( "#elx" ).position({
my: "left top",
at: "left top",
@@ -206,6 +221,8 @@ test( "of", function() {
});
test( "offsets", function() {
+ expect( 4 );
+
$( "#elx" ).position({
my: "left top",
at: "left+10 bottom+10",
@@ -240,11 +257,30 @@ test( "offsets", function() {
});
test( "using", function() {
- expect( 6 );
+ expect( 10 );
var count = 0,
elems = $( "#el1, #el2" ),
- expectedPosition = { top: 40, left: 40 },
+ of = $( "#parentx" ),
+ expectedPosition = { top: 60, left: 60 },
+ expectedFeedback = {
+ target: {
+ element: of,
+ width: 20,
+ height: 20,
+ left: 40,
+ top: 40
+ },
+ element: {
+ width: 6,
+ height: 6,
+ left: 60,
+ top: 60
+ },
+ horizontal: "left",
+ vertical: "top",
+ important: "vertical"
+ },
originalPosition = elems.position({
my: "right bottom",
at: "rigt bottom",
@@ -254,11 +290,14 @@ test( "using", function() {
elems.position({
my: "left top",
- at: "left top",
+ at: "center+10 bottom",
of: "#parentx",
- using: function( position ) {
+ using: function( position, feedback ) {
deepEqual( this, elems[ count ], "correct context for call #" + count );
deepEqual( position, expectedPosition, "correct position for call #" + count );
+ deepEqual( feedback.element.element[ 0 ], elems[ count ] );
+ delete feedback.element.element;
+ deepEqual( feedback, expectedFeedback );
count++;
}
});
@@ -272,7 +311,7 @@ function collisionTest( config, result, msg ) {
var elem = $( "#elx" ).position( $.extend({
my: "left top",
at: "right bottom",
- of: window
+ of: "#parent"
}, config ) );
deepEqual( elem.offset(), result, msg );
}
@@ -284,239 +323,340 @@ function collisionTest2( config, result, msg ) {
}, config ), result, msg );
}
-test( "collision: fit, no offset", function() {
+test( "collision: fit, no collision", function() {
+ expect( 2 );
+
collisionTest({
collision: "fit"
- }, { top: $( window ).height() - 10, left: $( window ).width() - 10 }, "right bottom" );
+ }, {
+ top: 10,
+ left: 10
+ }, "no offset" );
- collisionTest2({
- collision: "fit"
- }, { top: 0, left: 0 }, "left top" );
-});
-
-test( "collision: fit, with offset", function() {
collisionTest({
collision: "fit",
at: "right+2 bottom+3"
- }, { top: $(window).height() - 10, left: $(window).width() - 10 }, "right bottom");
+ }, {
+ top: 13,
+ left: 12
+ }, "with offset" );
+});
+
+test( "collision: fit, collision", function() {
+ expect( 2 + (scrollTopSupport() ? 1 : 0) );
collisionTest2({
- collision: "fit",
- at: "left+2 top+3"
- }, { top: 0, left: 0 }, "left top, positive offset" );
+ collision: "fit"
+ }, {
+ top: 0,
+ left: 0
+ }, "no offset" );
collisionTest2({
collision: "fit",
- at: "left-2 top-3"
- }, { top: 0, left: 0 }, "left top, negative offset" );
-});
+ at: "left+2 top+3"
+ }, {
+ top: 0,
+ left: 0
+ }, "with offset" );
-test( "collision: fit, window scrolled", function() {
if ( scrollTopSupport() ) {
- var win = $( window );
win.scrollTop( 300 ).scrollLeft( 200 );
-
collisionTest({
- collision: "fit",
- at: "left-100 top-100"
- }, { top: 300, left: 200 }, "top left" );
- collisionTest2({
- collision: "fit",
- at: "right+100 bottom+100"
- }, { top: 300 + win.height() - 10, left: 200 + win.width() - 10 }, "right bottom" );
+ collision: "fit"
+ }, {
+ top: 300,
+ left: 200
+ }, "window scrolled" );
win.scrollTop( 0 ).scrollLeft( 0 );
}
});
-test( "collision: flip, no offset", function() {
- collisionTest({
- collision: "flip"
- }, { top: $( window ).height(), left: $( window ).width() }, "left top" );
+test( "collision: flip, no collision", function() {
+ expect( 2 );
- collisionTest2({
+ collisionTest({
collision: "flip"
- }, { top: -10, left: -10 }, "right bottom" );
-});
+ }, {
+ top: 10,
+ left: 10
+ }, "no offset" );
-test( "collision: flip, with offset", function() {
collisionTest({
collision: "flip",
at: "right+2 bottom+3"
- }, { top: $( window ).height() + 3, left: $( window ).width() + 2 }, "left top, with offset added" );
+ }, {
+ top: 13,
+ left: 12
+ }, "with offset" );
+});
+
+test( "collision: flip, collision", function() {
+ expect( 2 );
collisionTest2({
- collision: "flip",
- at: "left+2 top+3"
- }, { top: -7, left: -8 }, "bottom, positive offset" );
+ collision: "flip"
+ }, {
+ top: 10,
+ left: 10
+ }, "no offset" );
collisionTest2({
collision: "flip",
- at: "left-2 top-3"
- }, { top: -13, left: -12 }, "right bottom, negative offset" );
+ at: "left+2 top+3"
+ }, {
+ top: 7,
+ left: 8
+ }, "with offset" );
});
-test( "collision: none, no offset", function() {
+test( "collision: flipfit, no collision", function() {
+ expect( 2 );
+
collisionTest({
- collision: "none"
- }, { top: $( window ).height(), left: $( window ).width() }, "left top" );
+ collision: "flipfit"
+ }, {
+ top: 10,
+ left: 10
+ }, "no offset" );
+
+ collisionTest({
+ collision: "flipfit",
+ at: "right+2 bottom+3"
+ }, {
+ top: 13,
+ left: 12
+ }, "with offset" );
+});
+
+test( "collision: flipfit, collision", function() {
+ expect( 2 );
collisionTest2({
- collision: "none"
- }, { top: -10, left: -10 }, "moved to the right bottom" );
+ collision: "flipfit"
+ }, {
+ top: 10,
+ left: 10
+ }, "no offset" );
+
+ collisionTest2({
+ collision: "flipfit",
+ at: "left+2 top+3"
+ }, {
+ top: 7,
+ left: 8
+ }, "with offset" );
});
-test( "collision: none, with offset", function() {
+test( "collision: none, no collision", function() {
+ expect( 2 );
+
+ collisionTest({
+ collision: "none"
+ }, {
+ top: 10,
+ left: 10
+ }, "no offset" );
+
collisionTest({
collision: "none",
at: "right+2 bottom+3"
- }, { top: $( window ).height() + 3, left: $( window ).width() + 2 }, "right bottom, with offset added" );
+ }, {
+ top: 13,
+ left: 12
+ }, "with offset" );
+});
+
+test( "collision: none, collision", function() {
+ expect( 2 );
collisionTest2({
- collision: "none",
- at: "left+2 top+3"
- }, { top: -7, left: -8 }, "left top, positive offset" );
+ collision: "none"
+ }, {
+ top: -6,
+ left: -6
+ }, "no offset" );
collisionTest2({
collision: "none",
- at: "left-2 top-3"
- }, { top: -13, left: -12 }, "left top, negative offset" );
+ at: "left+2 top+3"
+ }, {
+ top: -3,
+ left: -4
+ }, "with offset" );
});
test( "collision: fit, with margin", function() {
- $( "#elx" ).css( "margin", 10 );
-
- collisionTest({
- collision: "fit"
- }, { top: $( window ).height() - 20, left: $( window ).width() - 20 }, "right bottom" );
-
- collisionTest2({
- collision: "fit"
- }, { top: 10, left: 10 }, "left top" );
+ expect( 2 );
$( "#elx" ).css({
- "margin-left": 5,
- "margin-top": 5
+ marginTop: 6,
+ marginLeft: 4
});
collisionTest({
collision: "fit"
- }, { top: $( window ).height() - 20, left: $( window ).width() - 20 }, "right bottom" );
+ }, {
+ top: 10,
+ left: 10
+ }, "right bottom" );
collisionTest2({
collision: "fit"
- }, { top: 5, left: 5 }, "left top" );
+ }, {
+ top: 6,
+ left: 4
+ }, "left top" );
+});
+
+test( "collision: flip, with margin", function() {
+ expect( 3 );
$( "#elx" ).css({
- "margin-right": 15,
- "margin-bottom": 15
+ marginTop: 6,
+ marginLeft: 4
});
collisionTest({
- collision: "fit"
- }, { top: $( window ).height() - 25, left: $( window ).width() - 25 }, "right bottom" );
+ collision: "flip"
+ }, {
+ top: 10,
+ left: 10
+ }, "left top" );
collisionTest2({
- collision: "fit"
- }, { top: 5, left: 5 }, "left top" );
-});
-
-test( "collision: flip, with margin", function() {
- $( "#elx" ).css( "margin", 10 );
-
- collisionTest({
- collision: "flip",
- at: "left top"
- }, { top: 0, left: 0 }, "left top" );
+ collision: "flip"
+ }, {
+ top: 10,
+ left: 10
+ }, "right bottom" );
collisionTest2({
collision: "flip",
- at: "right bottom"
- }, { top: $( window ).height() - 10, left: $( window ).width() - 10 }, "right bottom" );
+ my: "left top"
+ }, {
+ top: 0,
+ left: 4
+ }, "right bottom" );
});
-test( "addClass: flipped left", function() {
- var elem = $( "#elx" ).position( {
- my: "left center",
- of: window,
- collision: "flip",
- at: "right center"
- });
-
- deepEqual( elem.hasClass( 'ui-flipped-left' ), false, 'Has ui-flipped-left class' );
+test( "within", function() {
+ expect( 6 );
- elem.position( {
- my: "right center",
- of: window,
- collision: "flip",
- at: "left center"
- })
+ collisionTest({
+ within: "#within",
+ collision: "fit"
+ }, {
+ top: 4,
+ left: 2
+ }, "fit - right bottom" );
- deepEqual( elem.hasClass( 'ui-flipped-left' ), false, 'Removed ui-flipped-left class' );
-});
+ collisionTest2({
+ within: "#within",
+ collision: "fit"
+ }, {
+ top: 2,
+ left: 0
+ }, "fit - left top" );
-test( "addClass: flipped top", function() {
- var elem = $( "#elx" ).position( {
- my: "left top",
- of: window,
- collision: "flip",
- at: "right bottom"
- });
+ collisionTest({
+ within: "#within",
+ collision: "flip"
+ }, {
+ top: 10,
+ left: -6
+ }, "flip - right bottom" );
- deepEqual( elem.hasClass( 'ui-flipped-top' ), false, 'Has ui-flipped-top class' );
+ collisionTest2({
+ within: "#within",
+ collision: "flip"
+ }, {
+ top: 10,
+ left: -6
+ }, "flip - left top" );
- elem.position( {
- my: "left bottom",
- of: window,
- collision: "flip",
- at: "right top"
- });
+ collisionTest({
+ within: "#within",
+ collision: "flipfit"
+ }, {
+ top: 4,
+ left: 0
+ }, "flipfit - right bottom" );
- deepEqual( elem.hasClass( 'ui-flipped-top' ), false, 'Removed ui-flipped-top class' );
+ collisionTest2({
+ within: "#within",
+ collision: "flipfit"
+ }, {
+ top: 4,
+ left: 0
+ }, "flipfit - left top" );
});
-test( "addClass: flipped right", function() {
- var elem = $( "#elx" ).position( {
- my: "right center",
- of: window,
- collision: "flip",
- at: "left center"
+test( "with scrollbars", function() {
+ expect( 4 );
+
+ $( "#scrollx" ).css({
+ width: 100,
+ height: 100,
+ left: 0,
+ top: 0
});
- deepEqual( elem.hasClass( 'ui-flipped-right' ), false, 'Has ui-flipped-right class' );
+ collisionTest({
+ of: "#scrollx",
+ collision: "fit",
+ within: "#scrollx"
+ }, {
+ top: 90,
+ left: 90
+ }, "visible" );
- elem.position( {
- my: "left center",
- of: window,
- collision: "flip",
- at: "right center"
+ $( "#scrollx" ).css({
+ overflow: "scroll"
});
- deepEqual( elem.hasClass( 'ui-flipped-right' ), false, 'Removed ui-flipped-right class' );
+ var scrollbarInfo = $.position.getScrollInfo( $.position.getWithinInfo( $( "#scrollx" ) ) );
-});
+ collisionTest({
+ of: "#scrollx",
+ collision: "fit",
+ within: "#scrollx"
+ }, {
+ top: 90 - scrollbarInfo.height,
+ left: 90 - scrollbarInfo.width
+ }, "scroll" );
-test( "addClass: flipped bottom", function() {
- var elem = $( "#elx" ).position( {
- my: "left bottom",
- of: window,
- collision: "flip",
- at: "right top"
+ $( "#scrollx" ).css({
+ overflow: "auto"
});
- deepEqual( elem.hasClass( 'ui-flipped-bottom' ), false, 'Has ui-flipped-bottom class' );
+ collisionTest({
+ of: "#scrollx",
+ collision: "fit",
+ within: "#scrollx"
+ }, {
+ top: 90,
+ left: 90
+ }, "auto, no scroll" );
- elem.position( {
- my: "left top",
- of: window,
- collision: "flip",
- at: "right bottom"
- });
+ $( "#scrollx" ).css({
+ overflow: "auto"
+ }).append( $("<div>").height(300).width(300) );
- deepEqual( elem.hasClass( 'ui-flipped-bottom' ), false, 'Removed ui-flipped-bottom class' );
+ collisionTest({
+ of: "#scrollx",
+ collision: "fit",
+ within: "#scrollx"
+ }, {
+ top: 90 - scrollbarInfo.height,
+ left: 90 - scrollbarInfo.width
+ }, "auto, with scroll" );
});
test( "fractions", function() {
+ expect( 1 );
+
$( "#fractions-element" ).position({
my: "left top",
at: "left top",
@@ -527,6 +667,8 @@ test( "fractions", function() {
});
test( "bug #5280: consistent results (avoid fractional values)", function() {
+ expect( 1 );
+
var wrapper = $( "#bug-5280" ),
elem = wrapper.children(),
offset1 = elem.position({
diff --git a/tests/unit/position/position_core_within.js b/tests/unit/position/position_core_within.js
deleted file mode 100644
index 9dc91238f..000000000
--- a/tests/unit/position/position_core_within.js
+++ /dev/null
@@ -1,545 +0,0 @@
-(function( $ ) {
-
-function scrollTopSupport() {
- $( window ).scrollTop( 1 );
- return $( window ).scrollTop() === 1;
-}
-
-module( "position - within", {
- setup: function(){
- $("#within-container").css({"width": "70px", "height": "70px", "top": "20px", "left": "20px", "position": "relative"}).show();
- }
-});
-
-var addTop = -20,
- addLeft = -20;
-
-$.fn.addOffsets = function() {
- var elOffset = this.offset(),
- offset = $("#within-container").offset();
-
- elOffset.top -= offset.top;
- elOffset.left -= offset.left;
-
- return {top: elOffset.top - offset.top, left: elOffset.left - offset.left };
-};
-
-test( "my, at, of", function() {
- var within = $("#within-container");
-
- $( "#elx" ).position({
- my: "left top",
- at: "left top",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 40, left: addLeft + 40 }, "left top, left top" );
-
- $( "#elx" ).position({
- my: "left top",
- at: "left bottom",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 60, left: addLeft + 40 }, "left top, left bottom" );
-
- $( "#elx" ).position({
- my: "left",
- at: "bottom",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 55, left: addLeft + 50 }, "left, bottom" );
-
- $( "#elx" ).position({
- my: "left foo",
- at: "bar baz",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 45, left: addLeft +50 }, "left foo, bar baz" );
-});
-
-test( "multiple elements", function() {
- var elements = $( "#el1, #el2" );
- var result = elements.position({
- my: "left top",
- at: "left bottom",
- of: "#parent",
- collision: "none",
- within: $("#within-container")
- });
-
- deepEqual( result, elements );
- var expected = { top: addTop + 10, left: addLeft + 4 };
- elements.each(function() {
- deepEqual( $( this ).addOffsets(), expected );
- });
-});
-
-test( "positions", function() {
- var definitions = [];
- var offsets = {
- left: 0,
- center: 3,
- right: 6,
- top: 0,
- bottom: 6
- };
- var start = { left: 4, top: 4 };
- $.each( [ 0, 1 ], function( my ) {
- $.each( [ "top", "center", "bottom" ], function( vindex, vertical ) {
- $.each( [ "left", "center", "right" ], function( hindex, horizontal ) {
- definitions.push({
- my: my ? horizontal + " " + vertical : "left top",
- at: !my ? horizontal + " " + vertical : "left top",
- result: {
- top: addTop + (my ? start.top - offsets[ vertical ] : start.top + offsets[ vertical ]),
- left: addLeft + (my ? start.left - offsets[ horizontal ] : start.left + offsets[ horizontal ])
- }
- });
- });
- });
- });
- var el = $( "#el1" );
- $.each( definitions, function( index, definition ) {
- el.position({
- my: definition.my,
- at: definition.at,
- of: "#parent",
- collision: "none",
- within: $("#within-container")
- });
- deepEqual( el.addOffsets(), definition.result,
- "Position via " + QUnit.jsDump.parse({ my:definition.my, at:definition.at }) );
- });
-});
-
-test( "of", function() {
- var within = $("#within-container");
-
- $( "#elx" ).position({
- my: "left top",
- at: "left top",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 40, left: addLeft + 40 }, "selector" );
-
- $( "#elx" ).position({
- my: "left top",
- at: "left bottom",
- of: $( "#parentx"),
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 60, left: addLeft + 40 }, "jQuery object" );
-
- $( "#elx" ).position({
- my: "left top",
- at: "left top",
- of: $( "#parentx" )[ 0 ],
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 40, left: addLeft + 40 }, "DOM element" );
-
- var event = $.extend( $.Event( "someEvent" ), { pageX: 200, pageY: 300 } );
- $( "#elx" ).position({
- my: "left top",
- at: "left top",
- of: event,
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).offset(), {
- top: 300,
- left: 200
- }, "event - left top, left top" );
-
- event = $.extend( $.Event( "someEvent" ), { pageX: 400, pageY: 600 } );
- $( "#elx" ).position({
- my: "left top",
- at: "right bottom",
- of: event,
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).offset(), {
- top: 600,
- left: 400
- }, "event - left top, right bottom" );
-});
-
-test( "within:offsets", function() {
- var within = $("#within-container");
-
- $( "#elx" ).position({
- my: "left top",
- at: "left+10 bottom+10",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 70, left: addLeft + 50 }, "offsets in at" );
-
- $( "#elx" ).position({
- my: "left+10 top-10",
- at: "left bottom",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 50, left: addLeft + 50 }, "offsets in my" );
-
- $( "#elx" ).position({
- my: "left top",
- at: "left+50% bottom-10%",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 58, left: addLeft + 50 }, "percentage offsets in at" );
-
- $( "#elx" ).position({
- my: "left-30% top+50%",
- at: "left bottom",
- of: "#parentx",
- collision: "none",
- within: within
- });
- deepEqual( $( "#elx" ).addOffsets(), { top: addTop + 65, left: addLeft + 37 }, "percentage offsets in my" );
-});
-
-test( "using", function() {
- expect( 6 );
-
- var within = $("#within-container");
-
- var count = 0,
- elems = $( "#el1, #el2" ),
- expectedPosition = { top: addTop + 40, left: addLeft + 40 },
- originalPosition = elems.position({
- my: "right bottom",
- at: "right bottom",
- of: "#parentx",
- collision: "none",
- within: within
- }).addOffsets();
-
- elems.position({
- my: "left top",
- at: "left top",
- of: "#parentx",
- using: function( position ) {
- position.top -= within.offset().top;
- position.left -= within.offset().left;
- deepEqual( this, elems[ count ], "correct context for call #" + count );
- deepEqual( position, expectedPosition, "correct position for call #" + count );
- count++;
- },
- within: within
- });
-
- elems.each(function() {
- deepEqual( $( this ).addOffsets(), originalPosition, "elements not moved" );
- });
-});
-
-function collisionTest( config, result, msg ) {
- var within = $("#within-container");
-
- var elem = $( "#elx" ).position( $.extend({
- my: "left top",
- at: "right bottom",
- of: "#parentx",
- within: within
- }, config ) );
-
- deepEqual( elem.addOffsets(), result, msg );
-}
-
-function collisionTest2( config, result, msg ) {
- collisionTest( $.extend({
- my: "right bottom",
- at: "left top"
- }, config ), result, msg );
-}
-
-test( "collision: fit, no offset", function() {
- var within = $("#within-container"),
- of = $("#parentx");
-
- collisionTest({
- collision: "fit"
- }, { top: addTop + of.position().top + of.height() - $.position.getScrollInfo( within ).height, left: addLeft + of.position().left + of.width() - $.position.getScrollInfo( within ).width }, "right bottom" );
-
- collisionTest2({
- collision: "fit"
- }, { top: addTop + of.position().top - 10, left: addLeft + of.position().left - 10 }, "left top" );
-});
-
-
-test( "collision: fit, with offset", function() {
- var within = $("#within-container"),
- of = $("#parentx");
-
- collisionTest({
- collision: "fit",
- at: "right+2 bottom+3"
- }, { top: addTop + of.position().top + of.height() - $.position.getScrollInfo( within ).height, left: addLeft + of.position().left + of.width() - $.position.getScrollInfo( within ).width }, "right bottom");
-
- collisionTest2({
- collision: "fit",
- at: "left+2 top+3"
- }, { top: addTop + of.position().top - 7, left: addLeft + of.position().left - 8 }, "left top, positive offset" );
-
- collisionTest2({
- collision: "fit",
- at: "left-2 top-3"
- }, { top: addTop + of.position().top - 13, left: addLeft + of.position().left - 12 }, "left top, negative offset" );
-});
-
-test( "collision: none, within scrolled", function() {
- if ( scrollTopSupport() ) {
- var within = $("#within-container").css({"width": "1000px", "height": "800px", "overflow": "auto"}),
- of = $("#parentx");
- within.scrollTop( 300 ).scrollLeft( 150 );
-
- collisionTest({
- collision: "none",
- at: "left-100 top-100"
- }, { top: of.offset().top + addTop - 100 - of.height(), left: of.offset().left + addLeft - 100 - of.width() }, "top left" );
- collisionTest2({
- collision: "none",
- at: "right+100 bottom+100"
- }, { top: of.offset().top + addTop + 100 - 10, left: of.offset().left + addLeft + 100 - 10 }, "right bottom" );
- within.scrollTop( 0 ).scrollLeft( 0 );
- }
-});
-
-test( "collision: flip, no offset", function() {
- var within = $("#within-container"),
- of = $("#parentx");
-
- collisionTest({
- collision: "flip"
- }, { top: addTop + of.position().top + of.height(), left: addLeft + of.position().left + of.width() }, "left top" );
-
- collisionTest2({
- collision: "flip"
- }, { top: addTop + of.position().top - 10, left: addTop + of.position().top - 10 }, "right bottom" );
-});
-
-test( "collision: flip, with offset", function() {
- var within = $("#within-container"),
- of = $("#parentx");
-
- collisionTest({
- collision: "flip",
- at: "right+2 bottom+3"
- }, { top: addTop + of.position().top - 13, left: addLeft + of.position().left - 12 }, "left top, with offset added" );
-
- collisionTest2({
- collision: "flip",
- at: "left+2 top+3"
- }, { top: addTop + of.position().top - 10 + 3, left: addLeft + of.position().left - 10 + 2 }, "right bottom, positive offset" );
-
- collisionTest2({
- collision: "flip",
- at: "left-2 top-3"
- }, { top: addTop + of.position().top - 13, left: addLeft + of.position().left - 12 }, "right bottom, negative offset" );
-});
-
-test( "collision: none, no offset", function() {
- var within = $("#within-container"),
- of = $("#parentx");
-
- collisionTest({
- collision: "none"
- }, { top: addTop + of.position().top + of.height(), left: addLeft + of.position().left + of.width() }, "left top" );
-
- collisionTest2({
- collision: "none"
- }, { top: addTop + of.position().top - 10, left: addLeft + of.position().left - 10 }, "right bottom" );
-});
-
-test( "collision: none, with offset", function() {
- var within = $("#within-container"),
- of = $("#parentx");
-
- collisionTest({
- collision: "none",
- at: "right+2 bottom+3"
- }, { top: addTop + of.position().top + of.height() + 3, left: addLeft + of.position().left + of.width() + 2 }, "right bottom, with offset added" );
-
- collisionTest2({
- collision: "none",
- at: "left+2 top+3"
- }, { top: addTop + of.position().top - 7, left: addTop + of.position().top - 8 }, "left top, positive offset" );
-
- collisionTest2({
- collision: "none",
- at: "left-2 top-3"
- }, { top: addTop + of.position().top - 13, left: addTop + of.position().top - 12 }, "left top, negative offset" );
-});
-
-test( "collision: fit, with margin", function() {
- var within = $("#within-container"),
- of = $("#parentx");
-
- $( "#elx" ).css( "margin", 10 );
-
- collisionTest({
- collision: "fit"
- }, { top: addTop + of.position().top + of.height() - 10 - $.position.getScrollInfo( within ).height, left: addLeft + of.position().left + of.width() - 10 - $.position.getScrollInfo( within ).width }, "right bottom" );
-
- collisionTest2({
- collision: "fit"
- }, { top: addTop + of.position().top - 10, left: addLeft + of.position().left - 10 }, "left top" );
-
- $( "#elx" ).css({
- "margin-left": 5,
- "margin-top": 5
- });
-
- collisionTest({
- collision: "fit"
- }, { top: addTop + of.position().top + of.height() - 10 - $.position.getScrollInfo( within ).height, left: addLeft + of.position().left + of.width() - 10 - $.position.getScrollInfo( within ).width }, "right bottom" );
-
- collisionTest2({
- collision: "fit"
- }, { top: addTop + of.position().top - 10, left: addLeft + of.position().left - 10 }, "left top" );
-
- $( "#elx" ).css({
- "margin-right": 15,
- "margin-bottom": 15
- });
-
- collisionTest({
- collision: "fit"
- }, { top: addTop + of.position().top + of.height() - 15 - $.position.getScrollInfo( within ).height, left: addLeft + of.position().left + of.width() - 15 - $.position.getScrollInfo( within ).width }, "right bottom" );
-
- collisionTest2({
- collision: "fit"
- }, { top: addTop + of.position().top - 10, left: addLeft + of.position().left - 10 }, "left top" );
-});
-
-test( "collision: flip, with margin", function() {
- var within = $("#within-container"),
- of = $("#parentx");
-
- $( "#elx" ).css( "margin", 10 );
-
- collisionTest({
- collision: "flip"
- }, { top: addTop + of.position().top - 10, left: addLeft + of.position().left - 10 }, "left top" );
-
- collisionTest2({
- collision: "flip"
- }, { top: addTop + of.position().top - 10, left: addLeft + of.position().left - 10 }, "right bottom" );
-
- $( "#elx" ).css( "margin", 0 );
-});
-
-test( "addClass: flipped left", function() {
- var within = $("#within-container");
-
- var elem = $( "#elx" ).position( {
- my: "left center",
- of: within[0],
- within: within,
- collision: "flip",
- at: "right center"
- });
-
- deepEqual( elem.hasClass( 'ui-flipped-left' ), false, 'Has ui-flipped-left class' );
-
- elem.position( {
- my: "right center",
- of: within[0],
- within: within,
- collision: "flip",
- at: "left center"
- })
-
- deepEqual( elem.hasClass( 'ui-flipped-left' ), false, 'Removed ui-flipped-left class' );
-});
-
-test( "addClass: flipped top", function() {
- var within = $("#within-container");
-
- var elem = $( "#elx" ).position( {
- my: "left top",
- of: within[0],
- within: within,
- collision: "flip",
- at: "right bottom"
- });
-
- deepEqual( elem.hasClass( 'ui-flipped-top' ), false, 'Has ui-flipped-top class' );
-
- elem.position( {
- my: "left bottom",
- of: within[0],
- within: within,
- collision: "flip",
- at: "right top"
- });
-
- deepEqual( elem.hasClass( 'ui-flipped-top' ), false, 'Removed ui-flipped-top class' );
-});
-
-test( "addClass: flipped right", function() {
- var within = $("#within-container");
-
- var elem = $( "#elx" ).position( {
- my: "right center",
- of: within[0],
- within: within,
- collision: "flip",
- at: "left center"
- });
-
- deepEqual( elem.hasClass( 'ui-flipped-right' ), false, 'Has ui-flipped-right class' );
-
- elem.position( {
- my: "left center",
- of: within[0],
- within: within,
- collision: "flip",
- at: "right center"
- });
-
- deepEqual( elem.hasClass( 'ui-flipped-right' ), false, 'Removed ui-flipped-right class' );
-
-});
-
-test( "addClass: flipped bottom", function() {
- var within = $("#within-container");
-
- var elem = $( "#elx" ).position( {
- my: "left bottom",
- of: window,
- collision: "flip",
- at: "right top"
- });
-
- deepEqual( elem.hasClass( 'ui-flipped-bottom' ), false, 'Has ui-flipped-bottom class' );
-
- elem.position( {
- my: "left top",
- of: window,
- collision: "flip",
- at: "right bottom"
- });
-
- deepEqual( elem.hasClass( 'ui-flipped-bottom' ), false, 'Removed ui-flipped-bottom class' );
-});
-
-}( jQuery ) );
diff --git a/tests/unit/position/position_deprecated.html b/tests/unit/position/position_deprecated.html
index ee9be189d..84aae61f8 100644
--- a/tests/unit/position/position_deprecated.html
+++ b/tests/unit/position/position_deprecated.html
@@ -5,63 +5,51 @@
<title>jQuery UI Position Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
- <script>
- loadResources({
- js: [ "ui/jquery.ui.position.js" ]
- });
- </script>
+
+
<link rel="stylesheet" href="../../../external/qunit.css">
<script src="../../../external/qunit.js"></script>
<script src="../../jquery.simulate.js"></script>
<script src="../testsuite.js"></script>
+ <script>
+ TestHelpers.loadResources({
+ js: [ "ui/jquery.ui.position.js" ]
+ });
+ </script>
<script src="position_core.js"></script>
<script src="position_deprecated.js"></script>
-
<script src="../swarminject.js"></script>
</head>
<body>
-
-<h1 id="qunit-header">jQuery UI Position Test Suite</h1>
-<h2 id="qunit-banner"></h2>
-<div id="qunit-testrunner-toolbar"></div>
-<h2 id="qunit-userAgent"></h2>
-<ol id="qunit-tests"></ol>
+<div id="qunit" style="position:relative; z-index:2;"></div>
<!--
-elements smaller than 10px have a line-height set on them to avoid a bug in IE6
+elements smaller than 20px have a line-height set on them to avoid a bug in IE6
.height() returns the greater of the height and line-height
-->
-<div id="qunit-fixture" style="top: 0; left: 0;">
+<div id="qunit-fixture" style="top: 0; left: 0; z-index:1">
<div id="el1" style="position: absolute; width: 6px; height: 6px; line-height: 6px;"></div>
<div id="el2" style="position: absolute; width: 6px; height: 6px; line-height: 6px;"></div>
<div id="parent" style="position: absolute; width: 6px; height: 6px; top: 4px; left: 4px; line-height: 6px;"></div>
-</div>
-
-<div style="position: absolute; top: 0px; left: 0px">
- <div id="elx" style="position: absolute; width: 10px; height: 10px; line-height: 10px;"></div>
- <div id="parentx" style="position: absolute; width: 20px; height: 20px; top: 40px; left: 40px;"></div>
-</div>
+ <div id="within" style="position: absolute; width: 12px; height: 12px; top: 2px; left: 0px; line-height: 12px;"></div>
-<div style="position: absolute; top: 200px; left: 100px;">
- <div id="el-offset-100-200" style="position: absolute; width: 10px; height: 10px; line-height: 10px;"></div>
- <div style="position: absolute; top: 100px; left: 50px;">
- <div id="el-two-offset-150-300" style="position: absolute; width: 10px; height: 10px; line-height: 10px;"></div>
- <div id="el-fixed" style="position: fixed; top: 200px; left: 200px;"></div>
+ <div id="scrollx" style="position: absolute; top: 0px; left: 0px">
+ <div id="elx" style="position: absolute; width: 10px; height: 10px; line-height: 10px;"></div>
+ <div id="parentx" style="position: absolute; width: 20px; height: 20px; top: 40px; left: 40px;"></div>
</div>
-</div>
-<div style="position: absolute; height: 5000px; width: 5000px;"></div>
+ <div style="position: absolute; height: 5000px; width: 5000px;"></div>
-<div id="bug-5280" style="height: 30px; width: 201px;">
- <div style="width: 50px; height: 10px;"></div>
-</div>
+ <div id="fractions-parent" style="position: absolute; left: 10.7432222px; top: 10.532325px; height: 30px; width: 201px;">
+ <div id="fractions-element"></div>
+ </div>
-<div id="fractions-parent" style="position: absolute; left: 10.7432222px; top: 10.532325px; height: 30px; width: 201px;">
- <div id="fractions-element"></div>
+ <div id="bug-5280" style="height: 30px; width: 201px;">
+ <div style="width: 50px; height: 10px;"></div>
+ </div>
</div>
</body>
diff --git a/tests/unit/progressbar/all.html b/tests/unit/progressbar/all.html
index eefb9c135..16b9e0ace 100644
--- a/tests/unit/progressbar/all.html
+++ b/tests/unit/progressbar/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/progressbar/progressbar.html b/tests/unit/progressbar/progressbar.html
index 8b55f5a89..70a4abe56 100644
--- a/tests/unit/progressbar/progressbar.html
+++ b/tests/unit/progressbar/progressbar.html
@@ -5,9 +5,12 @@
<title>jQuery UI Progressbar Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.progressbar" ],
js: [
"ui/jquery.ui.core.js",
@@ -17,13 +20,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="progressbar_common.js"></script>
<script src="progressbar_core.js"></script>
- <script src="progressbar_defaults.js"></script>
<script src="progressbar_events.js"></script>
<script src="progressbar_methods.js"></script>
<script src="progressbar_options.js"></script>
diff --git a/tests/unit/progressbar/progressbar_defaults.js b/tests/unit/progressbar/progressbar_common.js
index 3856e31a0..2f97a78bb 100644
--- a/tests/unit/progressbar/progressbar_defaults.js
+++ b/tests/unit/progressbar/progressbar_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "progressbar", {
+TestHelpers.commonWidgetTests( "progressbar", {
defaults: {
disabled: false,
value: 0,
diff --git a/tests/unit/progressbar/progressbar_events.js b/tests/unit/progressbar/progressbar_events.js
index 8d7b8868d..f3713171b 100644
--- a/tests/unit/progressbar/progressbar_events.js
+++ b/tests/unit/progressbar/progressbar_events.js
@@ -15,7 +15,7 @@ test("create", function() {
change: function() {
ok(false, 'create() has triggered change()');
}
- })
+ });
});
test("change", function() {
diff --git a/tests/unit/qunit-composite.css b/tests/unit/qunit-composite.css
new file mode 100644
index 000000000..df47362db
--- /dev/null
+++ b/tests/unit/qunit-composite.css
@@ -0,0 +1,13 @@
+iframe.qunit-subsuite{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+
+ margin: 0;
+ padding: 0;
+ border-width: 1px 0 0;
+ height: 45%;
+ width: 100%;
+
+ background: #fff;
+} \ No newline at end of file
diff --git a/tests/unit/qunit-composite.js b/tests/unit/qunit-composite.js
new file mode 100644
index 000000000..89c47eb29
--- /dev/null
+++ b/tests/unit/qunit-composite.js
@@ -0,0 +1,102 @@
+(function( QUnit ) {
+
+QUnit.extend( QUnit, {
+ testSuites: function( suites ) {
+ QUnit.begin(function() {
+ QUnit.initIframe();
+ });
+
+ for ( var i = 0; i < suites.length; i++ ) {
+ QUnit.runSuite( suites[i] );
+ }
+
+ QUnit.done(function() {
+ this.iframe.style.display = "none";
+ });
+ },
+
+ runSuite: function( suite ) {
+ asyncTest( suite, function() {
+ QUnit.iframe.setAttribute( "src", suite );
+ });
+ },
+
+ initIframe: function() {
+ var body = document.body,
+ iframe = this.iframe = document.createElement( "iframe" ),
+ iframeWin;
+
+ iframe.className = "qunit-subsuite";
+ body.appendChild( iframe );
+
+ function onIframeLoad() {
+ var module, test,
+ count = 0;
+
+
+ iframeWin.QUnit.moduleStart(function( data ) {
+ // capture module name for messages
+ module = data.name;
+ });
+
+ iframeWin.QUnit.testStart(function( data ) {
+ // capture test name for messages
+ test = data.name;
+ });
+ iframeWin.QUnit.testDone(function() {
+ test = null;
+ });
+
+ iframeWin.QUnit.log(function( data ) {
+ if (test === null) {
+ return;
+ }
+ // pass all test details through to the main page
+ var message = module + ": " + test + ": " + data.message;
+ expect( ++count );
+ QUnit.push( data.result, data.actual, data.expected, message );
+ });
+
+ iframeWin.QUnit.done(function() {
+ // start the wrapper test from the main page
+ start();
+ });
+ }
+ QUnit.addEvent( iframe, "load", onIframeLoad );
+
+ iframeWin = iframe.contentWindow;
+ }
+});
+
+QUnit.testStart(function( data ) {
+ // update the test status to show which test suite is running
+ QUnit.id( "qunit-testresult" ).innerHTML = "Running " + data.name + "...<br>&nbsp;";
+});
+
+QUnit.testDone(function() {
+ var i,
+ current = QUnit.id( this.config.current.id ),
+ children = current.children,
+ src = this.iframe.src;
+
+ // undo the auto-expansion of failed tests
+ for ( i = 0; i < children.length; i++ ) {
+ if ( children[i].nodeName === "OL" ) {
+ children[i].style.display = "none";
+ }
+ }
+
+ QUnit.addEvent(current, "dblclick", function( e ) {
+ var target = e && e.target ? e.target : window.event.srcElement;
+ if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
+ target = target.parentNode;
+ }
+ if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
+ window.location = src;
+ }
+ });
+
+ current.getElementsByTagName('a')[0].href = src;
+});
+
+}( QUnit ) );
diff --git a/tests/unit/resizable/all.html b/tests/unit/resizable/all.html
index 1c6811282..bef29ff6e 100644
--- a/tests/unit/resizable/all.html
+++ b/tests/unit/resizable/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/resizable/resizable.html b/tests/unit/resizable/resizable.html
index 4e886d2fd..558574c5f 100644
--- a/tests/unit/resizable/resizable.html
+++ b/tests/unit/resizable/resizable.html
@@ -5,9 +5,12 @@
<title>jQuery UI Resizable Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.resizable" ],
js: [
"ui/jquery.ui.core.js",
@@ -18,13 +21,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="resizable_common.js"></script>
<script src="resizable_core.js"></script>
- <script src="resizable_defaults.js"></script>
<script src="resizable_events.js"></script>
<script src="resizable_methods.js"></script>
<script src="resizable_options.js"></script>
@@ -51,7 +49,7 @@
<div id="qunit-fixture">
<div id="resizable1" style="background: green; width: 100px; height: 100px;">I'm a resizable.</div>
-<img src="images/test.jpg" id="resizable2" style="width: 100px; height: 100px;">
+<img src="images/test.jpg" id="resizable2" style="width: 100px; height: 100px;" alt="solid gray">
</div>
</body>
diff --git a/tests/unit/resizable/resizable_common.js b/tests/unit/resizable/resizable_common.js
new file mode 100644
index 000000000..617cdd2ad
--- /dev/null
+++ b/tests/unit/resizable/resizable_common.js
@@ -0,0 +1,27 @@
+TestHelpers.commonWidgetTests('resizable', {
+ defaults: {
+ alsoResize: false,
+ animate: false,
+ animateDuration: 'slow',
+ animateEasing: 'swing',
+ aspectRatio: false,
+ autoHide: false,
+ cancel: ':input,option',
+ containment: false,
+ delay: 0,
+ disabled: false,
+ distance: 1,
+ ghost: false,
+ grid: false,
+ handles: 'e,s,se',
+ helper: false,
+ maxHeight: null,
+ maxWidth: null,
+ minHeight: 10,
+ minWidth: 10,
+ zIndex: 1000,
+
+ // callbacks
+ create: null
+ }
+});
diff --git a/tests/unit/resizable/resizable_defaults.js b/tests/unit/resizable/resizable_defaults.js
deleted file mode 100644
index f69e5217c..000000000
--- a/tests/unit/resizable/resizable_defaults.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * resizable_defaults.js
- */
-
-var resizable_defaults = {
- alsoResize: false,
- animate: false,
- animateDuration: 'slow',
- animateEasing: 'swing',
- aspectRatio: false,
- autoHide: false,
- cancel: ':input,option',
- containment: false,
- delay: 0,
- disabled: false,
- distance: 1,
- ghost: false,
- grid: false,
- handles: 'e,s,se',
- helper: false,
- maxHeight: null,
- maxWidth: null,
- minHeight: 10,
- minWidth: 10,
- zIndex: 1000
-};
-
-commonWidgetTests('resizable', { defaults: resizable_defaults });
diff --git a/tests/unit/resizable/resizable_events.js b/tests/unit/resizable/resizable_events.js
index e8041f064..52d55731c 100644
--- a/tests/unit/resizable/resizable_events.js
+++ b/tests/unit/resizable/resizable_events.js
@@ -5,16 +5,4 @@
module("resizable: events");
-test("start", function() {
- ok(false, "missing test - untested code is broken code.");
-});
-
-test("resize", function() {
- ok(false, "missing test - untested code is broken code.");
-});
-
-test("stop", function() {
- ok(false, "missing test - untested code is broken code.");
-});
-
})(jQuery);
diff --git a/tests/unit/resizable/resizable_methods.js b/tests/unit/resizable/resizable_methods.js
index 03e91d440..87859acf7 100644
--- a/tests/unit/resizable/resizable_methods.js
+++ b/tests/unit/resizable/resizable_methods.js
@@ -5,60 +5,5 @@
module("resizable: methods");
-test("init", function() {
- expect(6);
-
- $("<div></div>").appendTo('body').resizable().remove();
- ok(true, '.resizable() called on element');
-
- $([]).resizable().remove();
- ok(true, '.resizable() called on empty collection');
-
- $('<div></div>').resizable().remove();
- ok(true, '.resizable() called on disconnected DOMElement');
-
- $('<div></div>').resizable().resizable("foo").remove();
- ok(true, 'arbitrary method called after init');
-
- el = $('<div></div>').resizable()
- var foo = el.resizable("option", "foo");
- el.remove();
- ok(true, 'arbitrary option getter after init');
-
- $('<div></div>').resizable().resizable("option", "foo", "bar").remove();
- ok(true, 'arbitrary option setter after init');
-});
-
-test("destroy", function() {
- $("<div></div>").appendTo('body').resizable().resizable("destroy").remove();
- ok(true, '.resizable("destroy") called on element');
-
- $([]).resizable().resizable("destroy").remove();
- ok(true, '.resizable("destroy") called on empty collection');
-
- $('<div></div>').resizable().resizable("destroy").remove();
- ok(true, '.resizable("destroy") called on disconnected DOMElement');
-
- $('<div></div>').resizable().resizable("destroy").resizable("foo").remove();
- ok(true, 'arbitrary method called after destroy');
-
- var expected = $('<div></div>').resizable(),
- actual = expected.resizable('destroy');
- equal(actual, expected, 'destroy is chainable');
-});
-
-test("enable", function() {
- var expected = $('<div></div>').resizable(),
- actual = expected.resizable('enable');
- equal(actual, expected, 'enable is chainable');
- ok(false, "missing test - untested code is broken code.");
-});
-
-test("disable", function() {
- var expected = $('<div></div>').resizable(),
- actual = expected.resizable('disable');
- equal(actual, expected, 'disable is chainable');
- ok(false, "missing test - untested code is broken code.");
-});
})(jQuery);
diff --git a/tests/unit/resizable/resizable_options.js b/tests/unit/resizable/resizable_options.js
index 76cca560a..e10a55a31 100644
--- a/tests/unit/resizable/resizable_options.js
+++ b/tests/unit/resizable/resizable_options.js
@@ -187,4 +187,13 @@ test("ui-resizable-nw { handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 1
equal( target.height(), 100, "compare maxHeight" );
});
+test("zIndex, applied to all handles", function() {
+ expect(8);
+
+ var target = $('<div></div>').resizable({ handles: 'all', zIndex: 100 });
+ target.children( '.ui-resizable-handle' ).each( function( index, handle ) {
+ equal( $( handle ).css( 'zIndex' ), 100, 'compare zIndex' );
+ });
+});
+
})(jQuery);
diff --git a/tests/unit/selectable/all.html b/tests/unit/selectable/all.html
index bfebf46c2..51778e771 100644
--- a/tests/unit/selectable/all.html
+++ b/tests/unit/selectable/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/selectable/selectable.html b/tests/unit/selectable/selectable.html
index 4f70e8dd4..7b0ca6ffe 100644
--- a/tests/unit/selectable/selectable.html
+++ b/tests/unit/selectable/selectable.html
@@ -5,9 +5,12 @@
<title>jQuery UI Selectable Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.selectable" ],
js: [
"ui/jquery.ui.core.js",
@@ -18,13 +21,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="selectable_common.js"></script>
<script src="selectable_core.js"></script>
- <script src="selectable_defaults.js"></script>
<script src="selectable_events.js"></script>
<script src="selectable_methods.js"></script>
<script src="selectable_options.js"></script>
diff --git a/tests/unit/selectable/selectable_common.js b/tests/unit/selectable/selectable_common.js
new file mode 100644
index 000000000..27714d0ae
--- /dev/null
+++ b/tests/unit/selectable/selectable_common.js
@@ -0,0 +1,12 @@
+TestHelpers.commonWidgetTests('selectable', {
+ defaults: {
+ appendTo: 'body',
+ autoRefresh: true,
+ cancel: ':input,option',
+ delay: 0,
+ disabled: false,
+ distance: 0,
+ filter: '*',
+ tolerance: 'touch'
+ }
+});
diff --git a/tests/unit/selectable/selectable_defaults.js b/tests/unit/selectable/selectable_defaults.js
deleted file mode 100644
index dbf799a43..000000000
--- a/tests/unit/selectable/selectable_defaults.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * selectable_defaults.js
- */
-
-var selectable_defaults = {
- appendTo: 'body',
- autoRefresh: true,
- cancel: ':input,option',
- delay: 0,
- disabled: false,
- distance: 0,
- filter: '*',
- tolerance: 'touch'
-};
-
-commonWidgetTests('selectable', { defaults: selectable_defaults });
diff --git a/tests/unit/selectable/selectable_methods.js b/tests/unit/selectable/selectable_methods.js
index 32dfe00ed..dbc88f269 100644
--- a/tests/unit/selectable/selectable_methods.js
+++ b/tests/unit/selectable/selectable_methods.js
@@ -20,7 +20,7 @@ test("init", function() {
$("<div></div>").selectable().selectable("foo").remove();
ok(true, 'arbitrary method called after init');
- el = $("<div></div>").selectable()
+ el = $("<div></div>").selectable();
var foo = el.selectable("option", "foo");
el.remove();
ok(true, 'arbitrary option getter after init');
@@ -49,7 +49,8 @@ test("destroy", function() {
test("enable", function() {
expect(3);
- var fired = false;
+ var expected, actual,
+ fired = false;
el = $("#selectable1");
el.selectable({
@@ -63,14 +64,15 @@ test("enable", function() {
equal(fired, true, "start fired");
el.selectable("destroy");
- var expected = $('<div></div>').selectable(),
- actual = expected.selectable('enable');
+ expected = $('<div></div>').selectable();
+ actual = expected.selectable('enable');
equal(actual, expected, 'enable is chainable');
});
test("disable", function() {
expect(3);
- var fired = false;
+ var expected, actual,
+ fired = false;
el = $("#selectable1");
el.selectable({
@@ -85,8 +87,8 @@ test("disable", function() {
equal(fired, false, "start fired");
el.selectable("destroy");
- var expected = $('<div></div>').selectable(),
- actual = expected.selectable('disable');
+ expected = $('<div></div>').selectable();
+ actual = expected.selectable('disable');
equal(actual, expected, 'disable is chainable');
});
diff --git a/tests/unit/selectable/selectable_options.js b/tests/unit/selectable/selectable_options.js
index 2bc44e6e0..be9fdf5fe 100644
--- a/tests/unit/selectable/selectable_options.js
+++ b/tests/unit/selectable/selectable_options.js
@@ -8,7 +8,7 @@ module("selectable: options");
test("autoRefresh", function() {
expect(3);
el = $("#selectable1");
- var actual, sel = $("*", el), selected = function() { actual += 1 };
+ var actual, sel = $("*", el), selected = function() { actual += 1; };
actual = 0;
el = $("#selectable1").selectable({ autoRefresh: false, selected: selected });
@@ -33,12 +33,12 @@ test("autoRefresh", function() {
test("filter", function() {
expect(2);
el = $("#selectable1");
- var actual, sel = $("*", el), selected = function() { actual += 1 };
+ var actual, sel = $("*", el), selected = function() { actual += 1; };
actual = 0;
el = $("#selectable1").selectable({ filter: '.special', selected: selected });
drag(1000, 1000);
- ok(sel.length != 1, "this test assumes more than 1 selectee");
+ ok(sel.length !== 1, "this test assumes more than 1 selectee");
equal(actual, 1);
el.selectable("destroy");
});
diff --git a/tests/unit/slider/all.html b/tests/unit/slider/all.html
index 5aac26ced..bfadc0380 100644
--- a/tests/unit/slider/all.html
+++ b/tests/unit/slider/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/slider/slider.html b/tests/unit/slider/slider.html
index 60d124b7a..3aec78b4b 100644
--- a/tests/unit/slider/slider.html
+++ b/tests/unit/slider/slider.html
@@ -5,9 +5,12 @@
<title>jQuery UI Slider Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.slider" ],
js: [
"ui/jquery.ui.core.js",
@@ -18,13 +21,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="slider_common.js"></script>
<script src="slider_core.js"></script>
- <script src="slider_defaults.js"></script>
<script src="slider_events.js"></script>
<script src="slider_methods.js"></script>
<script src="slider_options.js"></script>
diff --git a/tests/unit/slider/slider_defaults.js b/tests/unit/slider/slider_common.js
index 8049fe969..8a0b347f3 100644
--- a/tests/unit/slider/slider_defaults.js
+++ b/tests/unit/slider/slider_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "slider", {
+TestHelpers.commonWidgetTests( "slider", {
defaults: {
animate: false,
cancel: ':input,option',
diff --git a/tests/unit/slider/slider_methods.js b/tests/unit/slider/slider_methods.js
index b46222002..79f80e868 100644
--- a/tests/unit/slider/slider_methods.js
+++ b/tests/unit/slider/slider_methods.js
@@ -17,8 +17,8 @@ test("init", function() {
$('<div></div>').slider().remove();
ok(true, '.slider() called on disconnected DOMElement');
- var el = $('<div></div>').slider();
- var foo = el.slider("option", "foo");
+ var el = $('<div></div>').slider(),
+ foo = el.slider("option", "foo");
el.remove();
ok(true, 'arbitrary option getter after init');
@@ -42,11 +42,12 @@ test("destroy", function() {
});
test("enable", function() {
- var expected = $('<div></div>').slider(),
+ var el,
+ expected = $('<div></div>').slider(),
actual = expected.slider('enable');
equal(actual, expected, 'enable is chainable');
- var el = $('<div></div>').slider({ disabled: true });
+ el = $('<div></div>').slider({ disabled: true });
ok(el.hasClass('ui-disabled'), 'slider has ui-disabled class before enable method call');
ok(el.hasClass('ui-slider-disabled'), 'slider has ui-slider-disabled class before enable method call');
el.slider('enable');
@@ -55,11 +56,12 @@ test("enable", function() {
});
test("disable", function() {
- var expected = $('<div></div>').slider(),
+ var el,
+ expected = $('<div></div>').slider(),
actual = expected.slider('disable');
equal(actual, expected, 'disable is chainable');
- var el = $('<div></div>').slider({ disabled: false });
+ el = $('<div></div>').slider({ disabled: false });
ok(!el.hasClass('ui-disabled'), 'slider does not have ui-disabled class before disabled method call');
ok(!el.hasClass('ui-slider-disabled'), 'slider does not have ui-slider-disabled class before disable method call');
el.slider('disable');
diff --git a/tests/unit/slider/slider_options.js b/tests/unit/slider/slider_options.js
index 7d9899284..09067a3e9 100644
--- a/tests/unit/slider/slider_options.js
+++ b/tests/unit/slider/slider_options.js
@@ -23,8 +23,8 @@ test("max", function() {
};
el.slider(options);
- ok(el.slider("option", "value") == options.value, "value option is not contained by max");
- ok(el.slider("value") == options.max, "value method is contained by max");
+ ok(el.slider("option", "value") === options.value, "value option is not contained by max");
+ ok(el.slider("value") === options.max, "value method is contained by max");
el.slider('destroy');
});
@@ -41,8 +41,8 @@ test("min", function() {
};
el.slider(options);
- ok(el.slider("option", "value") == options.value, "value option is not contained by min");
- ok(el.slider("value") == options.min, "value method is contained by min");
+ ok(el.slider("option", "value") === options.value, "value option is not contained by min");
+ ok(el.slider("value") === options.min, "value method is contained by min");
el.slider('destroy');
});
@@ -73,7 +73,7 @@ test("orientation", function() {
value: -1
};
- var percentVal = (options.value - options.min) / (options.max - options.min) * 100;
+ percentVal = (options.value - options.min) / (options.max - options.min) * 100;
el.slider(options).slider("option", "orientation", "vertical");
ok(el.is('.ui-slider-vertical'), "vertical slider has class .ui-slider-vertical");
diff --git a/tests/unit/sortable/all.html b/tests/unit/sortable/all.html
index 89e239250..f9d63d62e 100644
--- a/tests/unit/sortable/all.html
+++ b/tests/unit/sortable/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/sortable/sortable.html b/tests/unit/sortable/sortable.html
index a20eb7109..c84c62197 100644
--- a/tests/unit/sortable/sortable.html
+++ b/tests/unit/sortable/sortable.html
@@ -5,9 +5,12 @@
<title>jQuery UI Sortable Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.sortable" ],
js: [
"ui/jquery.ui.core.js",
@@ -18,13 +21,8 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
+ <script src="sortable_common.js"></script>
<script src="sortable_core.js"></script>
- <script src="sortable_defaults.js"></script>
<script src="sortable_events.js"></script>
<script src="sortable_methods.js"></script>
<script src="sortable_options.js"></script>
diff --git a/tests/unit/sortable/sortable_common.js b/tests/unit/sortable/sortable_common.js
new file mode 100644
index 000000000..b5fc05a5d
--- /dev/null
+++ b/tests/unit/sortable/sortable_common.js
@@ -0,0 +1,30 @@
+TestHelpers.commonWidgetTests( "sortable", {
+ defaults: {
+ appendTo: "parent",
+ axis: false,
+ cancel: ":input,option",
+ connectWith: false,
+ containment: false,
+ cursor: "auto",
+ cursorAt: false,
+ delay: 0,
+ disabled: false,
+ distance: 1,
+ dropOnEmpty: true,
+ forcePlaceholderSize: false,
+ forceHelperSize: false,
+ grid: false,
+ handle: false,
+ helper: "original",
+ items: "> *",
+ opacity: false,
+ placeholder: false,
+ revert: false,
+ scroll: true,
+ scrollSensitivity: 20,
+ scrollSpeed: 20,
+ scope: "default",
+ tolerance: "intersect",
+ zIndex: 1000
+ }
+});
diff --git a/tests/unit/sortable/sortable_defaults.js b/tests/unit/sortable/sortable_defaults.js
deleted file mode 100644
index 7681addad..000000000
--- a/tests/unit/sortable/sortable_defaults.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * sortable_defaults.js
- */
-
-var sortable_defaults = {
- appendTo: "parent",
- axis: false,
- cancel: ":input,option",
- connectWith: false,
- containment: false,
- cursor: 'auto',
- cursorAt: false,
- delay: 0,
- disabled: false,
- distance: 1,
- dropOnEmpty: true,
- forcePlaceholderSize: false,
- forceHelperSize: false,
- grid: false,
- handle: false,
- helper: "original",
- items: "> *",
- opacity: false,
- placeholder: false,
- revert: false,
- scroll: true,
- scrollSensitivity: 20,
- scrollSpeed: 20,
- scope: "default",
- tolerance: "intersect",
- zIndex: 1000
-};
-
-commonWidgetTests('sortable', { defaults: sortable_defaults });
diff --git a/tests/unit/sortable/sortable_events.js b/tests/unit/sortable/sortable_events.js
index cb4ff4ff3..6ed54e1b6 100644
--- a/tests/unit/sortable/sortable_events.js
+++ b/tests/unit/sortable/sortable_events.js
@@ -6,13 +6,13 @@
module("sortable: events");
test("start", function() {
-
+
var hash;
$("#sortable")
.sortable({ start: function(e, ui) { hash = ui; } })
.find('li:eq(0)').simulate("drag", { dx: 0, dy: 10 });
-
- ok(hash, 'start event triggered');
+
+ ok(hash, 'start event triggered');
ok(hash.helper, 'UI hash includes: helper');
ok(hash.placeholder, 'UI hash includes: placeholder');
ok(hash.position && (hash.position.top && hash.position.left), 'UI hash includes: position');
@@ -20,104 +20,104 @@ test("start", function() {
ok(hash.item, 'UI hash includes: item');
ok(!hash.sender, 'UI hash does not include: sender');
-
+
});
test("sort", function() {
-
+
var hash;
$("#sortable")
.sortable({ sort: function(e, ui) { hash = ui; } })
.find('li:eq(0)').simulate("drag", { dx: 0, dy: 10 });
-
- ok(hash, 'sort event triggered');
+
+ ok(hash, 'sort event triggered');
ok(hash.helper, 'UI hash includes: helper');
ok(hash.placeholder, 'UI hash includes: placeholder');
ok(hash.position && (hash.position.top && hash.position.left), 'UI hash includes: position');
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
ok(hash.item, 'UI hash includes: item');
ok(!hash.sender, 'UI hash does not include: sender');
-
+
});
test("change", function() {
-
+
var hash;
$("#sortable")
.sortable({ change: function(e, ui) { hash = ui; } })
.find('li:eq(0)').simulate("drag", { dx: 1, dy: 1 });
-
+
ok(!hash, '1px drag, change event should not be triggered');
-
+
$("#sortable")
.sortable({ change: function(e, ui) { hash = ui; } })
- .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });
-
- ok(hash, 'change event triggered');
+ .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });
+
+ ok(hash, 'change event triggered');
ok(hash.helper, 'UI hash includes: helper');
ok(hash.placeholder, 'UI hash includes: placeholder');
ok(hash.position && (hash.position.top && hash.position.left), 'UI hash includes: position');
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
ok(hash.item, 'UI hash includes: item');
ok(!hash.sender, 'UI hash does not include: sender');
-
+
});
test("beforeStop", function() {
-
+
var hash;
$("#sortable")
.sortable({ beforeStop: function(e, ui) { hash = ui; } })
- .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });
-
- ok(hash, 'beforeStop event triggered');
+ .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });
+
+ ok(hash, 'beforeStop event triggered');
ok(hash.helper, 'UI hash includes: helper');
ok(hash.placeholder, 'UI hash includes: placeholder');
ok(hash.position && (hash.position.top && hash.position.left), 'UI hash includes: position');
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
ok(hash.item, 'UI hash includes: item');
ok(!hash.sender, 'UI hash does not include: sender');
-
+
});
test("stop", function() {
-
+
var hash;
$("#sortable")
.sortable({ stop: function(e, ui) { hash = ui; } })
- .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });
-
- ok(hash, 'stop event triggered');
+ .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });
+
+ ok(hash, 'stop event triggered');
ok(!hash.helper, 'UI should not include: helper');
ok(hash.placeholder, 'UI hash includes: placeholder');
ok(hash.position && (hash.position.top && hash.position.left), 'UI hash includes: position');
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
ok(hash.item, 'UI hash includes: item');
ok(!hash.sender, 'UI hash does not include: sender');
-
+
});
test("update", function() {
-
+
var hash;
$("#sortable")
.sortable({ update: function(e, ui) { hash = ui; } })
.find('li:eq(0)').simulate("drag", { dx: 1, dy: 1 });
-
+
ok(!hash, '1px drag, update event should not be triggered');
-
+
$("#sortable")
.sortable({ update: function(e, ui) { hash = ui; } })
- .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });
-
- ok(hash, 'update event triggered');
+ .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });
+
+ ok(hash, 'update event triggered');
ok(!hash.helper, 'UI hash should not include: helper');
ok(hash.placeholder, 'UI hash includes: placeholder');
ok(hash.position && (hash.position.top && hash.position.left), 'UI hash includes: position');
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
ok(hash.item, 'UI hash includes: item');
ok(!hash.sender, 'UI hash does not include: sender');
-
+
});
test("receive", function() {
diff --git a/tests/unit/sortable/sortable_methods.js b/tests/unit/sortable/sortable_methods.js
index 2446d2755..c2a0b9548 100644
--- a/tests/unit/sortable/sortable_methods.js
+++ b/tests/unit/sortable/sortable_methods.js
@@ -5,7 +5,7 @@
var el, offsetBefore, offsetAfter, dragged;
-var drag = function(handle, dx, dy) {
+function drag(handle, dx, dy) {
offsetBefore = $(handle).offset();
$(handle).simulate("drag", {
dx: dx || 0,
@@ -15,7 +15,7 @@ var drag = function(handle, dx, dy) {
offsetAfter = $(handle).offset();
}
-var sort = function(handle, dx, dy, index, msg) {
+function sort(handle, dx, dy, index, msg) {
drag(handle, dx, dy);
equal($(handle).parent().children().index(handle), index, msg);
}
diff --git a/tests/unit/sortable/sortable_tickets.js b/tests/unit/sortable/sortable_tickets.js
index 6ee503a58..22ad61baf 100644
--- a/tests/unit/sortable/sortable_tickets.js
+++ b/tests/unit/sortable/sortable_tickets.js
@@ -5,7 +5,7 @@
var el, offsetBefore, offsetAfter, dragged;
-var drag = function(handle, dx, dy) {
+function drag(handle, dx, dy) {
offsetBefore = $(handle).offset();
$(handle).simulate("drag", {
dx: dx || 0,
@@ -15,7 +15,7 @@ var drag = function(handle, dx, dy) {
offsetAfter = $(handle).offset();
}
-var sort = function(handle, dx, dy, index, msg) {
+function sort(handle, dx, dy, index, msg) {
drag(handle, dx, dy);
equal($(handle).parent().children().index(handle), index, msg);
}
diff --git a/tests/unit/spinner/all.html b/tests/unit/spinner/all.html
index e41e088c4..72a2dd77a 100644
--- a/tests/unit/spinner/all.html
+++ b/tests/unit/spinner/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/spinner/spinner.html b/tests/unit/spinner/spinner.html
index 0c01a5f48..b7f4a532a 100644
--- a/tests/unit/spinner/spinner.html
+++ b/tests/unit/spinner/spinner.html
@@ -3,14 +3,17 @@
<head>
<meta charset="utf-8">
<title>jQuery UI Spinner Test Suite</title>
-
+
<script src="../../jquery.js"></script>
<script src="../../../external/jquery.mousewheel-3.0.4.js"></script>
<script src="../../../external/globalize.js"></script>
<script src="../../../external/globalize.culture.ja-JP.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.button", "ui.spinner" ],
js: [
"ui/jquery.ui.core.js",
@@ -21,14 +24,9 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
<script src="spinner_test_helpers.js"></script>
+ <script src="spinner_common.js"></script>
<script src="spinner_core.js"></script>
- <script src="spinner_defaults.js"></script>
<script src="spinner_events.js"></script>
<script src="spinner_methods.js"></script>
<script src="spinner_options.js"></script>
diff --git a/tests/unit/spinner/spinner_defaults.js b/tests/unit/spinner/spinner_common.js
index 0a4e7c236..4f05b1e63 100644
--- a/tests/unit/spinner/spinner_defaults.js
+++ b/tests/unit/spinner/spinner_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "spinner", {
+TestHelpers.commonWidgetTests( "spinner", {
defaults: {
culture: null,
disabled: false,
diff --git a/tests/unit/spinner/spinner_core.js b/tests/unit/spinner/spinner_core.js
index e12d1af2f..a1179bb35 100644
--- a/tests/unit/spinner/spinner_core.js
+++ b/tests/unit/spinner/spinner_core.js
@@ -1,5 +1,7 @@
(function( $ ) {
+var simulateKeyDownUp = TestHelpers.spinner.simulateKeyDownUp;
+
module( "spinner: core" );
test( "keydown UP on input, increases value not greater than max", function() {
@@ -9,15 +11,15 @@ test( "keydown UP on input, increases value not greater than max", function() {
step: 10
});
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
equal( element.val(), 80 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
equal( element.val(), 90 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
equal( element.val(), 100 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
equal( element.val(), 100 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
equal( element.val(), 100 );
});
@@ -28,15 +30,15 @@ test( "keydown DOWN on input, decreases value not less than min", function() {
step: 10
});
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
equal( element.val(), 40 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
equal( element.val(), 30 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
equal( element.val(), 20 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
equal( element.val(), 20 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
equal( element.val(), 20 );
});
@@ -47,15 +49,15 @@ test( "keydown PAGE_UP on input, increases value not greater than max", function
page: 10
});
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
equal( element.val(), 80 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
equal( element.val(), 90 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
equal( element.val(), 100 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
equal( element.val(), 100 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
equal( element.val(), 100 );
});
@@ -66,15 +68,15 @@ test( "keydown PAGE_DOWN on input, decreases value not less than min", function(
page: 10
});
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
equal( element.val(), 40 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
equal( element.val(), 30 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
equal( element.val(), 20 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
equal( element.val(), 20 );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
equal( element.val(), 20 );
});
@@ -99,7 +101,7 @@ test( "mouse click on up button, increases value not greater than max", function
min: 0
}),
button = element.spinner( "widget" ).find( ".ui-spinner-down" );
-
+
button.trigger( "mousedown" ).trigger( "mouseup" );
equal( element.val(), 1 );
button.trigger( "mousedown" ).trigger( "mouseup" );
@@ -189,8 +191,8 @@ test( "don't clear invalid value on blur", function() {
test( "precision", function() {
expect( 2 );
- var element = $( "#spin" ).val( .05 ).spinner({
- step: .0001
+ var element = $( "#spin" ).val( 0.05 ).spinner({
+ step: 0.0001
});
element.spinner( "stepUp" );
equal( element.val(), "0.0501", "precision from step" );
diff --git a/tests/unit/spinner/spinner_events.js b/tests/unit/spinner/spinner_events.js
index e43ba3365..72b185528 100644
--- a/tests/unit/spinner/spinner_events.js
+++ b/tests/unit/spinner/spinner_events.js
@@ -1,5 +1,7 @@
(function( $ ) {
+var simulateKeyDownUp = TestHelpers.spinner.simulateKeyDownUp;
+
module( "spinner: events" );
test( "start", function() {
@@ -13,14 +15,14 @@ test( "start", function() {
}
shouldStart( true, "key UP" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
shouldStart( true, "key DOWN" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
shouldStart( true, "key PAGE_UP" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
shouldStart( true, "key PAGE_DOWN" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
shouldStart( true, "button up" );
element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();
@@ -52,14 +54,14 @@ test( "spin", function() {
}
shouldSpin( true, "key UP" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
shouldSpin( true, "key DOWN" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
shouldSpin( true, "key PAGE_UP" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
shouldSpin( true, "key PAGE_DOWN" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
shouldSpin( true, "button up" );
element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();
@@ -91,14 +93,14 @@ test( "stop", function() {
}
shouldStop( true, "key UP" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
shouldStop( true, "key DOWN" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
shouldStop( true, "key PAGE_UP" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
shouldStop( true, "key PAGE_DOWN" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
shouldStop( true, "button up" );
element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();
@@ -119,7 +121,7 @@ test( "stop", function() {
element.spinner( "value", 999 );
});
-test( "change", function() {
+asyncTest( "change", function() {
expect( 14 );
var element = $( "#spin" ).spinner();
@@ -131,91 +133,97 @@ test( "change", function() {
element.focus();
shouldChange( false, "key UP, before blur" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
shouldChange( true, "blur after key UP" );
element.blur();
element.focus();
shouldChange( false, "key DOWN, before blur" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
shouldChange( true, "blur after key DOWN" );
element.blur();
element.focus();
shouldChange( false, "key PAGE_UP, before blur" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
shouldChange( true, "blur after key PAGE_UP" );
element.blur();
element.focus();
shouldChange( false, "key PAGE_DOWN, before blur" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
shouldChange( true, "blur after key PAGE_DOWN" );
element.blur();
shouldChange( false, "many keys, before blur" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
shouldChange( true, "blur after many keys" );
element.blur();
shouldChange( false, "many keys, same final value, before blur" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
shouldChange( false, "blur after many keys, same final value" );
shouldChange( false, "button up, before blur" );
element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();
shouldChange( true, "blur after button up" );
- element.blur();
-
- shouldChange( false, "button down, before blur" );
- element.spinner( "widget" ).find( ".ui-spinner-down" ).mousedown().mouseup();
- shouldChange( true, "blur after button down" );
- element.blur();
-
- shouldChange( false, "many buttons, same final value, before blur" );
- element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();
- element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();
- element.spinner( "widget" ).find( ".ui-spinner-down" ).mousedown().mouseup();
- element.spinner( "widget" ).find( ".ui-spinner-down" ).mousedown().mouseup();
- shouldChange( false, "blur after many buttons, same final value" );
- element.blur();
-
- shouldChange( true, "stepUp" );
- element.spinner( "stepUp" );
-
- shouldChange( true, "stepDown" );
- element.spinner( "stepDown" );
-
- shouldChange( true, "pageUp" );
- element.spinner( "pageUp" );
-
- shouldChange( true, "pageDown" );
- element.spinner( "pageDown" );
-
- shouldChange( true, "value" );
- element.spinner( "value", 999 );
-
- shouldChange( false, "value, same value" );
- element.spinner( "value", 999 );
-
- shouldChange( true, "max, value changed" );
- element.spinner( "option", "max", 900 );
-
- shouldChange( false, "max, value not changed" );
- element.spinner( "option", "max", 1000 );
-
- shouldChange( true, "min, value changed" );
- element.spinner( "option", "min", 950 );
-
- shouldChange( false, "min, value not changed" );
- element.spinner( "option", "min", 200 );
+ setTimeout(function() {
+ element.blur();
+
+ shouldChange( false, "button down, before blur" );
+ element.spinner( "widget" ).find( ".ui-spinner-down" ).mousedown().mouseup();
+ shouldChange( true, "blur after button down" );
+ setTimeout(function() {
+ element.blur();
+
+ shouldChange( false, "many buttons, same final value, before blur" );
+ element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();
+ element.spinner( "widget" ).find( ".ui-spinner-up" ).mousedown().mouseup();
+ element.spinner( "widget" ).find( ".ui-spinner-down" ).mousedown().mouseup();
+ element.spinner( "widget" ).find( ".ui-spinner-down" ).mousedown().mouseup();
+ shouldChange( false, "blur after many buttons, same final value" );
+ element.blur();
+ setTimeout(function() {
+ shouldChange( true, "stepUp" );
+ element.spinner( "stepUp" );
+
+ shouldChange( true, "stepDown" );
+ element.spinner( "stepDown" );
+
+ shouldChange( true, "pageUp" );
+ element.spinner( "pageUp" );
+
+ shouldChange( true, "pageDown" );
+ element.spinner( "pageDown" );
+
+ shouldChange( true, "value" );
+ element.spinner( "value", 999 );
+
+ shouldChange( false, "value, same value" );
+ element.spinner( "value", 999 );
+
+ shouldChange( true, "max, value changed" );
+ element.spinner( "option", "max", 900 );
+
+ shouldChange( false, "max, value not changed" );
+ element.spinner( "option", "max", 1000 );
+
+ shouldChange( true, "min, value changed" );
+ element.spinner( "option", "min", 950 );
+
+ shouldChange( false, "min, value not changed" );
+ element.spinner( "option", "min", 200 );
+ start();
+ });
+ });
+ });
});
})( jQuery );
diff --git a/tests/unit/spinner/spinner_methods.js b/tests/unit/spinner/spinner_methods.js
index 9c82218e1..bafd949a7 100644
--- a/tests/unit/spinner/spinner_methods.js
+++ b/tests/unit/spinner/spinner_methods.js
@@ -1,5 +1,7 @@
(function( $ ) {
+var simulateKeyDownUp = TestHelpers.spinner.simulateKeyDownUp;
+
module( "spinner: methods" );
test( "destroy", function() {
@@ -21,16 +23,16 @@ test( "disable", function() {
ok( wrapper.hasClass( "ui-spinner-disabled" ), "after: wrapper has ui-spinner-disabled class" );
ok( element.is( ":disabled"), "after: input has disabled attribute" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
equal( 2, element.val(), "keyboard - value does not change on key UP" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.DOWN );
equal( 2, element.val(), "keyboard - value does not change on key DOWN" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
equal( 2, element.val(), "keyboard - value does not change on key PGUP" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
+ simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
equal( 2, element.val(), "keyboard - value does not change on key PGDN" );
wrapper.find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
@@ -54,7 +56,7 @@ test( "disable", function() {
test( "enable", function() {
expect( 5 );
- var element = $( "#spin" ).val( 1 ).spinner({ disabled: true })
+ var element = $( "#spin" ).val( 1 ).spinner({ disabled: true }),
wrapper = element.spinner( "widget" );
ok( wrapper.hasClass( "ui-spinner-disabled" ), "before: wrapper has ui-spinner-disabled class" );
@@ -65,7 +67,7 @@ test( "enable", function() {
ok( !wrapper.hasClass( ".ui-spinner-disabled" ), "after: wrapper does not have ui-spinner-disabled class" );
ok( !element.is( ":disabled" ), "after: input does not have disabled attribute" );
- spinner_simulateKeyDownUp( element, $.ui.keyCode.UP );
+ simulateKeyDownUp( element, $.ui.keyCode.UP );
equal( 2, element.val(), "keyboard - value changes on key UP" );
});
diff --git a/tests/unit/spinner/spinner_options.js b/tests/unit/spinner/spinner_options.js
index cbad3f870..e21852630 100644
--- a/tests/unit/spinner/spinner_options.js
+++ b/tests/unit/spinner/spinner_options.js
@@ -1,5 +1,7 @@
(function( $ ) {
+var simulateKeyDownUp = TestHelpers.spinner.simulateKeyDownUp;
+
module( "spinner: options" );
// culture is tested after numberFormat, since it depends on numberFormat
@@ -191,7 +193,7 @@ test( "min, string", function() {
equal( element.spinner( "option", "min" ), -100, "option converted to number" );
element.spinner( "value", -1000 );
- equal( element.val(), "($100.00)", "min constrained in value method")
+ equal( element.val(), "($100.00)", "min constrained in value method" );
});
test( "step, 2", function() {
diff --git a/tests/unit/spinner/spinner_test_helpers.js b/tests/unit/spinner/spinner_test_helpers.js
index af555dbf2..2021e8f7a 100644
--- a/tests/unit/spinner/spinner_test_helpers.js
+++ b/tests/unit/spinner/spinner_test_helpers.js
@@ -1,5 +1,8 @@
-var spinner_simulateKeyDownUp = function( element, keyCode, shift ) {
- element
- .simulate( "keydown", { keyCode: keyCode, shiftKey: shift || false } )
- .simulate( "keyup", { keyCode: keyCode, shiftKey: shift || false } );
+TestHelpers.spinner = {
+ simulateKeyDownUp: function( element, keyCode, shift ) {
+ element
+ .simulate( "keydown", { keyCode: keyCode, shiftKey: shift || false } )
+ .simulate( "keyup", { keyCode: keyCode, shiftKey: shift || false } );
+ }
};
+
diff --git a/tests/unit/subsuite.js b/tests/unit/subsuite.js
index 03e8c9706..6f966590b 100644
--- a/tests/unit/subsuite.js
+++ b/tests/unit/subsuite.js
@@ -1,12 +1,11 @@
(function() {
-var versions = [ "1.6", "1.6.1", "1.6.2", "1.6.3", "1.6.4", "1.7", "1.7.1", "1.7.2", "git" ];
-
-var additionalTests = {
- accordion: [ "accordion_deprecated.html" ],
- position: [ "position_deprecated.html" ],
- tabs: [ "tabs_deprecated.html" ]
-};
+var versions = [ "1.6", "1.6.1", "1.6.2", "1.6.3", "1.6.4", "1.7", "1.7.1", "1.7.2", "git" ],
+ additionalTests = {
+ accordion: [ "accordion_deprecated.html" ],
+ position: [ "position_deprecated.html" ],
+ tabs: [ "tabs_deprecated.html" ]
+ };
window.testAllVersions = function( widget ) {
QUnit.testSuites( $.map(
diff --git a/tests/unit/subsuiteRunner.css b/tests/unit/subsuiteRunner.css
deleted file mode 100644
index bca30a75e..000000000
--- a/tests/unit/subsuiteRunner.css
+++ /dev/null
@@ -1,8 +0,0 @@
-iframe.qunit-subsuite {
- margin: 0;
- padding: 0;
- border-width: 1px 0 0;
- height: 600px;
- width: 100%;
- background: #fff;
-} \ No newline at end of file
diff --git a/tests/unit/subsuiteRunner.js b/tests/unit/subsuiteRunner.js
deleted file mode 100644
index ddfccc7c1..000000000
--- a/tests/unit/subsuiteRunner.js
+++ /dev/null
@@ -1,82 +0,0 @@
-(function( QUnit ) {
-
-var subsuiteFrame;
-
-QUnit.extend( QUnit, {
- testSuites: function( suites ) {
- for ( var i = 0; i < suites.length; i++ ) {
- (function( suite ) {
- asyncTest( suite, function() {
- QUnit.runSuite( suite );
- });
- }( suites[i] ) );
- }
- QUnit.done = function() {
- subsuiteFrame.style.display = "none";
- };
- },
-
- testStart: function( data ) {
- // update the test status to show which test suite is running
- QUnit.id( "qunit-testresult" ).innerHTML = "Running " + data.name + "...<br>&nbsp;";
- },
-
- testDone: function() {
- var current = QUnit.id( this.config.current.id ),
- children = current.children;
-
- // undo the auto-expansion of failed tests
- for ( var i = 0; i < children.length; i++ ) {
- if ( children[i].nodeName === "OL" ) {
- children[i].style.display = "none";
- }
- }
- },
-
- runSuite: function( suite ) {
- var body = document.getElementsByTagName( "body" )[0],
- iframe = subsuiteFrame = document.createElement( "iframe" ),
- iframeWin;
-
- iframe.className = "qunit-subsuite";
- body.appendChild( iframe );
-
- function onIframeLoad() {
- var module, test,
- count = 0;
-
- QUnit.extend( iframeWin.QUnit, {
- moduleStart: function( data ) {
- // capture module name for messages
- module = data.name;
- },
-
- testStart: function( data ) {
- // capture test name for messages
- test = data.name;
- },
-
- log: function( data ) {
- // pass all test details through to the main page
- var message = module + ": " + test + ": " + data.message;
- expect( ++count );
- QUnit.push( data.result, data.actual, data.expected, message );
- },
-
- done: function() {
- // start the wrapper test from the main page
- start();
- }
- });
- }
- QUnit.addEvent( iframe, "load", onIframeLoad );
-
- iframeWin = iframe.contentWindow;
- iframe.setAttribute( "src", suite );
-
- this.runSuite = function( suite ) {
- iframe.setAttribute( "src", suite );
- };
- }
-});
-}( QUnit ) );
diff --git a/tests/unit/swarminject.js b/tests/unit/swarminject.js
index db69326ab..78d37ef46 100644
--- a/tests/unit/swarminject.js
+++ b/tests/unit/swarminject.js
@@ -5,5 +5,5 @@
if ( !url || url.indexOf("http") !== 0 ) {
return;
}
- document.write("<scr" + "ipt src='http://swarm.jquery.org/js/inject.js?" + (new Date).getTime() + "'></scr" + "ipt>");
+ document.write( "<scr" + "ipt src='http://swarm.jquery.org/js/inject.js?" + (new Date()).getTime() + "'></scr" + "ipt>" );
})();
diff --git a/tests/unit/tabs/all.html b/tests/unit/tabs/all.html
index 1da3ecad2..41bf965f2 100644
--- a/tests/unit/tabs/all.html
+++ b/tests/unit/tabs/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/tabs/tabs.html b/tests/unit/tabs/tabs.html
index fc494e013..b961c60f3 100644
--- a/tests/unit/tabs/tabs.html
+++ b/tests/unit/tabs/tabs.html
@@ -8,9 +8,12 @@
<script>
$.uiBackCompat = false;
</script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.tabs" ],
js: [
"ui/jquery.ui.core.js",
@@ -20,73 +23,13 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
- <script src="tabs_defaults.js"></script>
+ <script src="tabs_test_helpers.js"></script>
+ <script src="tabs_common.js"></script>
<script src="tabs_core.js"></script>
<script src="tabs_events.js"></script>
<script src="tabs_methods.js"></script>
<script src="tabs_options.js"></script>
- <script>
- function tabs_state( tabs ) {
- var expected = $.makeArray( arguments ).slice( 1 );
- var actual = tabs.find( ".ui-tabs-nav li" ).map(function() {
- var tab = $( this ),
- panel = $( $.ui.tabs.prototype._sanitizeSelector(
- "#" + tab.find( "a" ).attr( "aria-controls" ) ) ),
- tabIsActive = tab.hasClass( "ui-state-active" ),
- panelIsActive = panel.css( "display" ) !== "none";
-
- if ( tabIsActive && panelIsActive ) {
- return 1;
- }
- if ( !tabIsActive && !panelIsActive ) {
- return 0;
- }
- return -1; // mixed state - invalid
- }).get();
- deepEqual( actual, expected );
- }
-
- function tabs_disabled( tabs, state ) {
- var expected = $.map( new Array( tabs.find ( ".ui-tabs-nav li" ).length ), function( _, index ) {
- if ( typeof state === "boolean" ) {
- return state ? 1 : 0;
- } else {
- return $.inArray( index, state ) !== -1 ? 1 : 0;
- }
- });
-
- var internalState = tabs.tabs( "option", "disabled" );
- if ( internalState === false ) {
- internalState = [];
- }
- if ( internalState === true ) {
- internalState = $.map( new Array( tabs.find( ".ui-tabs-nav li" ).length ), function( _, index ) {
- return index;
- });
- }
-
- var actual = tabs.find( ".ui-tabs-nav li" ).map(function( index ) {
- var tab = $( this ),
- tabIsDisabled = tab.hasClass( "ui-state-disabled" );
-
- if ( tabIsDisabled && $.inArray( index, internalState ) !== -1 ) {
- return 1;
- }
- if ( !tabIsDisabled && $.inArray( index, internalState ) === -1 ) {
- return 0;
- }
- return -1; // mixed state - invalid
- }).get();
- deepEqual( tabs.tabs( "option", "disabled" ), state );
- deepEqual( actual, expected );
- }
- </script>
<script src="../swarminject.js"></script>
</head>
<body>
@@ -119,6 +62,7 @@
</ul>
<div id="colon:test"></div>
<div style="height: 300px;" id="inline-style"></div>
+ <div id="custom-id"></div>
</div>
<div id="tabs3">
diff --git a/tests/unit/tabs/tabs_defaults.js b/tests/unit/tabs/tabs_common.js
index 52b6f8a71..7ffb05da4 100644
--- a/tests/unit/tabs/tabs_defaults.js
+++ b/tests/unit/tabs/tabs_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "tabs", {
+TestHelpers.commonWidgetTests( "tabs", {
defaults: {
active: null,
collapsible: false,
diff --git a/tests/unit/tabs/tabs_defaults_deprecated.js b/tests/unit/tabs/tabs_common_deprecated.js
index 1a56297e9..fdcff21b3 100644
--- a/tests/unit/tabs/tabs_defaults_deprecated.js
+++ b/tests/unit/tabs/tabs_common_deprecated.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "tabs", {
+TestHelpers.commonWidgetTests( "tabs", {
defaults: {
active: null,
ajaxOptions: null,
diff --git a/tests/unit/tabs/tabs_core.js b/tests/unit/tabs/tabs_core.js
index 21250fb33..b9bd81987 100644
--- a/tests/unit/tabs/tabs_core.js
+++ b/tests/unit/tabs/tabs_core.js
@@ -1,5 +1,7 @@
(function( $ ) {
+var state = TestHelpers.tabs.state;
+
module( "tabs: core" );
test( "markup structure", function() {
@@ -89,7 +91,7 @@ test( "#4033 - IE expands hash to full url and misinterprets tab as ajax", funct
});
equal( element.find( ".ui-tabs-nav a" ).attr( "aria-controls" ), "tab", "aria-contorls attribute is correct" );
- tabs_state( element, 1 );
+ state( element, 1 );
});
}( jQuery ) );
diff --git a/tests/unit/tabs/tabs_deprecated.html b/tests/unit/tabs/tabs_deprecated.html
index 410aebc40..09afc91b4 100644
--- a/tests/unit/tabs/tabs_deprecated.html
+++ b/tests/unit/tabs/tabs_deprecated.html
@@ -6,9 +6,12 @@
<script src="../../jquery.js"></script>
<script src="../../../external/jquery.cookie.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.tabs" ],
js: [
"ui/jquery.ui.core.js",
@@ -18,74 +21,14 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
- <script src="tabs_defaults_deprecated.js"></script>
+ <script src="tabs_test_helpers.js"></script>
+ <script src="tabs_common_deprecated.js"></script>
<script src="tabs_core.js"></script>
<script src="tabs_events.js"></script>
<script src="tabs_methods.js"></script>
<script src="tabs_options.js"></script>
<script src="tabs_deprecated.js"></script>
- <script>
- function tabs_state( tabs ) {
- var expected = $.makeArray( arguments ).slice( 1 );
- var actual = tabs.find( ".ui-tabs-nav li" ).map(function() {
- var tab = $( this ),
- panel = $( $.ui.tabs.prototype._sanitizeSelector(
- "#" + tab.find( "a" ).attr( "aria-controls" ) ) ),
- tabIsActive = tab.hasClass( "ui-state-active" ),
- panelIsActive = panel.css( "display" ) !== "none";
-
- if ( tabIsActive && panelIsActive ) {
- return 1;
- }
- if ( !tabIsActive && !panelIsActive ) {
- return 0;
- }
- return -1; // mixed state - invalid
- }).get();
- deepEqual( actual, expected );
- }
-
- function tabs_disabled( tabs, state ) {
- var expected = $.map( new Array( tabs.find ( ".ui-tabs-nav li" ).length ), function( _, index ) {
- if ( typeof state === "boolean" ) {
- return state ? 1 : 0;
- } else {
- return $.inArray( index, state ) !== -1 ? 1 : 0;
- }
- });
-
- var internalState = tabs.tabs( "option", "disabled" );
- if ( internalState === false ) {
- internalState = [];
- }
- if ( internalState === true ) {
- internalState = $.map( new Array( tabs.find( ".ui-tabs-nav li" ).length ), function( _, index ) {
- return index;
- });
- }
-
- var actual = tabs.find( ".ui-tabs-nav li" ).map(function( index ) {
- var tab = $( this ),
- tabIsDisabled = tab.hasClass( "ui-state-disabled" );
-
- if ( tabIsDisabled && $.inArray( index, internalState ) !== -1 ) {
- return 1;
- }
- if ( !tabIsDisabled && $.inArray( index, internalState ) === -1 ) {
- return 0;
- }
- return -1; // mixed state - invalid
- }).get();
- deepEqual( tabs.tabs( "option", "disabled" ), state );
- deepEqual( actual, expected );
- }
- </script>
<script src="../swarminject.js"></script>
</head>
<body>
@@ -118,6 +61,7 @@
</ul>
<div id="colon:test"></div>
<div style="height: 300px;" id="inline-style"></div>
+ <div id="custom-id"></div>
</div>
<div id="tabs3">
diff --git a/tests/unit/tabs/tabs_deprecated.js b/tests/unit/tabs/tabs_deprecated.js
index 80bc4a326..66768b866 100644
--- a/tests/unit/tabs/tabs_deprecated.js
+++ b/tests/unit/tabs/tabs_deprecated.js
@@ -1,5 +1,7 @@
(function( $ ) {
+var state = TestHelpers.tabs.state;
+
module( "tabs (deprecated): core" );
test( "panel ids", function() {
@@ -48,17 +50,17 @@ asyncTest( "cache", function() {
cache: true
});
element.one( "tabsshow", function( event, ui ) {
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
});
element.one( "tabsload", function( event, ui ) {
ok( true, "tabsload" );
setTimeout(function() {
element.tabs( "option", "active", 0 );
- tabs_state( element, 1, 0, 0, 0, 0 );
+ state( element, 1, 0, 0, 0, 0 );
element.one( "tabsshow", function( event, ui ) {
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
});
element.one( "tabsload", function( event, ui ) {
ok( false, "should be cached" );
@@ -68,7 +70,7 @@ asyncTest( "cache", function() {
}, 1 );
});
element.tabs( "option", "active", 2 );
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
});
test( "idPrefix", function() {
@@ -89,10 +91,11 @@ test( "tabTemplate + panelTemplate", function() {
// defaults are tested in the add method test
expect( 11 );
- var element = $( "#tabs2" ).tabs({
- tabTemplate: "<li class='customTab'><a href='http://example.com/#{href}'>#{label}</a></li>",
- panelTemplate: "<div class='customPanel'></div>"
- });
+ var tab, anchor,
+ element = $( "#tabs2" ).tabs({
+ tabTemplate: "<li class='customTab'><a href='http://example.com/#{href}'>#{label}</a></li>",
+ panelTemplate: "<div class='customPanel'></div>"
+ });
element.one( "tabsadd", function( event, ui ) {
var anchor = $( ui.tab );
equal( ui.index, 5, "ui.index" );
@@ -103,8 +106,8 @@ test( "tabTemplate + panelTemplate", function() {
ok( $( ui.panel ).hasClass( "customPanel" ), "panel custom class" );
});
element.tabs( "add", "#new", "New" );
- var tab = element.find( ".ui-tabs-nav li" ).last(),
- anchor = tab.find( "a" );
+ tab = element.find( ".ui-tabs-nav li" ).last();
+ anchor = tab.find( "a" );
equal( tab.text(), "New", "label" );
ok( tab.hasClass( "customTab" ), "tab custom class" );
equal( anchor.attr( "href" ), "http://example.com/#new", "href" );
@@ -170,50 +173,50 @@ test( "selected", function() {
var element = $( "#tabs1" ).tabs();
equal( element.tabs( "option", "selected" ), 0, "should be 0 by default" );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.tabs( "destroy" );
location.hash = "#fragment-3";
element = $( "#tabs1" ).tabs();
equal( element.tabs( "option", "selected" ), 2, "should be 2 based on URL" );
- tabs_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.tabs( "destroy" );
el = $('#tabs1').tabs({
selected: -1,
collapsible: true
});
- tabs_state( element, 0, 0, 0 );
- equal( element.find( ".ui-tabs-nav .ui-state-active" ).size(), 0, "no tabs selected" );
+ state( element, 0, 0, 0 );
+ equal( element.find( ".ui-tabs-nav .ui-state-active" ).length, 0, "no tabs selected" );
strictEqual( element.tabs( "option", "selected" ), -1 );
element.tabs( "option", "collapsible", false );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
equal( element.tabs( "option", "selected" ), 0 );
element.tabs( "destroy" );
element.tabs({
selected: -1
});
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
strictEqual( element.tabs( "option", "selected" ), 0 );
element.tabs( "destroy" );
element.tabs({ selected: 2 });
equal( element.tabs( "option", "selected" ), 2 );
- tabs_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.tabs( "option", "selected", 0 );
equal( element.tabs( "option", "selected" ), 0 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.find( ".ui-tabs-nav a" ).eq( 1 ).click();
equal( element.tabs( "option", "selected" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.tabs( "option", "selected", 10 );
equal( element.tabs( "option", "selected" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
location.hash = "#";
});
@@ -236,7 +239,7 @@ asyncTest( "load", function() {
strictEqual( ui.tab, tab[ 0 ], "tab" );
strictEqual( ui.panel, panel[ 0 ], "panel" );
equal( $( ui.panel ).find( "p" ).length, 1, "panel html" );
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
tabsload1();
});
element.tabs({ active: 2 });
@@ -252,7 +255,7 @@ asyncTest( "load", function() {
strictEqual( ui.tab, tab[ 0 ], "tab" );
strictEqual( ui.panel, panel[ 0 ], "panel" );
equal( $( ui.panel ).find( "p" ).length, 1, "panel html" );
- tabs_state( element, 0, 0, 0, 1, 0 );
+ state( element, 0, 0, 0, 1, 0 );
tabsload2();
});
element.tabs( "option", "active", 3 );
@@ -269,7 +272,7 @@ asyncTest( "load", function() {
strictEqual( ui.tab, tab[ 0 ], "tab" );
strictEqual( ui.panel, panel[ 0 ], "panel" );
equal( $( ui.panel ).find( "p" ).length, 1, "panel html" );
- tabs_state( element, 0, 0, 0, 0, 1 );
+ state( element, 0, 0, 0, 0, 1 );
start();
});
element.find( ".ui-tabs-nav a" ).eq( 4 ).click();
@@ -324,10 +327,10 @@ test( "show", function() {
strictEqual( ui.tab, tabs[ 0 ], "ui.tab" );
strictEqual( ui.panel, panels[ 0 ], "ui.panel" );
equal( ui.index, 0, "ui.index" );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
element.tabs( "option", "active", 0 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
// switching tabs
element.one( "tabsshow", function( event, ui ) {
@@ -335,17 +338,17 @@ test( "show", function() {
strictEqual( ui.tab, tabs[ 1 ], "ui.tab" );
strictEqual( ui.panel, panels[ 1 ], "ui.panel" );
equal( ui.index, 1, "ui.index" );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
tabs.eq( 1 ).click();
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
// collapsing
element.one( "tabsshow", function( event, ui ) {
ok( false, "collapsing" );
});
element.tabs( "option", "active", false );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
test( "select", function() {
@@ -364,10 +367,10 @@ test( "select", function() {
strictEqual( ui.tab, tabs[ 0 ], "ui.tab" );
strictEqual( ui.panel, panels[ 0 ], "ui.panel" );
equal( ui.index, 0, "ui.index" );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
element.tabs( "option", "active", 0 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
// switching tabs
element.one( "tabsselect", function( event, ui ) {
@@ -375,26 +378,32 @@ test( "select", function() {
strictEqual( ui.tab, tabs[ 1 ], "ui.tab" );
strictEqual( ui.panel, panels[ 1 ], "ui.panel" );
equal( ui.index, 1, "ui.index" );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
tabs.eq( 1 ).click();
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
// collapsing
element.one( "tabsselect", function( event, ui ) {
ok( false, "collapsing" );
});
element.tabs( "option", "active", false );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
module( "tabs (deprecated): methods" );
test( "add", function() {
- expect( 27 );
+ expect( 28 );
- var element = $( "#tabs1" ).tabs();
- tabs_state( element, 1, 0, 0 );
+ var tab, anchor,
+ element = $( "#tabs1" ).tabs();
+
+ function stripLeadingSlash( str ) {
+ return str.substr( str.charAt( 0 ) === "/" ? 1 : 0 );
+ }
+
+ state( element, 1, 0, 0 );
// add without index
element.one( "tabsadd", function( event, ui ) {
@@ -403,17 +412,18 @@ test( "add", function() {
equal( ui.panel.id, "new", "ui.panel" );
});
element.tabs( "add", "#new", "New" );
- tabs_state( element, 1, 0, 0, 0 );
- var tab = element.find( ".ui-tabs-nav li" ).last(),
- anchor = tab.find( "a" );
+ state( element, 1, 0, 0, 0 );
+ tab = element.find( ".ui-tabs-nav li" ).last();
+ anchor = tab.find( "a" );
equal( tab.text(), "New", "label" );
- equal( anchor.attr( "href" ), "#new", "href" );
+ equal( stripLeadingSlash( anchor[0].pathname ), stripLeadingSlash( location.pathname ), "href pathname" );
+ equal( anchor[0].hash, "#new", "href hash" );
equal( anchor.attr( "aria-controls" ), "new", "aria-controls" );
ok( !tab.hasClass( "ui-state-hover" ), "not hovered" );
anchor.simulate( "mouseover" );
ok( tab.hasClass( "ui-state-hover" ), "hovered" );
anchor.simulate( "click" );
- tabs_state( element, 0, 0, 0, 1 );
+ state( element, 0, 0, 0, 1 );
// add remote tab with index
element.one( "tabsadd", function( event, ui ) {
@@ -422,17 +432,19 @@ test( "add", function() {
equal( ui.panel.id, $( ui.tab ).attr( "aria-controls" ), "ui.panel" );
});
element.tabs( "add", "data/test.html", "New Remote", 1 );
- tabs_state( element, 0, 0, 0, 0, 1 );
+ state( element, 0, 0, 0, 0, 1 );
tab = element.find( ".ui-tabs-nav li" ).eq( 1 );
anchor = tab.find( "a" );
equal( tab.text(), "New Remote", "label" );
- equal( anchor.attr( "href" ), "data/test.html", "href" );
+ equal( stripLeadingSlash( stripLeadingSlash(
+ anchor[0].pathname.replace( stripLeadingSlash( location.pathname ).split( "/" ).slice( 0, -1 ).join( "/" ), "" )
+ ) ), "data/test.html", "href" );
ok( /^ui-tabs-\d+$/.test( anchor.attr( "aria-controls" ) ), "aria controls" );
ok( !tab.hasClass( "ui-state-hover" ), "not hovered" );
anchor.simulate( "mouseover" );
ok( tab.hasClass( "ui-state-hover" ), "hovered" );
anchor.simulate( "click" );
- tabs_state( element, 0, 1, 0, 0, 0 );
+ state( element, 0, 1, 0, 0, 0 );
// add to empty tab set
element = $( "<div><ul></ul></div>" ).tabs();
@@ -443,7 +455,7 @@ test( "add", function() {
equal( ui.panel.id, "first", "ui.panel" );
});
element.tabs( "add", "#first", "First" );
- tabs_state( element, 1 );
+ state( element, 1 );
equal( element.tabs( "option", "active" ), 0, "active: 0 after add" );
});
@@ -460,7 +472,7 @@ test( "remove", function() {
expect( 17 );
var element = $( "#tabs1" ).tabs({ active: 1 });
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.one( "tabsremove", function( event, ui ) {
equal( ui.index, -1, "ui.index" );
@@ -468,7 +480,7 @@ test( "remove", function() {
equal( ui.panel.id, "fragment-2", "ui.panel" );
});
element.tabs( "remove", 1 );
- tabs_state( element, 0, 1 );
+ state( element, 0, 1 );
equal( element.tabs( "option", "active" ), 1 );
equal( element.find( ".ui-tabs-nav li a[href$='fragment-2']" ).length, 0,
"remove correct list item" );
@@ -480,7 +492,7 @@ test( "remove", function() {
equal( ui.panel.id, "fragment-3", "ui.panel" );
});
element.tabs( "remove", 1 );
- tabs_state( element, 1 );
+ state( element, 1 );
equal( element.tabs( "option", "active"), 0 );
element.one( "tabsremove", function( event, ui ) {
@@ -496,43 +508,43 @@ test( "select", function() {
expect( 23 );
var element = $( "#tabs1" ).tabs();
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.tabs( "select", 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
equal( element.tabs( "option", "active" ), 1, "active" );
equal( element.tabs( "option", "selected" ), 1, "selected" );
element.tabs( "destroy" );
element.tabs({ collapsible: true });
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.tabs( "select", 0 );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
equal( element.tabs( "option", "active" ), false, "active" );
equal( element.tabs( "option", "selected" ), -1, "selected" );
element.tabs( "destroy" );
element.tabs({ collapsible: true });
element.tabs( "select", -1 );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
equal( element.tabs( "option", "active" ), false, "active" );
equal( element.tabs( "option", "selected" ), -1, "selected" );
element.tabs( "destroy" );
element.tabs();
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
equal( element.tabs( "option", "active" ), 0, "active" );
equal( element.tabs( "option", "selected" ), 0, "selected" );
element.tabs( "select", 0 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
equal( element.tabs( "option", "active" ), 0, "active" );
equal( element.tabs( "option", "selected" ), 0, "selected" );
element.tabs( "select", -1 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
equal( element.tabs( "option", "active" ), 0, "active" );
equal( element.tabs( "option", "selected" ), 0, "selected" );
element.tabs( "select", "#fragment-2" );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
equal( element.tabs( "option", "active" ), 1, "active" );
equal( element.tabs( "option", "selected" ), 1, "selected" );
});
@@ -569,6 +581,10 @@ asyncTest( "abort", function() {
start();
});
});
+ // prevent IE from caching the request, so that it won't resolve before we call abort
+ element.find( ".ui-tabs-nav li:eq(2) a" ).attr( "href", function( href ) {
+ return href + "?" + (+ new Date());
+ });
element.tabs( "option", "active", 2 );
element.tabs( "abort" );
});
diff --git a/tests/unit/tabs/tabs_events.js b/tests/unit/tabs/tabs_events.js
index 4f9269b62..f33686581 100644
--- a/tests/unit/tabs/tabs_events.js
+++ b/tests/unit/tabs/tabs_events.js
@@ -1,5 +1,7 @@
(function( $ ) {
+var state = TestHelpers.tabs.state;
+
module( "tabs: events" );
test( "create", function() {
@@ -11,9 +13,9 @@ test( "create", function() {
element.tabs({
create: function( event, ui ) {
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tabs[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panels[ 0 ], "panel" );
}
});
@@ -22,9 +24,9 @@ test( "create", function() {
element.tabs({
active: 2,
create: function( event, ui ) {
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tabs[ 2 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panels[ 2 ], "panel" );
}
});
@@ -34,8 +36,8 @@ test( "create", function() {
active: false,
collapsible: true,
create: function( event, ui ) {
- equal( ui.tab.size(), 0, "tab size" );
- equal( ui.panel.size(), 0, "panel size" );
+ equal( ui.tab.length, 0, "tab length" );
+ equal( ui.panel.length, 0, "panel length" );
}
});
element.tabs( "destroy" );
@@ -54,61 +56,61 @@ test( "beforeActivate", function() {
// from collapsed
element.one( "tabsbeforeactivate", function( event, ui ) {
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.oldTab.size(), 0, "oldTab size" );
- equal( ui.oldPanel.size(), 0, "oldPanel size" );
- equal( ui.newTab.size(), 1, "newTab size" );
+ equal( ui.oldTab.length, 0, "oldTab length" );
+ equal( ui.oldPanel.length, 0, "oldPanel length" );
+ equal( ui.newTab.length, 1, "newTab length" );
strictEqual( ui.newTab[ 0 ], tabs[ 0 ], "newTab" );
- equal( ui.newPanel.size(), 1, "newPanel size" );
+ equal( ui.newPanel.length, 1, "newPanel length" );
strictEqual( ui.newPanel[ 0 ], panels[ 0 ], "newPanel" );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
element.tabs( "option", "active", 0 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
// switching tabs
element.one( "tabsbeforeactivate", function( event, ui ) {
equal( event.originalEvent.type, "click", "originalEvent" );
- equal( ui.oldTab.size(), 1, "oldTab size" );
+ equal( ui.oldTab.length, 1, "oldTab length" );
strictEqual( ui.oldTab[ 0 ], tabs[ 0 ], "oldTab" );
- equal( ui.oldPanel.size(), 1, "oldPanel size" );
+ equal( ui.oldPanel.length, 1, "oldPanel length" );
strictEqual( ui.oldPanel[ 0 ], panels[ 0 ], "oldPanel" );
- equal( ui.newTab.size(), 1, "newTab size" );
+ equal( ui.newTab.length, 1, "newTab length" );
strictEqual( ui.newTab[ 0 ], tabs[ 1 ], "newTab" );
- equal( ui.newPanel.size(), 1, "newPanel size" );
+ equal( ui.newPanel.length, 1, "newPanel length" );
strictEqual( ui.newPanel[ 0 ], panels[ 1 ], "newPanel" );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
tabs.eq( 1 ).click();
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
// collapsing
element.one( "tabsbeforeactivate", function( event, ui ) {
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.oldTab.size(), 1, "oldTab size" );
+ equal( ui.oldTab.length, 1, "oldTab length" );
strictEqual( ui.oldTab[ 0 ], tabs[ 1 ], "oldTab" );
- equal( ui.oldPanel.size(), 1, "oldPanel size" );
+ equal( ui.oldPanel.length, 1, "oldPanel length" );
strictEqual( ui.oldPanel[ 0 ], panels[ 1 ], "oldPanel" );
- equal( ui.newTab.size(), 0, "newTab size" );
- equal( ui.newPanel.size(), 0, "newPanel size" );
- tabs_state( element, 0, 1, 0 );
+ equal( ui.newTab.length, 0, "newTab length" );
+ equal( ui.newPanel.length, 0, "newPanel length" );
+ state( element, 0, 1, 0 );
});
element.tabs( "option", "active", false );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
// prevent activation
element.one( "tabsbeforeactivate", function( event, ui ) {
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.oldTab.size(), 0, "oldTab size" );
- equal( ui.oldPanel.size(), 0, "oldTab" );
- equal( ui.newTab.size(), 1, "newTab size" );
+ equal( ui.oldTab.length, 0, "oldTab length" );
+ equal( ui.oldPanel.length, 0, "oldTab" );
+ equal( ui.newTab.length, 1, "newTab length" );
strictEqual( ui.newTab[ 0 ], tabs[ 1 ], "newTab" );
- equal( ui.newPanel.size(), 1, "newPanel size" );
+ equal( ui.newPanel.length, 1, "newPanel length" );
strictEqual( ui.newPanel[ 0 ], panels[ 1 ], "newPanel" );
event.preventDefault();
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
element.tabs( "option", "active", 1 );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
test( "activate", function() {
@@ -124,46 +126,46 @@ test( "activate", function() {
// from collapsed
element.one( "tabsactivate", function( event, ui ) {
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.oldTab.size(), 0, "oldTab size" );
- equal( ui.oldPanel.size(), 0, "oldPanel size" );
- equal( ui.newTab.size(), 1, "newTab size" );
+ equal( ui.oldTab.length, 0, "oldTab length" );
+ equal( ui.oldPanel.length, 0, "oldPanel length" );
+ equal( ui.newTab.length, 1, "newTab length" );
strictEqual( ui.newTab[ 0 ], tabs[ 0 ], "newTab" );
- equal( ui.newPanel.size(), 1, "newPanel size" );
+ equal( ui.newPanel.length, 1, "newPanel length" );
strictEqual( ui.newPanel[ 0 ], panels[ 0 ], "newPanel" );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
element.tabs( "option", "active", 0 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
// switching tabs
element.one( "tabsactivate", function( event, ui ) {
equal( event.originalEvent.type, "click", "originalEvent" );
- equal( ui.oldTab.size(), 1, "oldTab size" );
+ equal( ui.oldTab.length, 1, "oldTab length" );
strictEqual( ui.oldTab[ 0 ], tabs[ 0 ], "oldTab" );
- equal( ui.oldPanel.size(), 1, "oldPanel size" );
+ equal( ui.oldPanel.length, 1, "oldPanel length" );
strictEqual( ui.oldPanel[ 0 ], panels[ 0 ], "oldPanel" );
- equal( ui.newTab.size(), 1, "newTab size" );
+ equal( ui.newTab.length, 1, "newTab length" );
strictEqual( ui.newTab[ 0 ], tabs[ 1 ], "newTab" );
- equal( ui.newPanel.size(), 1, "newPanel size" );
+ equal( ui.newPanel.length, 1, "newPanel length" );
strictEqual( ui.newPanel[ 0 ], panels[ 1 ], "newPanel" );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
tabs.eq( 1 ).click();
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
// collapsing
element.one( "tabsactivate", function( event, ui ) {
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.oldTab.size(), 1, "oldTab size" );
+ equal( ui.oldTab.length, 1, "oldTab length" );
strictEqual( ui.oldTab[ 0 ], tabs[ 1 ], "oldTab" );
- equal( ui.oldPanel.size(), 1, "oldPanel size" );
+ equal( ui.oldPanel.length, 1, "oldPanel length" );
strictEqual( ui.oldPanel[ 0 ], panels[ 1 ], "oldPanel" );
- equal( ui.newTab.size(), 0, "newTab size" );
- equal( ui.newPanel.size(), 0, "newPanel size" );
- tabs_state( element, 0, 0, 0 );
+ equal( ui.newTab.length, 0, "newTab length" );
+ equal( ui.newPanel.length, 0, "newPanel length" );
+ state( element, 0, 0, 0 );
});
element.tabs( "option", "active", false );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
// prevent activation
element.one( "tabsbeforeactivate", function( event ) {
@@ -191,16 +193,16 @@ test( "beforeLoad", function() {
ok( !( "originalEvent" in event ), "originalEvent" );
ok( "abort" in ui.jqXHR, "jqXHR" );
ok( ui.ajaxSettings.url, "data/test.html", "ajaxSettings.url" );
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tab[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panel[ 0 ], "panel" );
equal( ui.panel.html(), "", "panel html" );
event.preventDefault();
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
});
element.tabs({ active: 2 });
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
equal( panel.html(), "", "panel html after" );
element.tabs( "destroy" );
@@ -213,17 +215,17 @@ test( "beforeLoad", function() {
ok( !( "originalEvent" in event ), "originalEvent" );
ok( "abort" in ui.jqXHR, "jqXHR" );
ok( ui.ajaxSettings.url, "data/test.html", "ajaxSettings.url" );
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tab[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panel[ 0 ], "panel" );
equal( ui.panel.html(), "", "panel html" );
event.preventDefault();
- tabs_state( element, 1, 0, 0, 0, 0 );
+ state( element, 1, 0, 0, 0, 0 );
});
element.tabs();
element.tabs( "option", "active", 2 );
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
equal( panel.html(), "", "panel html after" );
// click, change panel content
@@ -235,16 +237,16 @@ test( "beforeLoad", function() {
equal( event.originalEvent.type, "click", "originalEvent" );
ok( "abort" in ui.jqXHR, "jqXHR" );
ok( ui.ajaxSettings.url, "data/test.html", "ajaxSettings.url" );
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tab[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panel[ 0 ], "panel" );
ui.panel.html( "<p>testing</p>" );
event.preventDefault();
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
});
element.find( ".ui-tabs-nav a" ).eq( 3 ).click();
- tabs_state( element, 0, 0, 0, 1, 0 );
+ state( element, 0, 0, 0, 1, 0 );
// .toLowerCase() is needed to convert <P> to <p> in old IEs
equal( panel.html().toLowerCase(), "<p>testing</p>", "panel html after" );
});
@@ -263,12 +265,12 @@ if ( $.uiBackCompat === false ) {
panel = $( "#" + panelId );
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tab[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panel[ 0 ], "panel" );
equal( ui.panel.find( "p" ).length, 1, "panel html" );
- tabs_state( element, 0, 0, 1, 0, 0 );
+ state( element, 0, 0, 1, 0, 0 );
tabsload1();
});
element.tabs({ active: 2 });
@@ -281,12 +283,12 @@ if ( $.uiBackCompat === false ) {
panel = $( "#" + panelId );
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tab[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panel[ 0 ], "panel" );
equal( ui.panel.find( "p" ).length, 1, "panel html" );
- tabs_state( element, 0, 0, 0, 1, 0 );
+ state( element, 0, 0, 0, 1, 0 );
tabsload2();
});
element.tabs( "option", "active", 3 );
@@ -300,12 +302,12 @@ if ( $.uiBackCompat === false ) {
panel = $( "#" + panelId );
equal( event.originalEvent.type, "click", "originalEvent" );
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tab[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panel[ 0 ], "panel" );
equal( ui.panel.find( "p" ).length, 1, "panel html" );
- tabs_state( element, 0, 0, 0, 0, 1 );
+ state( element, 0, 0, 0, 0, 1 );
start();
});
element.find( ".ui-tabs-nav a" ).eq( 4 ).click();
diff --git a/tests/unit/tabs/tabs_methods.js b/tests/unit/tabs/tabs_methods.js
index fee87db96..0837995e6 100644
--- a/tests/unit/tabs/tabs_methods.js
+++ b/tests/unit/tabs/tabs_methods.js
@@ -1,5 +1,8 @@
(function( $ ) {
+var disabled = TestHelpers.tabs.disabled,
+ state = TestHelpers.tabs.state;
+
module( "tabs: methods" );
test( "destroy", function() {
@@ -12,95 +15,95 @@ test( "enable", function() {
expect( 8 );
var element = $( "#tabs1" ).tabs({ disabled: true });
- tabs_disabled( element, true );
+ disabled( element, true );
element.tabs( "enable" );
- tabs_disabled( element, false );
+ disabled( element, false );
element.tabs( "destroy" );
element.tabs({ disabled: [ 0, 1 ] });
- tabs_disabled( element, [ 0, 1 ] );
+ disabled( element, [ 0, 1 ] );
element.tabs( "enable" );
- tabs_disabled( element, false );
+ disabled( element, false );
});
test( "enable( index )", function() {
expect( 10 );
var element = $( "#tabs1" ).tabs({ disabled: true });
- tabs_disabled( element, true );
+ disabled( element, true );
// fully disabled -> partially disabled
element.tabs( "enable", 1 );
- tabs_disabled( element, [ 0, 2 ] );
+ disabled( element, [ 0, 2 ] );
// partially disabled -> partially disabled
element.tabs( "enable", 2 );
- tabs_disabled( element, [ 0 ] );
+ disabled( element, [ 0 ] );
// already enabled tab, no change
element.tabs( "enable", 2 );
- tabs_disabled( element, [ 0 ] );
+ disabled( element, [ 0 ] );
// partially disabled -> fully enabled
element.tabs( "enable", 0 );
- tabs_disabled( element, false );
+ disabled( element, false );
});
test( "disable", function() {
expect( 8 );
var element = $( "#tabs1" ).tabs({ disabled: false });
- tabs_disabled( element, false );
+ disabled( element, false );
element.tabs( "disable" );
- tabs_disabled( element, true );
+ disabled( element, true );
element.tabs( "destroy" );
element.tabs({ disabled: [ 0, 1 ] });
- tabs_disabled( element, [ 0, 1 ] );
+ disabled( element, [ 0, 1 ] );
element.tabs( "disable" );
- tabs_disabled( element, true );
+ disabled( element, true );
});
test( "disable( index )", function() {
expect( 10 );
var element = $( "#tabs1" ).tabs({ disabled: false });
- tabs_disabled( element, false );
+ disabled( element, false );
// fully enabled -> partially disabled
element.tabs( "disable", 1 );
- tabs_disabled( element, [ 1 ] );
+ disabled( element, [ 1 ] );
// partially disabled -> partially disabled
element.tabs( "disable", 2 );
- tabs_disabled( element, [ 1, 2 ] );
+ disabled( element, [ 1, 2 ] );
// already disabled tab, no change
element.tabs( "disable", 2 );
- tabs_disabled( element, [ 1, 2 ] );
+ disabled( element, [ 1, 2 ] );
// partially disabled -> fully disabled
element.tabs( "disable", 0 );
- tabs_disabled( element, true );
+ disabled( element, true );
});
test( "refresh", function() {
expect( 27 );
var element = $( "#tabs1" ).tabs();
- tabs_state( element, 1, 0, 0 );
- tabs_disabled( element, false );
+ state( element, 1, 0, 0 );
+ disabled( element, false );
// disable tab via markup
element.find( ".ui-tabs-nav li" ).eq( 1 ).addClass( "ui-state-disabled" );
element.tabs( "refresh" );
- tabs_state( element, 1, 0, 0 );
- tabs_disabled( element, [ 1 ] );
+ state( element, 1, 0, 0 );
+ disabled( element, [ 1 ] );
// add remote tab
element.find( ".ui-tabs-nav" ).append( "<li id='newTab'><a href='data/test.html'>new</a></li>" );
element.tabs( "refresh" );
- tabs_state( element, 1, 0, 0, 0 );
- tabs_disabled( element, [ 1 ] );
+ state( element, 1, 0, 0, 0 );
+ disabled( element, [ 1 ] );
equal( element.find( "#" + $( "#newTab a" ).attr( "aria-controls" ) ).length, 1,
"panel added for remote tab" );
// remove all tabs
element.find( ".ui-tabs-nav li, .ui-tabs-panel" ).remove();
element.tabs( "refresh" );
- tabs_state( element );
+ state( element );
equal( element.tabs( "option", "active" ), false, "no active tab" );
// add tabs
@@ -115,34 +118,34 @@ test( "refresh", function() {
.append( "<div id='newTab4'>new 4</div>" )
.append( "<div id='newTab5'>new 5</div>" );
element.tabs( "refresh" );
- tabs_state( element, 0, 0, 0, 0 );
- tabs_disabled( element, [ 0 ] );
+ state( element, 0, 0, 0, 0 );
+ disabled( element, [ 0 ] );
// activate third tab
element.tabs( "option", "active", 2 );
- tabs_state( element, 0, 0, 1, 0 );
- tabs_disabled( element, [ 0 ] );
+ state( element, 0, 0, 1, 0 );
+ disabled( element, [ 0 ] );
// remove fourth tab, third tab should stay active
element.find( ".ui-tabs-nav li" ).eq( 3 ).remove();
element.find( ".ui-tabs-panel" ).eq( 3 ).remove();
element.tabs( "refresh" );
- tabs_state( element, 0, 0, 1 );
- tabs_disabled( element, [ 0 ] );
+ state( element, 0, 0, 1 );
+ disabled( element, [ 0 ] );
// remove third (active) tab, second tab should become active
element.find( ".ui-tabs-nav li" ).eq( 2 ).remove();
element.find( ".ui-tabs-panel" ).eq( 2 ).remove();
element.tabs( "refresh" );
- tabs_state( element, 0, 1 );
- tabs_disabled( element, [ 0 ] );
+ state( element, 0, 1 );
+ disabled( element, [ 0 ] );
// remove first tab, previously active tab (now first) should stay active
element.find( ".ui-tabs-nav li" ).eq( 0 ).remove();
element.find( ".ui-tabs-panel" ).eq( 0 ).remove();
element.tabs( "refresh" );
- tabs_state( element, 1 );
- tabs_disabled( element, false );
+ state( element, 1 );
+ disabled( element, false );
});
asyncTest( "load", function() {
@@ -158,32 +161,31 @@ asyncTest( "load", function() {
panel = $( "#" + panelId );
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tab[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panel[ 0 ], "panel" );
- tabs_state( element, 1, 0, 0, 0, 0 );
+ state( element, 1, 0, 0, 0, 0 );
});
element.one( "tabsload", function( event, ui ) {
// TODO: remove wrapping in 2.0
var uiTab = $( ui.tab ),
- uiPanel = $( ui.panel );
-
- var tab = element.find( ".ui-tabs-nav a" ).eq( 3 ),
+ uiPanel = $( ui.panel ),
+ tab = element.find( ".ui-tabs-nav a" ).eq( 3 ),
panelId = tab.attr( "aria-controls" ),
panel = $( "#" + panelId );
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( uiTab.size(), 1, "tab size" );
+ equal( uiTab.length, 1, "tab length" );
strictEqual( uiTab[ 0 ], tab[ 0 ], "tab" );
- equal( uiPanel.size(), 1, "panel size" );
+ equal( uiPanel.length, 1, "panel length" );
strictEqual( uiPanel[ 0 ], panel[ 0 ], "panel" );
equal( uiPanel.find( "p" ).length, 1, "panel html" );
- tabs_state( element, 1, 0, 0, 0, 0 );
+ state( element, 1, 0, 0, 0, 0 );
setTimeout( tabsload1, 100 );
});
element.tabs( "load", 3 );
- tabs_state( element, 1, 0, 0, 0, 0 );
+ state( element, 1, 0, 0, 0, 0 );
function tabsload1() {
// no need to test details of event (tested in events tests)
@@ -195,7 +197,7 @@ asyncTest( "load", function() {
setTimeout( tabsload2, 100 );
});
element.tabs( "option", "active", 3 );
- tabs_state( element, 0, 0, 0, 1, 0 );
+ state( element, 0, 0, 0, 1, 0 );
}
function tabsload2() {
@@ -206,31 +208,30 @@ asyncTest( "load", function() {
panel = $( "#" + panelId );
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( ui.tab.size(), 1, "tab size" );
+ equal( ui.tab.length, 1, "tab length" );
strictEqual( ui.tab[ 0 ], tab[ 0 ], "tab" );
- equal( ui.panel.size(), 1, "panel size" );
+ equal( ui.panel.length, 1, "panel length" );
strictEqual( ui.panel[ 0 ], panel[ 0 ], "panel" );
- tabs_state( element, 0, 0, 0, 1, 0 );
+ state( element, 0, 0, 0, 1, 0 );
});
element.one( "tabsload", function( event, ui ) {
// TODO: remove wrapping in 2.0
var uiTab = $( ui.tab ),
- uiPanel = $( ui.panel );
-
- var tab = element.find( ".ui-tabs-nav a" ).eq( 3 ),
+ uiPanel = $( ui.panel ),
+ tab = element.find( ".ui-tabs-nav a" ).eq( 3 ),
panelId = tab.attr( "aria-controls" ),
panel = $( "#" + panelId );
ok( !( "originalEvent" in event ), "originalEvent" );
- equal( uiTab.size(), 1, "tab size" );
+ equal( uiTab.length, 1, "tab length" );
strictEqual( uiTab[ 0 ], tab[ 0 ], "tab" );
- equal( uiPanel.size(), 1, "panel size" );
+ equal( uiPanel.length, 1, "panel length" );
strictEqual( uiPanel[ 0 ], panel[ 0 ], "panel" );
- tabs_state( element, 0, 0, 0, 1, 0 );
+ state( element, 0, 0, 0, 1, 0 );
start();
});
element.tabs( "load", 3 );
- tabs_state( element, 0, 0, 0, 1, 0 );
+ state( element, 0, 0, 0, 1, 0 );
}
});
diff --git a/tests/unit/tabs/tabs_options.js b/tests/unit/tabs/tabs_options.js
index e1ebf5efa..ae9e7bdc6 100644
--- a/tests/unit/tabs/tabs_options.js
+++ b/tests/unit/tabs/tabs_options.js
@@ -1,5 +1,8 @@
(function( $ ) {
+var disabled = TestHelpers.tabs.disabled,
+ state = TestHelpers.tabs.state;
+
module( "tabs: options" );
test( "{ active: default }", function() {
@@ -7,13 +10,13 @@ test( "{ active: default }", function() {
var element = $( "#tabs1" ).tabs();
equal( element.tabs( "option", "active" ), 0, "should be 0 by default" );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.tabs( "destroy" );
location.hash = "#fragment-3";
element = $( "#tabs1" ).tabs();
equal( element.tabs( "option", "active" ), 2, "should be 2 based on URL" );
- tabs_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.tabs( "destroy" );
location.hash = "#";
});
@@ -25,19 +28,19 @@ test( "{ active: false }", function() {
active: false,
collapsible: true
});
- tabs_state( element, 0, 0, 0 );
- equal( element.find( ".ui-tabs-nav .ui-state-active" ).size(), 0, "no tabs selected" );
+ state( element, 0, 0, 0 );
+ equal( element.find( ".ui-tabs-nav .ui-state-active" ).length, 0, "no tabs selected" );
strictEqual( element.tabs( "option", "active" ), false );
element.tabs( "option", "collapsible", false );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
equal( element.tabs( "option", "active" ), 0 );
element.tabs( "destroy" );
element.tabs({
active: false
});
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
strictEqual( element.tabs( "option", "active" ), 0 );
});
@@ -48,19 +51,19 @@ test( "{ active: Number }", function() {
active: 2
});
equal( element.tabs( "option", "active" ), 2 );
- tabs_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.tabs( "option", "active", 0 );
equal( element.tabs( "option", "active" ), 0 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.find( ".ui-tabs-nav a" ).eq( 1 ).click();
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.tabs( "option", "active", 10 );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
if ( $.uiBackCompat === false ) {
@@ -69,19 +72,19 @@ if ( $.uiBackCompat === false ) {
active: -1
});
equal( element.tabs( "option", "active" ), 2 );
- tabs_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.tabs( "option", "active", -2 );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.tabs( "option", "active", -10 );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.tabs( "option", "active", -3 );
equal( element.tabs( "option", "active" ), 0 );
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
});
}
@@ -91,9 +94,9 @@ test( "active - mismatched tab/panel order", function() {
location.hash = "#tabs7-2";
var element = $( "#tabs7" ).tabs();
equal( element.tabs( "option", "active" ), 1, "should be 1 based on URL" );
- tabs_state( element, 0, 1 );
+ state( element, 0, 1 );
element.tabs( "option", "active", 0 );
- tabs_state( element, 1, 0 );
+ state( element, 1, 0 );
location.hash = "#";
});
@@ -105,11 +108,11 @@ test( "{ collapsible: false }", function() {
});
element.tabs( "option", "active", false );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.find( ".ui-state-active a" ).eq( 1 ).click();
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "{ collapsible: true }", function() {
@@ -122,15 +125,15 @@ test( "{ collapsible: true }", function() {
element.tabs( "option", "active", false );
equal( element.tabs( "option", "active" ), false );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
element.tabs( "option", "active", 1 );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.find( ".ui-state-active a" ).click();
equal( element.tabs( "option", "active" ), false );
- tabs_state( element, 0, 0, 0 );
+ state( element, 0, 0, 0 );
});
test( "disabled", function() {
@@ -138,23 +141,23 @@ test( "disabled", function() {
// fully enabled by default
var element = $( "#tabs1" ).tabs();
- tabs_disabled( element, false );
+ disabled( element, false );
// disable single tab
element.tabs( "option", "disabled", [ 1 ] );
- tabs_disabled( element, [ 1 ] );
+ disabled( element, [ 1 ] );
// disabled active tab
element.tabs( "option", "disabled", [ 0, 1 ] );
- tabs_disabled( element, [ 0, 1 ] );
+ disabled( element, [ 0, 1 ] );
// disable all tabs
element.tabs( "option", "disabled", [ 0, 1, 2 ] );
- tabs_disabled( element, true );
+ disabled( element, true );
// enable all tabs
element.tabs( "option", "disabled", [] );
- tabs_disabled( element, false );
+ disabled( element, false );
});
test( "{ event: null }", function() {
@@ -163,16 +166,16 @@ test( "{ event: null }", function() {
var element = $( "#tabs1" ).tabs({
event: null
});
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.tabs( "option", "active", 1 );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
// ensure default click handler isn't bound
element.find( ".ui-tabs-nav a" ).eq( 2 ).click();
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
test( "{ event: custom }", function() {
@@ -181,31 +184,31 @@ test( "{ event: custom }", function() {
var element = $( "#tabs1" ).tabs({
event: "custom1 custom2"
});
- tabs_state( element, 1, 0, 0 );
+ state( element, 1, 0, 0 );
element.find( ".ui-tabs-nav a" ).eq( 1 ).trigger( "custom1" );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
// ensure default click handler isn't bound
element.find( ".ui-tabs-nav a" ).eq( 2 ).trigger( "click" );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
element.find( ".ui-tabs-nav a" ).eq( 2 ).trigger( "custom2" );
equal( element.tabs( "option", "active" ), 2 );
- tabs_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.tabs( "option", "event", "custom3" );
// ensure old event handlers are unbound
element.find( ".ui-tabs-nav a" ).eq( 1 ).trigger( "custom1" );
equal( element.tabs( "option", "active" ), 2 );
- tabs_state( element, 0, 0, 1 );
+ state( element, 0, 0, 1 );
element.find( ".ui-tabs-nav a" ).eq( 1 ).trigger( "custom3" );
equal( element.tabs( "option", "active" ), 1 );
- tabs_state( element, 0, 1, 0 );
+ state( element, 0, 1, 0 );
});
// TODO: add animation tests
diff --git a/tests/unit/tabs/tabs_test_helpers.js b/tests/unit/tabs/tabs_test_helpers.js
new file mode 100644
index 000000000..9f592c074
--- /dev/null
+++ b/tests/unit/tabs/tabs_test_helpers.js
@@ -0,0 +1,61 @@
+TestHelpers.tabs = {
+ disabled: function( tabs, state ) {
+ var expected, actual,
+ internalState = tabs.tabs( "option", "disabled" );
+
+ if ( internalState === false ) {
+ internalState = [];
+ }
+ if ( internalState === true ) {
+ internalState = $.map( new Array( tabs.find( ".ui-tabs-nav li" ).length ), function( _, index ) {
+ return index;
+ });
+ }
+
+ expected = $.map( new Array( tabs.find ( ".ui-tabs-nav li" ).length ), function( _, index ) {
+ if ( typeof state === "boolean" ) {
+ return state ? 1 : 0;
+ } else {
+ return $.inArray( index, state ) !== -1 ? 1 : 0;
+ }
+ });
+
+ actual = tabs.find( ".ui-tabs-nav li" ).map(function( index ) {
+ var tab = $( this ),
+ tabIsDisabled = tab.hasClass( "ui-state-disabled" );
+
+ if ( tabIsDisabled && $.inArray( index, internalState ) !== -1 ) {
+ return 1;
+ }
+ if ( !tabIsDisabled && $.inArray( index, internalState ) === -1 ) {
+ return 0;
+ }
+ // mixed state - invalid
+ return -1;
+ }).get();
+
+ deepEqual( tabs.tabs( "option", "disabled" ), state );
+ deepEqual( actual, expected );
+ },
+
+ state: function( tabs ) {
+ var expected = $.makeArray( arguments ).slice( 1 ),
+ actual = tabs.find( ".ui-tabs-nav li" ).map(function() {
+ var tab = $( this ),
+ panel = $( $.ui.tabs.prototype._sanitizeSelector(
+ "#" + tab.find( "a" ).attr( "aria-controls" ) ) ),
+ tabIsActive = tab.hasClass( "ui-state-active" ),
+ panelIsActive = panel.css( "display" ) !== "none";
+
+ if ( tabIsActive && panelIsActive ) {
+ return 1;
+ }
+ if ( !tabIsActive && !panelIsActive ) {
+ return 0;
+ }
+ return -1; // mixed state - invalid
+ }).get();
+ deepEqual( actual, expected );
+ }
+};
+
diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js
index d37e27f7b..33a9a2c99 100644
--- a/tests/unit/testsuite.js
+++ b/tests/unit/testsuite.js
@@ -1,4 +1,75 @@
-(function() {
+(function( $ ) {
+
+window.TestHelpers = {};
+
+function includeStyle( url ) {
+ document.write( "<link rel='stylesheet' href='../../../" + url + "'>" );
+}
+
+function includeScript( url ) {
+ document.write( "<script src='../../../" + url + "'></script>" );
+}
+
+QUnit.config.urlConfig.push( "min" );
+TestHelpers.loadResources = QUnit.urlParams.min ?
+ function() {
+ // TODO: proper include with theme images
+ includeStyle( "dist/jquery-ui.min.css" );
+ includeScript( "dist/jquery-ui.min.js" );
+ } :
+ function( resources ) {
+ $.each( resources.css || [], function( i, resource ) {
+ includeStyle( "themes/base/jquery." + resource + ".css" );
+ });
+ $.each( resources.js || [], function( i, resource ) {
+ includeScript( resource );
+ });
+ };
+
+QUnit.config.urlConfig.push( "nojshint" );
+var jshintLoaded = false;
+TestHelpers.testJshint = function( module ) {
+ if ( QUnit.urlParams.nojshint ) {
+ return;
+ }
+
+ if ( !jshintLoaded ) {
+ includeScript( "external/jshint.js" );
+ jshintLoaded = true;
+ }
+
+ asyncTest( "JSHint", function() {
+ expect( 1 );
+
+ $.when(
+ $.ajax({
+ url: "../../../ui/.jshintrc",
+ dataType: "json"
+ }),
+ $.ajax({
+ url: "../../../ui/jquery." + module + ".js",
+ dataType: "text"
+ })
+ ).done(function( hintArgs, srcArgs ) {
+ var passed = JSHINT( srcArgs[ 0 ], hintArgs[ 0 ] ),
+ errors = $.map( JSHINT.errors, function( error ) {
+ // JSHINT may report null if there are too many errors
+ if ( !error ) {
+ return;
+ }
+
+ return "[L" + error.line + ":C" + error.character + "] " +
+ error.reason + "\n" + error.evidence + "\n";
+ }).join( "\n" );
+ ok( passed, errors );
+ start();
+ })
+ .fail(function() {
+ ok( false, "error loading source" );
+ start();
+ });
+ });
+};
function testWidgetDefaults( widget, defaults ) {
var pluginDefaults = $.ui[ widget ].prototype.options;
@@ -22,17 +93,15 @@ function testWidgetDefaults( widget, defaults ) {
});
}
-var privateMethods = [
- "_createWidget",
- "destroy",
- "option",
- "_trigger"
-];
-
function testWidgetOverrides( widget ) {
if ( $.uiBackCompat === false ) {
test( "$.widget overrides", function() {
- $.each( privateMethods, function( i, method ) {
+ $.each([
+ "_createWidget",
+ "destroy",
+ "option",
+ "_trigger"
+ ], function( i, method ) {
strictEqual( $.ui[ widget ].prototype[ method ],
$.Widget.prototype[ method ], "should not override " + method );
});
@@ -54,16 +123,17 @@ function testBasicUsage( widget ) {
});
}
-window.commonWidgetTests = function( widget, settings ) {
+TestHelpers.commonWidgetTests = function( widget, settings ) {
module( widget + ": common widget" );
+ TestHelpers.testJshint( "ui." + widget );
testWidgetDefaults( widget, settings.defaults );
testWidgetOverrides( widget );
testBasicUsage( widget );
test( "version", function() {
ok( "version" in $.ui[ widget ].prototype, "version property exists" );
});
-}
+};
/*
* Experimental assertion for comparing DOM objects.
@@ -72,20 +142,22 @@ window.commonWidgetTests = function( widget, settings ) {
* Then compares the result using deepEqual.
*/
window.domEqual = function( selector, modifier, message ) {
- var attributes = ["class", "role", "id", "tabIndex", "aria-activedescendant"];
+ var expected, actual,
+ attributes = ["class", "role", "id", "tabIndex", "aria-activedescendant"];
function extract(value) {
if (!value || !value.length) {
QUnit.push( false, actual, expected, "domEqual failed, can't extract " + selector + ", message was: " + message );
return;
}
- var result = {};
+ var children,
+ result = {};
result.nodeName = value[0].nodeName;
$.each(attributes, function(index, attr) {
result[attr] = value.prop(attr);
});
result.children = [];
- var children = value.children();
+ children = value.children();
if (children.length) {
children.each(function() {
result.children.push(extract($(this)));
@@ -95,11 +167,11 @@ window.domEqual = function( selector, modifier, message ) {
}
return result;
}
- var expected = extract($(selector));
- modifier($(selector));
+ expected = extract( $( selector ) );
+ modifier( $( selector ) );
- var actual = extract($(selector));
+ actual = extract( $( selector ) );
QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-}
+};
-}());
+}( jQuery ));
diff --git a/tests/unit/tooltip/all.html b/tests/unit/tooltip/all.html
index deb628e2f..c1aa35acf 100644
--- a/tests/unit/tooltip/all.html
+++ b/tests/unit/tooltip/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/tooltip/tooltip.html b/tests/unit/tooltip/tooltip.html
index b5e8558e5..d20ba8578 100644
--- a/tests/unit/tooltip/tooltip.html
+++ b/tests/unit/tooltip/tooltip.html
@@ -5,9 +5,12 @@
<title>jQuery UI Tooltip Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core", "ui.tooltip" ],
js: [
"ui/jquery.ui.core.js",
@@ -18,12 +21,7 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
- <script src="tooltip_defaults.js"></script>
+ <script src="tooltip_common.js"></script>
<script src="tooltip_core.js"></script>
<script src="tooltip_events.js"></script>
<script src="tooltip_methods.js"></script>
diff --git a/tests/unit/tooltip/tooltip_defaults.js b/tests/unit/tooltip/tooltip_common.js
index b8b41bf47..d12ee9519 100644
--- a/tests/unit/tooltip/tooltip_defaults.js
+++ b/tests/unit/tooltip/tooltip_common.js
@@ -1,4 +1,4 @@
-commonWidgetTests( "tooltip", {
+TestHelpers.commonWidgetTests( "tooltip", {
defaults: {
content: function() {},
disabled: false,
diff --git a/tests/unit/tooltip/tooltip_methods.js b/tests/unit/tooltip/tooltip_methods.js
index 3e8256c50..eaab1c0d1 100644
--- a/tests/unit/tooltip/tooltip_methods.js
+++ b/tests/unit/tooltip/tooltip_methods.js
@@ -16,11 +16,12 @@ test( "destroy", function() {
test( "open/close", function() {
expect( 3 );
$.fx.off = true;
- var element = $( "#tooltipped1" ).tooltip();
+ var tooltip,
+ element = $( "#tooltipped1" ).tooltip();
equal( $( ".ui-tooltip" ).length, 0, "no tooltip on init" );
element.tooltip( "open" );
- var tooltip = $( "#" + element.attr( "aria-describedby" ) );
+ tooltip = $( "#" + element.attr( "aria-describedby" ) );
ok( tooltip.is( ":visible" ) );
element.tooltip( "close" );
@@ -31,11 +32,12 @@ test( "open/close", function() {
test( "enable/disable", function() {
expect( 7 );
$.fx.off = true;
- var element = $( "#tooltipped1" ).tooltip();
+ var tooltip,
+ element = $( "#tooltipped1" ).tooltip();
equal( $( ".ui-tooltip" ).length, 0, "no tooltip on init" );
element.tooltip( "open" );
- var tooltip = $( "#" + element.attr( "aria-describedby" ) );
+ tooltip = $( "#" + element.attr( "aria-describedby" ) );
ok( tooltip.is( ":visible" ) );
element.tooltip( "disable" );
diff --git a/tests/unit/tooltip/tooltip_options.js b/tests/unit/tooltip/tooltip_options.js
index 42529e087..4f994f8de 100644
--- a/tests/unit/tooltip/tooltip_options.js
+++ b/tests/unit/tooltip/tooltip_options.js
@@ -45,11 +45,12 @@ asyncTest( "content: sync + async callback", function() {
test( "items", function() {
expect( 2 );
- var element = $( "#qunit-fixture" ).tooltip({
- items: "#fixture-span"
- });
+ var event,
+ element = $( "#qunit-fixture" ).tooltip({
+ items: "#fixture-span"
+ });
- var event = $.Event( "mouseenter" );
+ event = $.Event( "mouseenter" );
event.target = $( "#fixture-span" )[ 0 ];
element.tooltip( "open", event );
deepEqual( $( "#" + $( "#fixture-span" ).attr( "aria-describedby" ) ).text(), "title-text" );
@@ -63,7 +64,7 @@ test( "items", function() {
});
test( "tooltipClass", function() {
- expect( 1 )
+ expect( 1 );
var element = $( "#tooltipped1" ).tooltip({
tooltipClass: "custom"
}).tooltip( "open" );
diff --git a/tests/unit/widget/all.html b/tests/unit/widget/all.html
index cad4bdd72..e5b16c8d7 100644
--- a/tests/unit/widget/all.html
+++ b/tests/unit/widget/all.html
@@ -7,9 +7,9 @@
<script src="../../../jquery-1.7.2.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
- <link rel="stylesheet" href="../subsuiteRunner.css">
+ <link rel="stylesheet" href="../qunit-composite.css">
<script src="../../../external/qunit.js"></script>
- <script src="../subsuiteRunner.js"></script>
+ <script src="../qunit-composite.js"></script>
<script src="../subsuite.js"></script>
<script>
diff --git a/tests/unit/widget/widget.html b/tests/unit/widget/widget.html
index 6f4caaa6c..15eaee6aa 100644
--- a/tests/unit/widget/widget.html
+++ b/tests/unit/widget/widget.html
@@ -5,9 +5,12 @@
<title>jQuery UI Widget Test Suite</title>
<script src="../../jquery.js"></script>
- <script src="../../resource_loader.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css">
+ <script src="../../../external/qunit.js"></script>
+ <script src="../../jquery.simulate.js"></script>
+ <script src="../testsuite.js"></script>
<script>
- loadResources({
+ TestHelpers.loadResources({
css: [ "ui.core" ],
js: [
"ui/jquery.ui.widget.js"
@@ -15,11 +18,6 @@
});
</script>
- <link rel="stylesheet" href="../../../external/qunit.css">
- <script src="../../../external/qunit.js"></script>
- <script src="../../jquery.simulate.js"></script>
- <script src="../testsuite.js"></script>
-
<script src="widget_core.js"></script>
<script src="widget_extend.js"></script>
<script src="widget_animation.js"></script>
diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js
index e104d4ae9..aa70e2425 100644
--- a/tests/unit/widget/widget_core.js
+++ b/tests/unit/widget/widget_core.js
@@ -2,10 +2,14 @@
module( "widget factory", {
teardown: function() {
- delete $.ui.testWidget;
+ if ( $.ui ) {
+ delete $.ui.testWidget;
+ }
}
});
+TestHelpers.testJshint( "ui.widget" );
+
test( "widget creation", function() {
var myPrototype = {
_create: function() {},
@@ -84,7 +88,8 @@ test( "custom selector expression", function() {
test( "jQuery usage", function() {
expect( 16 );
- var shouldCreate = false;
+ var elem, instance, ret, bcInstance,
+ shouldCreate = false;
$.widget( "ui.testWidget", {
getterSetterVal: 5,
@@ -113,22 +118,22 @@ test( "jQuery usage", function() {
});
shouldCreate = true;
- var elem = $( "<div>" )
+ elem = $( "<div>" )
.bind( "testwidgetcreate", function() {
ok( shouldCreate, "create event triggered on instantiation" );
})
.testWidget();
shouldCreate = false;
- var instance = elem.data( "ui-testWidget" );
+ instance = elem.data( "ui-testWidget" );
equal( typeof instance, "object", "instance stored in .data(pluginName)" );
equal( instance.element[0], elem[0], "element stored on widget" );
- var ret = elem.testWidget( "methodWithParams", "value1", "value2" );
+ ret = elem.testWidget( "methodWithParams", "value1", "value2" );
equal( ret, elem, "jQuery object returned from method call" );
// 1.9 BC for #7810
// TODO remove
- var bcInstance = elem.data("testWidget");
+ bcInstance = elem.data("testWidget");
equal( typeof bcInstance, "object", "instance stored in .data(pluginName)" );
equal( bcInstance.element[0], elem[0], "element stored on widget" );
@@ -148,7 +153,8 @@ test( "jQuery usage", function() {
test( "direct usage", function() {
expect( 9 );
- var shouldCreate = false;
+ var elem, instance, ret,
+ shouldCreate = false;
$.widget( "ui.testWidget", {
getterSetterVal: 5,
@@ -171,17 +177,17 @@ test( "direct usage", function() {
}
});
- var elem = $( "<div>" )[ 0 ];
+ elem = $( "<div>" )[ 0 ];
shouldCreate = true;
- var instance = new $.ui.testWidget( {}, elem );
+ instance = new $.ui.testWidget( {}, elem );
shouldCreate = false;
equal( $( elem ).data( "ui-testWidget" ), instance,
"instance stored in .data(pluginName)" );
equal( instance.element[ 0 ], elem, "element stored on widget" );
- var ret = instance.methodWithParams( "value1", "value2" );
+ ret = instance.methodWithParams( "value1", "value2" );
equal( ret, instance, "plugin returned from method call" );
ret = instance.getterSetterMethod();
@@ -439,11 +445,12 @@ test( ".option() - getter", function() {
_create: function() {}
});
- var div = $( "<div>" ).testWidget({
- foo: "bar",
- baz: 5,
- qux: [ "quux", "quuux" ]
- });
+ var options,
+ div = $( "<div>" ).testWidget({
+ foo: "bar",
+ baz: 5,
+ qux: [ "quux", "quuux" ]
+ });
deepEqual( div.testWidget( "option", "x" ), null, "non-existent option" );
deepEqual( div.testWidget( "option", "foo"), "bar", "single option - string" );
@@ -451,7 +458,7 @@ test( ".option() - getter", function() {
deepEqual( div.testWidget( "option", "qux"), [ "quux", "quuux" ],
"single option - array" );
- var options = div.testWidget( "option" );
+ options = div.testWidget( "option" );
deepEqual( options, {
create: null,
disabled: false,
@@ -483,14 +490,15 @@ test( ".option() - deep option getter", function() {
});
test( ".option() - delegate to ._setOptions()", function() {
- var calls = [];
+ var div,
+ calls = [];
$.widget( "ui.testWidget", {
_create: function() {},
_setOptions: function( options ) {
calls.push( options );
}
});
- var div = $( "<div>" ).testWidget();
+ div = $( "<div>" ).testWidget();
calls = [];
div.testWidget( "option", "foo", "bar" );
@@ -506,7 +514,8 @@ test( ".option() - delegate to ._setOptions()", function() {
});
test( ".option() - delegate to ._setOption()", function() {
- var calls = [];
+ var div,
+ calls = [];
$.widget( "ui.testWidget", {
_create: function() {},
_setOption: function( key, val ) {
@@ -516,7 +525,7 @@ test( ".option() - delegate to ._setOption()", function() {
});
}
});
- var div = $( "<div>" ).testWidget();
+ div = $( "<div>" ).testWidget();
calls = [];
div.testWidget( "option", "foo", "bar" );
@@ -603,7 +612,7 @@ test( ".widget() - overriden", function() {
test( "._bind() to element (default)", function() {
expect( 12 );
- var that;
+ var that, widget;
$.widget( "ui.testWidget", {
_create: function() {
that = this;
@@ -623,7 +632,7 @@ test( "._bind() to element (default)", function() {
equal( "keydown", event.type );
}
});
- var widget = $( "<div></div>" )
+ widget = $( "<div></div>" )
.testWidget()
.trigger( "keyup" )
.trigger( "keydown" );
@@ -643,7 +652,7 @@ test( "._bind() to element (default)", function() {
test( "._bind() to descendent", function() {
expect( 12 );
- var that;
+ var that, widget, descendant;
$.widget( "ui.testWidget", {
_create: function() {
that = this;
@@ -664,28 +673,28 @@ test( "._bind() to descendent", function() {
}
});
// trigger events on both widget and descendent to ensure that only descendent receives them
- var widget = $( "<div><p><strong>hello</strong> world</p></div>" )
+ widget = $( "<div><p><strong>hello</strong> world</p></div>" )
.testWidget()
.trigger( "keyup" )
.trigger( "keydown" );
- var descendent = widget.find( "strong" )
+ descendant = widget.find( "strong" )
.trigger( "keyup" )
.trigger( "keydown" );
widget
.testWidget( "disable" )
.trigger( "keyup" )
.trigger( "keydown" );
- descendent
+ descendant
.trigger( "keyup" )
.trigger( "keydown" );
widget
.testWidget( "enable" )
.trigger( "keyup" )
.trigger( "keydown" );
- descendent
+ descendant
.trigger( "keyup" )
.trigger( "keydown" );
- descendent
+ descendant
.addClass( "ui-state-disabled" )
.trigger( "keyup" )
.trigger( "keydown" );
@@ -693,7 +702,7 @@ test( "._bind() to descendent", function() {
.testWidget( "destroy" )
.trigger( "keyup" )
.trigger( "keydown" );
- descendent
+ descendant
.trigger( "keyup" )
.trigger( "keydown" );
});
@@ -942,10 +951,10 @@ test( "._trigger() - array as ui", function() {
qux: 5,
quux: 20
}
+ },
+ extra = {
+ bar: 5
};
- var extra = {
- bar: 5
- };
this._trigger( "foo", null, [ ui, extra ] );
}
});
@@ -983,8 +992,7 @@ test( "._trigger() - instance as element", function() {
$.widget( "ui.testWidget", {
defaultElement: null,
testEvent: function() {
- var ui = { foo: "bar" };
- this._trigger( "foo", null, ui );
+ this._trigger( "foo", null, { foo: "bar" } );
}
});
var instance = $.ui.testWidget({
diff --git a/tests/unit/widget/widget_extend.js b/tests/unit/widget/widget_extend.js
index 90e686e18..ae9855929 100644
--- a/tests/unit/widget/widget_extend.js
+++ b/tests/unit/widget/widget_extend.js
@@ -1,7 +1,9 @@
test( "$.widget.extend()", function() {
expect( 26 );
- var settings = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
+ var ret, empty, optionsWithLength, optionsWithDate, myKlass, customObject, optionsWithCustomObject, nullUndef,
+ target, recursive, obj, input, output,
+ settings = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
options = { xnumber2: 1, xstring2: "x", xxx: "newstring" },
optionsCopy = { xnumber2: 1, xstring2: "x", xxx: "newstring" },
merged = { xnumber1: 5, xnumber2: 1, xstring1: "peter", xstring2: "x", xxx: "newstring" },
@@ -11,7 +13,13 @@ test( "$.widget.extend()", function() {
deepmerged = { foo: { bar: true, baz: true }, foo2: document },
arr = [1, 2, 3],
nestedarray = { arr: arr },
- ret;
+ defaults = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
+ defaultsCopy = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
+ options1 = { xnumber2: 1, xstring2: "x" },
+ options1Copy = { xnumber2: 1, xstring2: "x" },
+ options2 = { xstring2: "xx", xxx: "newstringx" },
+ options2Copy = { xstring2: "xx", xxx: "newstringx" },
+ merged2 = { xnumber1: 5, xnumber2: 1, xstring1: "peter", xstring2: "xx", xxx: "newstringx" };
$.widget.extend( settings, options );
deepEqual( settings, merged, "Check if extended: settings must be extended" );
@@ -25,19 +33,19 @@ test( "$.widget.extend()", function() {
strictEqual( $.widget.extend({}, nestedarray).arr, arr, "Don't clone arrays" );
ok( $.isPlainObject( $.widget.extend({ arr: arr }, { arr: {} }).arr ), "Cloned object heve to be an plain object" );
- var empty = {};
- var optionsWithLength = { foo: { length: -1 } };
+ empty = {};
+ optionsWithLength = { foo: { length: -1 } };
$.widget.extend( empty, optionsWithLength );
deepEqual( empty.foo, optionsWithLength.foo, "The length property must copy correctly" );
empty = {};
- var optionsWithDate = { foo: { date: new Date } };
+ optionsWithDate = { foo: { date: new Date() } };
$.widget.extend( empty, optionsWithDate );
deepEqual( empty.foo, optionsWithDate.foo, "Dates copy correctly" );
- var myKlass = function() {};
- var customObject = new myKlass();
- var optionsWithCustomObject = { foo: { date: customObject } };
+ myKlass = function() {};
+ customObject = new myKlass();
+ optionsWithCustomObject = { foo: { date: customObject } };
empty = {};
$.widget.extend( empty, optionsWithCustomObject );
strictEqual( empty.foo.date, customObject, "Custom objects copy correctly (no methods)" );
@@ -48,10 +56,9 @@ test( "$.widget.extend()", function() {
$.widget.extend( empty, optionsWithCustomObject );
strictEqual( empty.foo.date, customObject, "Custom objects copy correctly" );
- ret = $.widget.extend({ foo: 4 }, { foo: new Number(5) } );
+ ret = $.widget.extend({ foo: 4 }, { foo: Number(5) } );
equal( ret.foo, 5, "Wrapped numbers copy correctly" );
- var nullUndef;
nullUndef = $.widget.extend( {}, options, { xnumber2: null } );
strictEqual( nullUndef.xnumber2, null, "Check to make sure null values are copied");
@@ -61,8 +68,8 @@ test( "$.widget.extend()", function() {
nullUndef = $.widget.extend( {}, options, { xnumber0: null } );
strictEqual( nullUndef.xnumber0, null, "Check to make sure null values are inserted");
- var target = {};
- var recursive = { foo:target, bar:5 };
+ target = {};
+ recursive = { foo:target, bar:5 };
$.widget.extend( target, recursive );
deepEqual( target, { foo: {}, bar: 5 }, "Check to make sure a recursive obj doesn't go never-ending loop by not copying it over" );
@@ -75,28 +82,20 @@ test( "$.widget.extend()", function() {
ret = $.widget.extend( { foo:"bar" }, { foo:null } );
strictEqual( typeof ret.foo, "object", "Make sure a null value doesn't crash with deep extend, for #1908" );
- var obj = { foo:null };
+ obj = { foo:null };
$.widget.extend( obj, { foo:"notnull" } );
equal( obj.foo, "notnull", "Make sure a null value can be overwritten" );
- var defaults = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
- defaultsCopy = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
- options1 = { xnumber2: 1, xstring2: "x" },
- options1Copy = { xnumber2: 1, xstring2: "x" },
- options2 = { xstring2: "xx", xxx: "newstringx" },
- options2Copy = { xstring2: "xx", xxx: "newstringx" },
- merged2 = { xnumber1: 5, xnumber2: 1, xstring1: "peter", xstring2: "xx", xxx: "newstringx" };
-
- var settings = $.widget.extend( {}, defaults, options1, options2 );
+ settings = $.widget.extend( {}, defaults, options1, options2 );
deepEqual( settings, merged2, "Check if extended: settings must be extended" );
deepEqual( defaults, defaultsCopy, "Check if not modified: options1 must not be modified" );
deepEqual( options1, options1Copy, "Check if not modified: options1 must not be modified" );
deepEqual( options2, options2Copy, "Check if not modified: options2 must not be modified" );
- var input = {
+ input = {
key: [ 1, 2, 3 ]
};
- var output = $.widget.extend( {}, input );
+ output = $.widget.extend( {}, input );
deepEqual( input, output, "don't clone arrays" );
input.key[0] = 10;
deepEqual( input, output, "don't clone arrays" );