aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/.jshintrc59
-rw-r--r--tests/jquery.simulate.js1
-rw-r--r--tests/resource_loader.js39
-rw-r--r--tests/static/datepicker/datepicker.html26
-rw-r--r--tests/static/icons.html74
-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
-rw-r--r--tests/visual/addClass/addClass_queue.html6
-rw-r--r--tests/visual/button/button_disabled_true.html2
-rw-r--r--tests/visual/button/button_ticket_5254.html55
-rw-r--r--tests/visual/compound/accordion_dialog.html202
-rw-r--r--tests/visual/compound/accordion_tabs.html36
-rw-r--r--tests/visual/compound/datepicker_dialog.html158
-rw-r--r--tests/visual/compound/dialog_widgets.html101
-rw-r--r--tests/visual/compound/draggable_accordion.html32
-rw-r--r--tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html58
-rw-r--r--tests/visual/compound/sortable_accordion_sortable_tabs.html50
-rw-r--r--tests/visual/compound/tabs_tabs.html22
-rw-r--r--tests/visual/compound/tabs_tooltips.html26
-rw-r--r--tests/visual/compound/widgets_in_dialog.html229
-rw-r--r--tests/visual/effects/effects.scale.html6
-rw-r--r--tests/visual/menu/drilldown.html31
-rw-r--r--tests/visual/menu/menu.html6
-rw-r--r--tests/visual/menu/tablemenu.html7
-rw-r--r--tests/visual/position/position.html20
-rw-r--r--tests/visual/position/position_feedback.html146
-rw-r--r--tests/visual/position/position_feedback_rotate.html109
-rw-r--r--tests/visual/position/position_fit.html41
-rw-r--r--tests/visual/position/position_flip.html23
-rw-r--r--tests/visual/position/position_flipfit.html29
-rw-r--r--tests/visual/position/position_margin.html1
-rw-r--r--tests/visual/position/position_within.html2
-rw-r--r--tests/visual/theme.html152
-rw-r--r--tests/visual/tooltip/animations.html1
-rw-r--r--tests/visual/tooltip/tooltip.html1
169 files changed, 3304 insertions, 3688 deletions
diff --git a/tests/.jshintrc b/tests/.jshintrc
new file mode 100644
index 000000000..783237218
--- /dev/null
+++ b/tests/.jshintrc
@@ -0,0 +1,59 @@
+{
+ "browser": true,
+ "curly": true,
+ "eqnull": true,
+ "eqeqeq": true,
+ "expr": true,
+ "evil": true,
+ "jquery": true,
+ "latedef": true,
+ "noarg": true,
+ "onevar": true,
+ "smarttabs": true,
+ "trailing": true,
+ "undef": true,
+ "predef": [
+ "addMonths",
+ "asyncTest",
+ "container",
+ "deepEqual",
+ "d1",
+ "d2",
+ "dlg",
+ "domEqual",
+ "drag",
+ "dragged",
+ "el",
+ "equal",
+ "equalsDate",
+ "expect",
+ "Globalize",
+ "heightAfter",
+ "init",
+ "isNotOpen",
+ "isOpen",
+ "modal",
+ "module",
+ "moved",
+ "notEqual",
+ "offsetAfter",
+ "offsetBefore",
+ "ok",
+ "PROP_NAME",
+ "QUnit",
+ "restoreScroll",
+ "shouldBeDroppable",
+ "shouldmove",
+ "shouldNotBeDroppable",
+ "shouldnotmove",
+ "shouldnotresize",
+ "shouldresize",
+ "start",
+ "strictEqual",
+ "stop",
+ "test",
+ "TestHelpers",
+ "widthAfter",
+ "JSHINT"
+ ]
+} \ No newline at end of file
diff --git a/tests/jquery.simulate.js b/tests/jquery.simulate.js
index a85ca6ef3..2dae34c28 100644
--- a/tests/jquery.simulate.js
+++ b/tests/jquery.simulate.js
@@ -243,7 +243,6 @@ $.extend( $.simulate.prototype, {
y = Math.floor( center.y ),
dx = options.dx || 0,
dy = options.dy || 0,
- target = this.target,
coord = { clientX: x, clientY: y };
this.simulateEvent( target, "mousedown", coord );
coord = { clientX: x + 1, clientY: y + 1 };
diff --git a/tests/resource_loader.js b/tests/resource_loader.js
deleted file mode 100644
index c8dec4881..000000000
--- a/tests/resource_loader.js
+++ /dev/null
@@ -1,39 +0,0 @@
-(function( $ ) {
-
-var parts = document.location.search.slice( 1 ).split( "&" ),
- length = parts.length,
- i = 0,
- current,
- min;
-
-for ( ; i < length; i++ ) {
- current = parts[ i ].split( "=" );
- if ( current[ 0 ] === "min" ) {
- min = current[ 1 ];
- break;
- }
-}
-
-function includeStyle( url ) {
- document.write( "<link rel='stylesheet' href='../../../" + url + "'>" );
-}
-
-function includeScript( url ) {
- document.write( "<script src='../../../" + url + "'></script>" );
-}
-
-window.loadResources = min ?
- function() {
- includeStyle( "build/dist/theme/jquery-ui.min.css" );
- includeScript( "build/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 );
- });
- };
-
-})( jQuery );
diff --git a/tests/static/datepicker/datepicker.html b/tests/static/datepicker/datepicker.html
index 89be6b1eb..857677cfd 100644
--- a/tests/static/datepicker/datepicker.html
+++ b/tests/static/datepicker/datepicker.html
@@ -90,7 +90,7 @@
</tbody>
</table>
</div>
-
+
<!-- Datepicker with 1 combined select -->
<div class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">
@@ -98,7 +98,7 @@
<a title="Next" class="ui-datepicker-next ui-corner-all" href="#"><span class="ui-icon ui-icon-circle-triangle-e">Next</span></a>
<div class="ui-datepicker-title">
<select class="ui-datepicker-month-year">
- <optgroup name="2007">
+ <optgroup label="2007">
<option value="2007_0">January 2007</option>
<option value="2007_1">February 2007</option>
<option value="2007_2">March 2007</option>
@@ -112,7 +112,7 @@
<option value="2007_10">November 2007</option>
<option value="2007_11">December 2007</option>
</optgroup>
- <optgroup name="2008">
+ <optgroup label="2008">
<option value="2008_0">January 2008</option>
<option value="2008_1">February 2008</option>
<option value="2008_2">March 2008</option>
@@ -126,7 +126,7 @@
<option value="2008_10">November 2008</option>
<option selected="selected" value="2008_11">December 2008</option>
</optgroup>
- <optgroup name="2009">
+ <optgroup label="2009">
<option value="2009_0">January 2009</option>
<option value="2009_1">February 2009</option>
<option value="2009_2">March 2009</option>
@@ -140,7 +140,7 @@
<option value="2009_10">November 2009</option>
<option value="2009_11">December 2009</option>
</optgroup>
- <optgroup name="2010">
+ <optgroup label="2010">
<option value="2010_0">January 2010</option>
<option value="2010_1">February 2010</option>
<option value="2010_2">March 2010</option>
@@ -430,11 +430,11 @@
<td class="ui-datepicker-week-end ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled"></td>
</tr>
</tbody>
- </table>
+ </table>
<div class="ui-datepicker-buttonpane ui-widget-content">
<button class="ui-state-default ui-priority-primary ui-corner-all">Done</button>
<button class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all">Today</button>
- </div>
+ </div>
</div>
<!-- Multiple Datepickers with read only month/year -->
@@ -649,7 +649,7 @@
</td></tr>
</tbody>
</table>
- </div>
+ </div>
<div class="ui-datepicker-group ui-datepicker-group-middle">
<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix">
<div class="ui-datepicker-title">
@@ -863,7 +863,7 @@
</td></tr>
</tbody>
</table>
- </div>
+ </div>
<div class="ui-datepicker-group ui-datepicker-group-middle">
<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix">
<div class="ui-datepicker-title">
@@ -924,7 +924,7 @@
<td class="ui-datepicker-week-end"><a href="#" class="ui-state-default">23</a></td>
<td class=""><a href="#" class="ui-state-default">24</a></td>
<td class=""><a href="#" class="ui-state-default">25</a></td>
- <td class=""><a href="#" class="ui-state-default">26</a></td>
+ <td class=""><a href="#" class="ui-state-default">26</a></td>
<td class=""><a href="#" class="ui-state-default">27</a></td>
<td class=""><a href="#" class="ui-state-default">28</a></td>
<td class="ui-datepicker-week-end"><a href="#" class="ui-state-default">29</a></td>
@@ -1077,8 +1077,8 @@
</td></tr>
</tbody>
</table>
- </div>
-
+ </div>
+
<div class="ui-datepicker-row-break"></div>
<div class="ui-datepicker-group ui-datepicker-group-first">
<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix">
@@ -1344,7 +1344,7 @@
<td class="ui-datepicker-week-end"><a href="#" class="ui-state-default">23</a></td>
<td class=""><a href="#" class="ui-state-default">24</a></td>
<td class=""><a href="#" class="ui-state-default">25</a></td>
- <td class=""><a href="#" class="ui-state-default">26</a></td>
+ <td class=""><a href="#" class="ui-state-default">26</a></td>
<td class=""><a href="#" class="ui-state-default">27</a></td>
<td class=""><a href="#" class="ui-state-default">28</a></td>
<td class="ui-datepicker-week-end"><a href="#" class="ui-state-default">29</a></td>
diff --git a/tests/static/icons.html b/tests/static/icons.html
index af2833442..d3ae3e348 100644
--- a/tests/static/icons.html
+++ b/tests/static/icons.html
@@ -16,12 +16,13 @@
ul {margin: 0; padding: 0;}
td div {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left; list-style: none;}
span.ui-icon { float: left; margin: 0 4px;}
+ .icon-collection { border-spacing: 0; border-collapse: collapse; }
</style>
<script type="text/javascript">
$(function(){
$('.ui-state-default').hover(
- function(){ $(this).addClass('ui-state-hover'); },
+ function(){ $(this).addClass('ui-state-hover'); },
function(){ $(this).removeClass('ui-state-hover'); }
);
@@ -36,7 +37,7 @@
<p class="icons"></p>
-<table class="ui-widget icon-collection" cellpaddding="0" cellspacing="0">
+<table class="ui-widget icon-collection">
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-n"><span class="ui-icon ui-icon-carat-1-n"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-ne"><span class="ui-icon ui-icon-carat-1-ne"></span></div></td>
@@ -48,6 +49,12 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-nw"><span class="ui-icon ui-icon-carat-1-nw"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-carat-2-n-s"><span class="ui-icon ui-icon-carat-2-n-s"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-carat-2-e-w"><span class="ui-icon ui-icon-carat-2-e-w"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-n"><span class="ui-icon ui-icon-triangle-1-n"></span></div></td>
@@ -60,6 +67,12 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-nw"><span class="ui-icon ui-icon-triangle-1-nw"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-n-s"><span class="ui-icon ui-icon-triangle-2-n-s"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-e-w"><span class="ui-icon ui-icon-triangle-2-e-w"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-n"><span class="ui-icon ui-icon-arrow-1-n"></span></div></td>
@@ -110,6 +123,10 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-n"><span class="ui-icon ui-icon-arrowrefresh-1-n"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-e"><span class="ui-icon ui-icon-arrowrefresh-1-e"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-s"><span class="ui-icon ui-icon-arrowrefresh-1-s"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4"><span class="ui-icon ui-icon-arrow-4"></span></div></td>
@@ -120,6 +137,14 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-shuffle"><span class="ui-icon ui-icon-shuffle"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-transfer-e-w"><span class="ui-icon ui-icon-transfer-e-w"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-transferthick-e-w"><span class="ui-icon ui-icon-transferthick-e-w"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-folder-collapsed"><span class="ui-icon ui-icon-folder-collapsed"></span></div></td>
@@ -186,6 +211,12 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-radio-on"><span class="ui-icon ui-icon-radio-on"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-pin-w"><span class="ui-icon ui-icon-pin-w"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-pin-s"><span class="ui-icon ui-icon-pin-s"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-play"><span class="ui-icon ui-icon-play"></span></div></td>
@@ -198,6 +229,12 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-eject"><span class="ui-icon ui-icon-eject"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-volume-off"><span class="ui-icon ui-icon-volume-off"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-volume-on"><span class="ui-icon ui-icon-volume-on"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-power"><span class="ui-icon ui-icon-power"></span></div></td>
@@ -207,6 +244,15 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-battery-1"><span class="ui-icon ui-icon-battery-1"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-battery-2"><span class="ui-icon ui-icon-battery-2"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-battery-3"><span class="ui-icon ui-icon-battery-3"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-circle-plus"><span class="ui-icon ui-icon-circle-plus"></span></div></td>
@@ -223,6 +269,8 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomin"><span class="ui-icon ui-icon-circle-zoomin"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomout"><span class="ui-icon ui-icon-circle-zoomout"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-circle-check"><span class="ui-icon ui-icon-circle-check"></span></div></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-plus"><span class="ui-icon ui-icon-circlesmall-plus"></span></div></td>
@@ -231,6 +279,16 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-plus"><span class="ui-icon ui-icon-squaresmall-plus"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-minus"><span class="ui-icon ui-icon-squaresmall-minus"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-close"><span class="ui-icon ui-icon-squaresmall-close"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
<tr>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-vertical"><span class="ui-icon ui-icon-grip-dotted-vertical"></span></div></td>
@@ -238,7 +296,17 @@
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-vertical"><span class="ui-icon ui-icon-grip-solid-vertical"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-horizontal"><span class="ui-icon ui-icon-grip-solid-horizontal"></span></div></td>
<td><div class="ui-state-default ui-corner-all" title=".ui-icon-gripsmall-diagonal-se"><span class="ui-icon ui-icon-gripsmall-diagonal-se"></span></div></td>
- <td><div class="ui-state-default ui-corner-all" title=".ui-icon-grip-diagonal-se"><span class="ui-icon ui-icon-grip-diagonal-se"></span></div></td></ul>
+ <td><div class="ui-state-default ui-corner-all" title=".ui-icon-grip-diagonal-se"><span class="ui-icon ui-icon-grip-diagonal-se"></span></div></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
</tr>
</table>
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" );
diff --git a/tests/visual/addClass/addClass_queue.html b/tests/visual/addClass/addClass_queue.html
index 9cc2ec4fc..616f2c7f9 100644
--- a/tests/visual/addClass/addClass_queue.html
+++ b/tests/visual/addClass/addClass_queue.html
@@ -1,9 +1,8 @@
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>addClass Visual Test : Queue</title>
- <link rel="stylesheet" href="../visual.css">
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
<script src="../../../jquery-1.7.2.js"></script>
<script src="../../../ui/jquery.effects.core.js"></script>
@@ -43,6 +42,9 @@
</head>
<body>
+<p>WHAT: The two boxes animate from black to red to green to blue.</p>
+<p>The first box should start with a delay, the second box should start immediately.</p>
+
<div id="box1" class="box"></div>
<div id="box2" class="box"></div>
diff --git a/tests/visual/button/button_disabled_true.html b/tests/visual/button/button_disabled_true.html
index 25388a484..83a3e9cd6 100644
--- a/tests/visual/button/button_disabled_true.html
+++ b/tests/visual/button/button_disabled_true.html
@@ -46,7 +46,7 @@
<fieldset>
<legend>anchor</legend>
- <a href="javascript:void(0)" disabled="disabled">anchor 1</a>
+ <a href="javascript:void(0)">anchor 1</a> # Attribute "disabled" not allowed on element "a" at this point.
<hr />
<a href="javascript:void(0)" id="anchor1">anchor 1</a>
</fieldset>
diff --git a/tests/visual/button/button_ticket_5254.html b/tests/visual/button/button_ticket_5254.html
deleted file mode 100644
index c46e094ab..000000000
--- a/tests/visual/button/button_ticket_5254.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8" />
- <title>Button Visual Test : Button ticket #5254</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.button.js"></script>
- <script type="text/javascript">
- $(function() {
-
- $('#b1').button();
-
- $('#b2').button();
-
- $('#b3').button().click(function() {
- return false;
- });
-
- $('#ua').text(navigator.userAgent);
-
- });
- </script>
-</head>
-<body>
-
-<h1 class="ui-widget-header"><a href="http://dev.jqueryui.com/ticket/5254">#5254 - Input, button and anchor buttons aren't consistent in IE7</a></h1>
-
-<dl>
-<dt><h2>Screenshot from ticket:</h2></dt>
-<dd><img src="http://dev.jqueryui.com/raw-attachment/ticket/5254/button.png"></dd>
-</dl>
-
-<hr>
-
-<dl>
-<dt><h2>Visual test:</h2></dt>
-<dd>
- <div id="vt">
- <input id="b1" type="button" value="Input" style="" />
- <button id="b2">Button</button>
- <a id="b3" href="#">Anchor</a>
- </div>
-</dd>
-<dt><h2>User agent:</h2></dt>
-<dd>
- <h3 id="ua"></h3>
-</dd>
-</dl>
-
-</body>
-</html>
diff --git a/tests/visual/compound/accordion_dialog.html b/tests/visual/compound/accordion_dialog.html
deleted file mode 100644
index df179ff6a..000000000
--- a/tests/visual/compound/accordion_dialog.html
+++ /dev/null
@@ -1,202 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8" />
- <title>Compound Visual Test : Accordion in Dialog</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.resizable.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.draggable.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.dialog.js"></script>
- <script type="text/javascript">
- $(function() {
- $('#accordion').accordion({
- collapsible: true,
- active: false
- });
- $('#dialog').dialog({
- buttons: {
- Test: $.noop
- }
- });
- });
- </script>
-</head>
-<body>
-
-<div id="dialog">
- <div id="accordion">
- <h3><a href="#">Section 1</a></h3>
- <div>
- <p>
- Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
- ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
- amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
- odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
- </p>
- </div>
- <h3><a href="#">Section 2</a></h3>
- <div>
- <p>
- Cras dictum. Pellentesque habitant morbi tristique senectus et netus
- et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
- faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
- mauris vel est.
- </p>
- <p>
- Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
- Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
- inceptos himenaeos.
- </p>
- </div>
- <h3><a href="#">Section 3</a></h3>
- <div>
- <p>
- Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
- Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
- ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
- lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
- </p>
- <ul>
- <li>List item one</li>
- <li>List item two</li>
- <li>List item three</li>
- </ul>
- </div>
- </div>
-</div>
-
-<p>
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vitae urna quam. Fusce adipiscing erat eget magna malesuada vel mollis ligula ullamcorper. Donec pulvinar, libero et vehicula facilisis, odio orci fringilla magna, non ultricies ipsum justo a tellus. Proin facilisis magna vitae quam vestibulum tempor. Aenean semper placerat posuere. In nisi diam, ullamcorper sit amet viverra sed, pretium sed neque. Sed posuere vulputate mauris vitae placerat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam in odio elit, non tempor felis. Integer non iaculis ante. Sed erat mauris, aliquam nec consequat id, congue id libero. Maecenas elementum gravida tincidunt. Suspendisse lacinia enim sit amet nulla cursus pulvinar.
-</p>
-<p>
-Proin ut sem nulla, at cursus sapien. Duis sagittis lacus vitae justo mattis in sagittis ligula eleifend. Curabitur sit amet felis pharetra justo facilisis mollis eget nec massa. Sed nisi urna, semper lobortis pretium ac, interdum nec lacus. In gravida, leo sit amet vehicula malesuada, augue nunc consectetur nulla, vel tincidunt est nunc aliquet neque. Maecenas imperdiet eros id ligula tempor dapibus. Integer commodo metus sit amet quam vestibulum volutpat. In et lorem ac leo rhoncus auctor sit amet ut urna. Nulla sed nisl quis turpis vestibulum accumsan. Duis mollis aliquam sollicitudin. Pellentesque porta semper interdum. Sed eros orci, congue quis sollicitudin ut, rutrum vitae nibh. Nunc et leo non ligula interdum imperdiet. Integer tincidunt rhoncus ullamcorper. Curabitur et ullamcorper lorem. Ut at tellus eu metus congue sollicitudin eget at orci.
-</p>
-<p>
-Duis sem mauris, pulvinar quis placerat vel, aliquet non leo. Cras eros arcu, ullamcorper sit amet imperdiet at, blandit interdum augue. Phasellus non nunc ac ante condimentum tristique vitae sed urna. Integer nec sapien et dolor volutpat bibendum ac vitae justo. Aliquam gravida fermentum felis, nec dictum dui dictum ac. Maecenas eget magna leo. Phasellus ac nulla risus, dapibus ornare turpis. Morbi a massa tortor. Duis ac turpis lacus. Duis nibh metus, euismod quis ultrices vitae, sollicitudin vel leo. Nullam volutpat odio ac elit imperdiet gravida.
-</p>
-<p>
-Donec luctus magna id ipsum aliquam eget convallis tortor tristique. Etiam est quam, aliquam ac rutrum quis, pretium sed tortor. Aliquam lacus diam, rhoncus molestie convallis ut, luctus ac lacus. Nunc porttitor ante a ligula rutrum elementum. Cras dui tellus, pulvinar vel convallis sit amet, facilisis nec ipsum. Donec fermentum lectus lorem, id accumsan eros. Nunc semper laoreet lacus quis ullamcorper. Nunc luctus erat vitae orci sodales facilisis non ut felis. Aliquam pretium sapien sed enim adipiscing in feugiat est ornare. Aenean ultricies convallis tortor sit amet ullamcorper.
-</p>
-<p>
-Etiam ultricies elit non enim elementum aliquet. Vivamus quis fringilla mauris. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc blandit felis at massa interdum ac molestie lectus volutpat. Mauris commodo nibh id sem porta id feugiat ante euismod. Nullam fermentum libero varius turpis pharetra cursus ut sed lacus. Mauris molestie egestas augue eu bibendum. Quisque pulvinar, leo luctus vehicula faucibus, quam mi ornare dui, a rhoncus nisi eros nec dolor. Sed dictum ultricies ipsum eu ultrices. Etiam semper condimentum nibh in tempor.
-</p>
-<p>
-
-Vivamus interdum ligula nec neque sollicitudin ornare. Vestibulum a eros eget nisi accumsan hendrerit quis sit amet ipsum. Phasellus condimentum vestibulum felis eu hendrerit. Suspendisse in est tellus, et consequat ante. Nam at sapien lobortis risus dignissim malesuada. In dapibus lectus sed nibh adipiscing dictum. Nulla pellentesque convallis auctor. Suspendisse ut purus et nibh pulvinar tincidunt. Maecenas dapibus purus at odio commodo ac cursus risus luctus. Ut quis libero justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam vestibulum ipsum quis ante porttitor porta. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut in ante neque. Donec ante ante, porttitor non egestas a, pulvinar sed sem. Nam augue quam, fringilla sed egestas et, vulputate non nisi.
-</p>
-<p>
-Nunc sit amet arcu ac nulla bibendum sollicitudin. Pellentesque sed ligula urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque egestas, tortor a vestibulum malesuada, ante dui condimentum massa, ac rutrum massa mauris non mi. Praesent in nisi leo. Sed ac augue nisl. Donec eget enim ut arcu posuere condimentum vel id magna. Vestibulum laoreet imperdiet massa, ut venenatis ante dapibus eu. Phasellus faucibus vestibulum eros mollis adipiscing. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque aliquet lectus at enim gravida tempus tincidunt mi porta. Sed vehicula molestie ligula, sed tincidunt diam suscipit vitae.
-</p>
-<p>
-Nullam euismod tempus ante, vel semper turpis pharetra eget. Nulla pretium ante et ipsum dapibus imperdiet. Praesent ipsum velit, gravida sed adipiscing id, condimentum in odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce blandit vehicula felis, pretium ullamcorper leo tempor non. Nunc eget nisi nunc, posuere pellentesque enim. Nunc gravida orci quis odio semper ultricies. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque eu neque a sapien commodo placerat. Aenean non eros semper metus viverra porttitor. Integer vel tortor eu neque commodo ultrices eu quis tellus. Nam commodo sagittis dolor in consequat. Fusce hendrerit turpis eget leo rutrum ut scelerisque nibh condimentum. Fusce sit amet feugiat mauris. Maecenas elementum tellus nec augue rutrum mattis. Sed viverra tempor blandit. Pellentesque adipiscing tincidunt est sit amet tincidunt. Proin suscipit suscipit odio, eu pellentesque dolor pharetra non. Aliquam erat volutpat.
-</p>
-<p>
-Duis pellentesque, enim sed mollis congue, ante mauris feugiat nisi, bibendum euismod erat enim ac magna. Mauris risus nisl, sodales vel viverra ut, interdum sed neque. Nunc ac dignissim felis. Proin tincidunt orci elementum erat molestie suscipit. Cras suscipit, sem ac vehicula vehicula, lorem orci dictum nibh, ut bibendum odio sem non erat. Maecenas quis metus eget mauris feugiat porta a eu ipsum. Vivamus tortor purus, posuere ut luctus sed, ullamcorper feugiat neque. In hac habitasse platea dictumst. Vivamus nec justo vel lacus mattis pellentesque. Nunc vel gravida quam. Etiam at aliquam magna.
-</p>
-<p>
-Sed ac lacus ac felis auctor suscipit. Aliquam lacinia lectus ac nunc placerat aliquam accumsan neque interdum. Aenean in sapien sem. Suspendisse potenti. Aenean congue vulputate scelerisque. Proin eget eros tortor. Morbi rhoncus, mi vitae sollicitudin luctus, est orci porttitor turpis, vitae cursus est dui sed leo. Curabitur erat nunc, placerat bibendum tempus in, blandit eget ipsum. Cras in feugiat ipsum. Vestibulum dapibus quam nec odio pretium non dapibus purus dapibus. Pellentesque vehicula metus bibendum orci ultrices tincidunt. Sed fermentum, neque eget porta tempor, sem neque pulvinar ligula, vitae elementum massa metus eget nunc. Nunc sed orci eu purus sodales fringilla. Quisque aliquet arcu ac dolor ultrices fringilla. Nullam ornare tempus lorem, in mattis magna mollis laoreet. Vestibulum convallis arcu in purus lobortis et sollicitudin ipsum aliquet. Quisque risus est, sagittis eu aliquam ac, condimentum at massa. Fusce consectetur dignissim sem vel ornare. Maecenas posuere ultricies sollicitudin. Duis luctus, purus quis auctor egestas, diam felis scelerisque diam, a varius tellus erat a nunc.
-</p>
-<p>
-Phasellus id ante neque, eget volutpat risus. Vivamus scelerisque, nisi rutrum ultrices varius, sem quam suscipit purus, in elementum nibh nulla nec nisi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus interdum hendrerit mi, nec cursus nisi tempor ac. Phasellus luctus ligula bibendum mauris iaculis id tempor odio volutpat. Nunc in augue metus. Suspendisse at libero at libero lacinia convallis eu vitae metus. Duis eget risus odio. Nam id mi tellus, non vulputate libero. In placerat dictum orci eu pellentesque. Etiam sed varius felis. Phasellus ut adipiscing leo. Morbi ante eros, interdum eget dapibus ac, varius congue nunc. Donec vulputate sapien id risus sodales sit amet pretium velit iaculis. Etiam ultrices tempor euismod.
-</p>
-
-<p>
-Praesent in turpis ut mauris cursus commodo. Mauris lectus tellus, congue sit amet dictum id, convallis ac nisi. Curabitur ante dolor, sagittis ac auctor ac, aliquet vel nisl. Nulla non porta sapien. Nunc non aliquet erat. Vestibulum euismod auctor volutpat. Mauris libero tellus, pharetra eget lacinia sit amet, viverra eget velit. Sed viverra varius velit at pharetra. Sed pharetra dolor sed erat interdum in placerat magna lacinia. Cras venenatis tellus non sapien egestas sollicitudin. Duis congue pharetra lacinia. Curabitur eu diam vel tortor rhoncus dignissim vel sed enim. Proin ut congue mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce viverra elit eu dolor tincidunt tempor vel nec magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-</p>
-<p>
-Sed ligula purus, tristique nec condimentum sed, facilisis ac augue. Integer volutpat velit urna, et posuere ligula. In tempus luctus dignissim. Duis augue neque, egestas ut tincidunt in, congue a enim. Aliquam ut odio dui, id congue tortor. Nullam venenatis erat non nulla tincidunt scelerisque. Morbi in urna ac nulla molestie scelerisque eu a nulla. Aliquam erat volutpat. Praesent dictum scelerisque lorem mattis vehicula. Quisque ut rutrum metus. Mauris pharetra ante vitae nunc mattis vulputate. Mauris molestie volutpat mauris, ut iaculis dui bibendum ac. Ut egestas laoreet est, eget mollis libero laoreet at. In sagittis vestibulum accumsan. Nam dapibus ultrices urna sit amet accumsan. Pellentesque id ultrices elit. Aliquam quis magna ut leo sagittis posuere sit amet id enim. Etiam congue eros sit amet nulla aliquam gravida. In accumsan lectus nibh. Proin volutpat pretium facilisis.
-</p>
-<p>
-Mauris pulvinar erat at quam egestas ac aliquet mi gravida. Integer pellentesque quam vel massa commodo vitae sollicitudin eros volutpat. Aenean mollis felis molestie quam placerat et elementum eros gravida. In hac habitasse platea dictumst. Mauris ullamcorper facilisis eros, nec rutrum mi auctor sed. Ut viverra, orci a viverra ultricies, turpis enim pellentesque urna, sit amet viverra metus enim ut justo. Donec aliquam, urna id condimentum rutrum, nibh nunc tristique magna, at luctus quam enim at turpis. Maecenas dapibus dui ac velit adipiscing fringilla. Nullam malesuada nunc vel lorem cursus sed congue felis lacinia. Pellentesque vehicula gravida est nec facilisis. Nullam imperdiet fringilla orci in dignissim. Praesent orci dolor, vestibulum eu auctor quis, tristique auctor mi. Nunc euismod dui sit amet metus malesuada feugiat. Fusce iaculis neque in velit interdum rhoncus. Aenean at risus ut arcu dapibus congue a tincidunt dolor. Donec porttitor lacus et urna vestibulum a sagittis nunc mollis.
-</p>
-<p>
-In metus tellus, eleifend id aliquet at, pulvinar ut tortor. Aliquam erat volutpat. Vivamus lacus magna, consequat vel euismod sed, viverra a ipsum. Praesent dapibus laoreet nisi, nec posuere massa commodo vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ullamcorper adipiscing ante, dapibus molestie velit cursus id. Nam cursus arcu consectetur lectus sollicitudin gravida. Maecenas urna sapien, fermentum sit amet consectetur at, feugiat ut massa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet ante nec arcu bibendum bibendum ut ut justo. Nulla ut libero est.
-</p>
-<p>
-Aenean sem augue, malesuada quis elementum id, aliquet at turpis. Nam volutpat interdum purus, at dictum risus posuere rhoncus. Praesent metus diam, egestas in lacinia eu, tincidunt in nibh. Phasellus sollicitudin volutpat erat, sit amet mattis sapien fringilla in. Quisque rhoncus, felis a pellentesque dictum, arcu urna molestie sem, ut tincidunt nulla magna in enim. Vestibulum erat nulla, sollicitudin quis faucibus et, blandit quis est. Nam vehicula justo augue. Vivamus elementum sodales aliquet. Donec convallis neque sed dui euismod aliquet. Morbi elementum hendrerit odio, vel mollis felis dignissim vitae. Phasellus a diam lacus. Integer congue, mi vehicula egestas imperdiet, nulla mi commodo tortor, sit amet fermentum urna leo non dolor. Donec elementum elementum urna at sollicitudin. Vestibulum placerat tortor in nibh lobortis ac consectetur felis interdum. Integer faucibus diam nec magna porttitor sit amet dictum elit consectetur. Suspendisse risus velit, pellentesque eget viverra in, porta eget metus. Sed porta elit erat.
-</p>
-<p>
-Nulla facilisi. Aliquam vulputate dolor quis nisi auctor luctus. Fusce vitae scelerisque velit. Sed sit amet tortor a nisi convallis pulvinar et eget sapien. Nulla condimentum auctor velit, a viverra nibh pellentesque eget. Aenean at lacus quam, lobortis posuere justo. Duis et diam in ligula rhoncus pellentesque. Morbi massa tellus, mattis nec condimentum ut, tempus eu lectus. In mi orci, luctus at pulvinar vel, scelerisque nec enim. Vestibulum vehicula odio in augue dignissim tincidunt. Integer ac velit ligula. Integer elit turpis, mattis eget ornare ut, eleifend in magna. Curabitur sagittis dui in felis ultricies gravida.
-
-</p>
-<p>
-Praesent adipiscing rhoncus rutrum. Aenean ultricies auctor risus at fringilla. Mauris quam lectus, ullamcorper sed ultricies at, interdum eget tellus. Vestibulum ac mi erat. Sed ac tellus erat, sed laoreet arcu. Fusce eget ipsum ac sem volutpat viverra. Suspendisse ac felis sit amet purus viverra luctus non eget ipsum. Praesent eleifend euismod tortor, vel malesuada felis consectetur ac. Nunc a mi sit amet nulla venenatis tincidunt. Morbi vitae nisl nulla, nec adipiscing sem. Nullam porttitor scelerisque urna, id dapibus diam malesuada vitae. Duis auctor eleifend lectus, a tempor odio aliquet quis. Nam eu est urna, nec ultricies lectus. Ut egestas aliquet nunc, et hendrerit erat vehicula non. Aliquam tempus faucibus arcu, at vulputate erat tempor eu. Quisque tempus, lectus adipiscing blandit scelerisque, magna felis eleifend odio, non volutpat felis enim sit amet leo. Mauris augue tortor, ultrices ac sagittis non, vulputate quis nisl.
-</p>
-<p>
-Fusce erat sem, dictum in bibendum ac, feugiat ut odio. Duis aliquam felis sit amet diam egestas consectetur. Phasellus consequat, mauris eget venenatis porta, velit sapien malesuada nibh, id dignissim ante tellus vitae lacus. Duis non nisl sit amet nunc euismod posuere. Donec eros erat, fringilla vel iaculis condimentum, vestibulum at neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam lorem sapien, bibendum eu mollis nec, gravida dapibus lectus. Aenean pretium volutpat nunc a placerat. Nullam eget tellus quis ipsum ultrices ullamcorper non eu mauris. Donec volutpat tincidunt elit, sit amet cursus justo elementum quis. Mauris volutpat, enim sit amet tempor commodo, purus lacus luctus dui, sed aliquet ligula nisi vel diam. Donec est elit, lobortis at eleifend id, feugiat egestas massa. Fusce elementum sollicitudin adipiscing. Vivamus et dapibus ipsum. Morbi interdum libero a nisl dignissim sed facilisis ipsum lacinia.
-</p>
-<p>
-Cras a augue dui, vitae tincidunt enim. In hac habitasse platea dictumst. Proin nec magna sed nulla mollis tempus id ut lectus. Morbi volutpat ultricies ipsum, quis imperdiet libero tempor nec. Donec bibendum ornare blandit. Aliquam rutrum risus non turpis commodo non commodo erat molestie. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum, magna vel euismod convallis, mi magna vehicula velit, aliquet rhoncus ipsum massa et nunc. Nullam blandit purus non neque ullamcorper a aliquet nisl tristique. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed sit amet velit magna, sit amet rutrum dui. Donec elementum mi sed velit consectetur vulputate. Sed interdum adipiscing mattis.
-</p>
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vitae urna quam. Fusce adipiscing erat eget magna malesuada vel mollis ligula ullamcorper. Donec pulvinar, libero et vehicula facilisis, odio orci fringilla magna, non ultricies ipsum justo a tellus. Proin facilisis magna vitae quam vestibulum tempor. Aenean semper placerat posuere. In nisi diam, ullamcorper sit amet viverra sed, pretium sed neque. Sed posuere vulputate mauris vitae placerat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam in odio elit, non tempor felis. Integer non iaculis ante. Sed erat mauris, aliquam nec consequat id, congue id libero. Maecenas elementum gravida tincidunt. Suspendisse lacinia enim sit amet nulla cursus pulvinar.
-</p>
-<p>
-Proin ut sem nulla, at cursus sapien. Duis sagittis lacus vitae justo mattis in sagittis ligula eleifend. Curabitur sit amet felis pharetra justo facilisis mollis eget nec massa. Sed nisi urna, semper lobortis pretium ac, interdum nec lacus. In gravida, leo sit amet vehicula malesuada, augue nunc consectetur nulla, vel tincidunt est nunc aliquet neque. Maecenas imperdiet eros id ligula tempor dapibus. Integer commodo metus sit amet quam vestibulum volutpat. In et lorem ac leo rhoncus auctor sit amet ut urna. Nulla sed nisl quis turpis vestibulum accumsan. Duis mollis aliquam sollicitudin. Pellentesque porta semper interdum. Sed eros orci, congue quis sollicitudin ut, rutrum vitae nibh. Nunc et leo non ligula interdum imperdiet. Integer tincidunt rhoncus ullamcorper. Curabitur et ullamcorper lorem. Ut at tellus eu metus congue sollicitudin eget at orci.
-</p>
-<p>
-Duis sem mauris, pulvinar quis placerat vel, aliquet non leo. Cras eros arcu, ullamcorper sit amet imperdiet at, blandit interdum augue. Phasellus non nunc ac ante condimentum tristique vitae sed urna. Integer nec sapien et dolor volutpat bibendum ac vitae justo. Aliquam gravida fermentum felis, nec dictum dui dictum ac. Maecenas eget magna leo. Phasellus ac nulla risus, dapibus ornare turpis. Morbi a massa tortor. Duis ac turpis lacus. Duis nibh metus, euismod quis ultrices vitae, sollicitudin vel leo. Nullam volutpat odio ac elit imperdiet gravida.
-</p>
-<p>
-Donec luctus magna id ipsum aliquam eget convallis tortor tristique. Etiam est quam, aliquam ac rutrum quis, pretium sed tortor. Aliquam lacus diam, rhoncus molestie convallis ut, luctus ac lacus. Nunc porttitor ante a ligula rutrum elementum. Cras dui tellus, pulvinar vel convallis sit amet, facilisis nec ipsum. Donec fermentum lectus lorem, id accumsan eros. Nunc semper laoreet lacus quis ullamcorper. Nunc luctus erat vitae orci sodales facilisis non ut felis. Aliquam pretium sapien sed enim adipiscing in feugiat est ornare. Aenean ultricies convallis tortor sit amet ullamcorper.
-</p>
-<p>
-Etiam ultricies elit non enim elementum aliquet. Vivamus quis fringilla mauris. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc blandit felis at massa interdum ac molestie lectus volutpat. Mauris commodo nibh id sem porta id feugiat ante euismod. Nullam fermentum libero varius turpis pharetra cursus ut sed lacus. Mauris molestie egestas augue eu bibendum. Quisque pulvinar, leo luctus vehicula faucibus, quam mi ornare dui, a rhoncus nisi eros nec dolor. Sed dictum ultricies ipsum eu ultrices. Etiam semper condimentum nibh in tempor.
-</p>
-<p>
-
-Vivamus interdum ligula nec neque sollicitudin ornare. Vestibulum a eros eget nisi accumsan hendrerit quis sit amet ipsum. Phasellus condimentum vestibulum felis eu hendrerit. Suspendisse in est tellus, et consequat ante. Nam at sapien lobortis risus dignissim malesuada. In dapibus lectus sed nibh adipiscing dictum. Nulla pellentesque convallis auctor. Suspendisse ut purus et nibh pulvinar tincidunt. Maecenas dapibus purus at odio commodo ac cursus risus luctus. Ut quis libero justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam vestibulum ipsum quis ante porttitor porta. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut in ante neque. Donec ante ante, porttitor non egestas a, pulvinar sed sem. Nam augue quam, fringilla sed egestas et, vulputate non nisi.
-</p>
-<p>
-Nunc sit amet arcu ac nulla bibendum sollicitudin. Pellentesque sed ligula urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque egestas, tortor a vestibulum malesuada, ante dui condimentum massa, ac rutrum massa mauris non mi. Praesent in nisi leo. Sed ac augue nisl. Donec eget enim ut arcu posuere condimentum vel id magna. Vestibulum laoreet imperdiet massa, ut venenatis ante dapibus eu. Phasellus faucibus vestibulum eros mollis adipiscing. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque aliquet lectus at enim gravida tempus tincidunt mi porta. Sed vehicula molestie ligula, sed tincidunt diam suscipit vitae.
-</p>
-<p>
-Nullam euismod tempus ante, vel semper turpis pharetra eget. Nulla pretium ante et ipsum dapibus imperdiet. Praesent ipsum velit, gravida sed adipiscing id, condimentum in odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce blandit vehicula felis, pretium ullamcorper leo tempor non. Nunc eget nisi nunc, posuere pellentesque enim. Nunc gravida orci quis odio semper ultricies. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque eu neque a sapien commodo placerat. Aenean non eros semper metus viverra porttitor. Integer vel tortor eu neque commodo ultrices eu quis tellus. Nam commodo sagittis dolor in consequat. Fusce hendrerit turpis eget leo rutrum ut scelerisque nibh condimentum. Fusce sit amet feugiat mauris. Maecenas elementum tellus nec augue rutrum mattis. Sed viverra tempor blandit. Pellentesque adipiscing tincidunt est sit amet tincidunt. Proin suscipit suscipit odio, eu pellentesque dolor pharetra non. Aliquam erat volutpat.
-</p>
-<p>
-Duis pellentesque, enim sed mollis congue, ante mauris feugiat nisi, bibendum euismod erat enim ac magna. Mauris risus nisl, sodales vel viverra ut, interdum sed neque. Nunc ac dignissim felis. Proin tincidunt orci elementum erat molestie suscipit. Cras suscipit, sem ac vehicula vehicula, lorem orci dictum nibh, ut bibendum odio sem non erat. Maecenas quis metus eget mauris feugiat porta a eu ipsum. Vivamus tortor purus, posuere ut luctus sed, ullamcorper feugiat neque. In hac habitasse platea dictumst. Vivamus nec justo vel lacus mattis pellentesque. Nunc vel gravida quam. Etiam at aliquam magna.
-</p>
-<p>
-Sed ac lacus ac felis auctor suscipit. Aliquam lacinia lectus ac nunc placerat aliquam accumsan neque interdum. Aenean in sapien sem. Suspendisse potenti. Aenean congue vulputate scelerisque. Proin eget eros tortor. Morbi rhoncus, mi vitae sollicitudin luctus, est orci porttitor turpis, vitae cursus est dui sed leo. Curabitur erat nunc, placerat bibendum tempus in, blandit eget ipsum. Cras in feugiat ipsum. Vestibulum dapibus quam nec odio pretium non dapibus purus dapibus. Pellentesque vehicula metus bibendum orci ultrices tincidunt. Sed fermentum, neque eget porta tempor, sem neque pulvinar ligula, vitae elementum massa metus eget nunc. Nunc sed orci eu purus sodales fringilla. Quisque aliquet arcu ac dolor ultrices fringilla. Nullam ornare tempus lorem, in mattis magna mollis laoreet. Vestibulum convallis arcu in purus lobortis et sollicitudin ipsum aliquet. Quisque risus est, sagittis eu aliquam ac, condimentum at massa. Fusce consectetur dignissim sem vel ornare. Maecenas posuere ultricies sollicitudin. Duis luctus, purus quis auctor egestas, diam felis scelerisque diam, a varius tellus erat a nunc.
-</p>
-<p>
-Phasellus id ante neque, eget volutpat risus. Vivamus scelerisque, nisi rutrum ultrices varius, sem quam suscipit purus, in elementum nibh nulla nec nisi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus interdum hendrerit mi, nec cursus nisi tempor ac. Phasellus luctus ligula bibendum mauris iaculis id tempor odio volutpat. Nunc in augue metus. Suspendisse at libero at libero lacinia convallis eu vitae metus. Duis eget risus odio. Nam id mi tellus, non vulputate libero. In placerat dictum orci eu pellentesque. Etiam sed varius felis. Phasellus ut adipiscing leo. Morbi ante eros, interdum eget dapibus ac, varius congue nunc. Donec vulputate sapien id risus sodales sit amet pretium velit iaculis. Etiam ultrices tempor euismod.
-</p>
-
-<p>
-Praesent in turpis ut mauris cursus commodo. Mauris lectus tellus, congue sit amet dictum id, convallis ac nisi. Curabitur ante dolor, sagittis ac auctor ac, aliquet vel nisl. Nulla non porta sapien. Nunc non aliquet erat. Vestibulum euismod auctor volutpat. Mauris libero tellus, pharetra eget lacinia sit amet, viverra eget velit. Sed viverra varius velit at pharetra. Sed pharetra dolor sed erat interdum in placerat magna lacinia. Cras venenatis tellus non sapien egestas sollicitudin. Duis congue pharetra lacinia. Curabitur eu diam vel tortor rhoncus dignissim vel sed enim. Proin ut congue mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce viverra elit eu dolor tincidunt tempor vel nec magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-</p>
-<p>
-Sed ligula purus, tristique nec condimentum sed, facilisis ac augue. Integer volutpat velit urna, et posuere ligula. In tempus luctus dignissim. Duis augue neque, egestas ut tincidunt in, congue a enim. Aliquam ut odio dui, id congue tortor. Nullam venenatis erat non nulla tincidunt scelerisque. Morbi in urna ac nulla molestie scelerisque eu a nulla. Aliquam erat volutpat. Praesent dictum scelerisque lorem mattis vehicula. Quisque ut rutrum metus. Mauris pharetra ante vitae nunc mattis vulputate. Mauris molestie volutpat mauris, ut iaculis dui bibendum ac. Ut egestas laoreet est, eget mollis libero laoreet at. In sagittis vestibulum accumsan. Nam dapibus ultrices urna sit amet accumsan. Pellentesque id ultrices elit. Aliquam quis magna ut leo sagittis posuere sit amet id enim. Etiam congue eros sit amet nulla aliquam gravida. In accumsan lectus nibh. Proin volutpat pretium facilisis.
-</p>
-<p>
-Mauris pulvinar erat at quam egestas ac aliquet mi gravida. Integer pellentesque quam vel massa commodo vitae sollicitudin eros volutpat. Aenean mollis felis molestie quam placerat et elementum eros gravida. In hac habitasse platea dictumst. Mauris ullamcorper facilisis eros, nec rutrum mi auctor sed. Ut viverra, orci a viverra ultricies, turpis enim pellentesque urna, sit amet viverra metus enim ut justo. Donec aliquam, urna id condimentum rutrum, nibh nunc tristique magna, at luctus quam enim at turpis. Maecenas dapibus dui ac velit adipiscing fringilla. Nullam malesuada nunc vel lorem cursus sed congue felis lacinia. Pellentesque vehicula gravida est nec facilisis. Nullam imperdiet fringilla orci in dignissim. Praesent orci dolor, vestibulum eu auctor quis, tristique auctor mi. Nunc euismod dui sit amet metus malesuada feugiat. Fusce iaculis neque in velit interdum rhoncus. Aenean at risus ut arcu dapibus congue a tincidunt dolor. Donec porttitor lacus et urna vestibulum a sagittis nunc mollis.
-</p>
-<p>
-In metus tellus, eleifend id aliquet at, pulvinar ut tortor. Aliquam erat volutpat. Vivamus lacus magna, consequat vel euismod sed, viverra a ipsum. Praesent dapibus laoreet nisi, nec posuere massa commodo vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ullamcorper adipiscing ante, dapibus molestie velit cursus id. Nam cursus arcu consectetur lectus sollicitudin gravida. Maecenas urna sapien, fermentum sit amet consectetur at, feugiat ut massa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet ante nec arcu bibendum bibendum ut ut justo. Nulla ut libero est.
-</p>
-<p>
-Aenean sem augue, malesuada quis elementum id, aliquet at turpis. Nam volutpat interdum purus, at dictum risus posuere rhoncus. Praesent metus diam, egestas in lacinia eu, tincidunt in nibh. Phasellus sollicitudin volutpat erat, sit amet mattis sapien fringilla in. Quisque rhoncus, felis a pellentesque dictum, arcu urna molestie sem, ut tincidunt nulla magna in enim. Vestibulum erat nulla, sollicitudin quis faucibus et, blandit quis est. Nam vehicula justo augue. Vivamus elementum sodales aliquet. Donec convallis neque sed dui euismod aliquet. Morbi elementum hendrerit odio, vel mollis felis dignissim vitae. Phasellus a diam lacus. Integer congue, mi vehicula egestas imperdiet, nulla mi commodo tortor, sit amet fermentum urna leo non dolor. Donec elementum elementum urna at sollicitudin. Vestibulum placerat tortor in nibh lobortis ac consectetur felis interdum. Integer faucibus diam nec magna porttitor sit amet dictum elit consectetur. Suspendisse risus velit, pellentesque eget viverra in, porta eget metus. Sed porta elit erat.
-</p>
-<p>
-Nulla facilisi. Aliquam vulputate dolor quis nisi auctor luctus. Fusce vitae scelerisque velit. Sed sit amet tortor a nisi convallis pulvinar et eget sapien. Nulla condimentum auctor velit, a viverra nibh pellentesque eget. Aenean at lacus quam, lobortis posuere justo. Duis et diam in ligula rhoncus pellentesque. Morbi massa tellus, mattis nec condimentum ut, tempus eu lectus. In mi orci, luctus at pulvinar vel, scelerisque nec enim. Vestibulum vehicula odio in augue dignissim tincidunt. Integer ac velit ligula. Integer elit turpis, mattis eget ornare ut, eleifend in magna. Curabitur sagittis dui in felis ultricies gravida.
-
-</p>
-<p>
-Praesent adipiscing rhoncus rutrum. Aenean ultricies auctor risus at fringilla. Mauris quam lectus, ullamcorper sed ultricies at, interdum eget tellus. Vestibulum ac mi erat. Sed ac tellus erat, sed laoreet arcu. Fusce eget ipsum ac sem volutpat viverra. Suspendisse ac felis sit amet purus viverra luctus non eget ipsum. Praesent eleifend euismod tortor, vel malesuada felis consectetur ac. Nunc a mi sit amet nulla venenatis tincidunt. Morbi vitae nisl nulla, nec adipiscing sem. Nullam porttitor scelerisque urna, id dapibus diam malesuada vitae. Duis auctor eleifend lectus, a tempor odio aliquet quis. Nam eu est urna, nec ultricies lectus. Ut egestas aliquet nunc, et hendrerit erat vehicula non. Aliquam tempus faucibus arcu, at vulputate erat tempor eu. Quisque tempus, lectus adipiscing blandit scelerisque, magna felis eleifend odio, non volutpat felis enim sit amet leo. Mauris augue tortor, ultrices ac sagittis non, vulputate quis nisl.
-</p>
-<p>
-Fusce erat sem, dictum in bibendum ac, feugiat ut odio. Duis aliquam felis sit amet diam egestas consectetur. Phasellus consequat, mauris eget venenatis porta, velit sapien malesuada nibh, id dignissim ante tellus vitae lacus. Duis non nisl sit amet nunc euismod posuere. Donec eros erat, fringilla vel iaculis condimentum, vestibulum at neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam lorem sapien, bibendum eu mollis nec, gravida dapibus lectus. Aenean pretium volutpat nunc a placerat. Nullam eget tellus quis ipsum ultrices ullamcorper non eu mauris. Donec volutpat tincidunt elit, sit amet cursus justo elementum quis. Mauris volutpat, enim sit amet tempor commodo, purus lacus luctus dui, sed aliquet ligula nisi vel diam. Donec est elit, lobortis at eleifend id, feugiat egestas massa. Fusce elementum sollicitudin adipiscing. Vivamus et dapibus ipsum. Morbi interdum libero a nisl dignissim sed facilisis ipsum lacinia.
-</p>
-<p>
-Cras a augue dui, vitae tincidunt enim. In hac habitasse platea dictumst. Proin nec magna sed nulla mollis tempus id ut lectus. Morbi volutpat ultricies ipsum, quis imperdiet libero tempor nec. Donec bibendum ornare blandit. Aliquam rutrum risus non turpis commodo non commodo erat molestie. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum, magna vel euismod convallis, mi magna vehicula velit, aliquet rhoncus ipsum massa et nunc. Nullam blandit purus non neque ullamcorper a aliquet nisl tristique. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed sit amet velit magna, sit amet rutrum dui. Donec elementum mi sed velit consectetur vulputate. Sed interdum adipiscing mattis.
-</p>
-
-</body>
-</html>
diff --git a/tests/visual/compound/accordion_tabs.html b/tests/visual/compound/accordion_tabs.html
index ada8e84a7..2bb33238f 100644
--- a/tests/visual/compound/accordion_tabs.html
+++ b/tests/visual/compound/accordion_tabs.html
@@ -1,19 +1,19 @@
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8" />
+ <meta charset="utf-8">
<title>Compound Visual Test : Accordion in Tabs</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.tabs.js"></script>
- <script type="text/javascript">
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.accordion.js"></script>
+ <script src="../../../ui/jquery.ui.tabs.js"></script>
+ <script>
$(function() {
- $('#tabs').tabs();
- $('#accordion-1, #accordion-2').accordion();
+ $( "#accordion-1, #accordion-2" ).accordion();
+ $( "#tabs" ).tabs();
});
</script>
</head>
@@ -26,7 +26,7 @@
</ul>
<div id="tabs-1">
<div id="accordion-1">
- <h3><a href="#">Accordion Header 1</a></h3>
+ <h3>Accordion Header 1</h3>
<div>
<p>Accordion Content 1</p>
<p>Accordion Content 1</p>
@@ -34,7 +34,7 @@
<p>Accordion Content 1</p>
<p>Accordion Content 1</p>
</div>
- <h3><a href="#">Accordion Header 2</a></h3>
+ <h3>Accordion Header 2</h3>
<div>
<p>Accordion Content 2</p>
<p>Accordion Content 2</p>
@@ -42,7 +42,7 @@
<p>Accordion Content 2</p>
<p>Accordion Content 2</p>
</div>
- <h3><a href="#">Accordion Header 3</a></h3>
+ <h3>Accordion Header 3</h3>
<div>
<p>Accordion Content 3</p>
<p>Accordion Content 3</p>
@@ -54,7 +54,7 @@
</div>
<div id="tabs-2">
<div id="accordion-2">
- <h3><a href="#">Accordion Header 1</a></h3>
+ <h3>Accordion Header 1</h3>
<div>
<p>Accordion Content 1</p>
<p>Accordion Content 1</p>
@@ -62,7 +62,7 @@
<p>Accordion Content 1</p>
<p>Accordion Content 1</p>
</div>
- <h3><a href="#">Accordion Header 2</a></h3>
+ <h3>Accordion Header 2</h3>
<div>
<p>Accordion Content 2</p>
<p>Accordion Content 2</p>
@@ -70,7 +70,7 @@
<p>Accordion Content 2</p>
<p>Accordion Content 2</p>
</div>
- <h3><a href="#">Accordion Header 3</a></h3>
+ <h3>Accordion Header 3</h3>
<div>
<p>Accordion Content 3</p>
<p>Accordion Content 3</p>
diff --git a/tests/visual/compound/datepicker_dialog.html b/tests/visual/compound/datepicker_dialog.html
index 885edb4a6..7a11880b1 100644
--- a/tests/visual/compound/datepicker_dialog.html
+++ b/tests/visual/compound/datepicker_dialog.html
@@ -1,23 +1,23 @@
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8" />
+ <meta charset="utf-8">
<title>Compound Visual Test : Datepicker in Dialog</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.resizable.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.draggable.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.datepicker.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.dialog.js"></script>
- <script type="text/javascript">
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../../ui/jquery.ui.position.js"></script>
+ <script src="../../../ui/jquery.ui.resizable.js"></script>
+ <script src="../../../ui/jquery.ui.draggable.js"></script>
+ <script src="../../../ui/jquery.ui.datepicker.js"></script>
+ <script src="../../../ui/jquery.ui.dialog.js"></script>
+ <script>
$(function() {
- $('#datepicker').datepicker();
- $('#dialog').dialog();
+ $( "#datepicker" ).datepicker();
+ $( "#dialog" ).dialog();
});
</script>
</head>
@@ -27,131 +27,5 @@
<input id="datepicker">
</div>
-<p>
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vitae urna quam. Fusce adipiscing erat eget magna malesuada vel mollis ligula ullamcorper. Donec pulvinar, libero et vehicula facilisis, odio orci fringilla magna, non ultricies ipsum justo a tellus. Proin facilisis magna vitae quam vestibulum tempor. Aenean semper placerat posuere. In nisi diam, ullamcorper sit amet viverra sed, pretium sed neque. Sed posuere vulputate mauris vitae placerat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam in odio elit, non tempor felis. Integer non iaculis ante. Sed erat mauris, aliquam nec consequat id, congue id libero. Maecenas elementum gravida tincidunt. Suspendisse lacinia enim sit amet nulla cursus pulvinar.
-</p>
-<p>
-Proin ut sem nulla, at cursus sapien. Duis sagittis lacus vitae justo mattis in sagittis ligula eleifend. Curabitur sit amet felis pharetra justo facilisis mollis eget nec massa. Sed nisi urna, semper lobortis pretium ac, interdum nec lacus. In gravida, leo sit amet vehicula malesuada, augue nunc consectetur nulla, vel tincidunt est nunc aliquet neque. Maecenas imperdiet eros id ligula tempor dapibus. Integer commodo metus sit amet quam vestibulum volutpat. In et lorem ac leo rhoncus auctor sit amet ut urna. Nulla sed nisl quis turpis vestibulum accumsan. Duis mollis aliquam sollicitudin. Pellentesque porta semper interdum. Sed eros orci, congue quis sollicitudin ut, rutrum vitae nibh. Nunc et leo non ligula interdum imperdiet. Integer tincidunt rhoncus ullamcorper. Curabitur et ullamcorper lorem. Ut at tellus eu metus congue sollicitudin eget at orci.
-</p>
-<p>
-Duis sem mauris, pulvinar quis placerat vel, aliquet non leo. Cras eros arcu, ullamcorper sit amet imperdiet at, blandit interdum augue. Phasellus non nunc ac ante condimentum tristique vitae sed urna. Integer nec sapien et dolor volutpat bibendum ac vitae justo. Aliquam gravida fermentum felis, nec dictum dui dictum ac. Maecenas eget magna leo. Phasellus ac nulla risus, dapibus ornare turpis. Morbi a massa tortor. Duis ac turpis lacus. Duis nibh metus, euismod quis ultrices vitae, sollicitudin vel leo. Nullam volutpat odio ac elit imperdiet gravida.
-</p>
-<p>
-Donec luctus magna id ipsum aliquam eget convallis tortor tristique. Etiam est quam, aliquam ac rutrum quis, pretium sed tortor. Aliquam lacus diam, rhoncus molestie convallis ut, luctus ac lacus. Nunc porttitor ante a ligula rutrum elementum. Cras dui tellus, pulvinar vel convallis sit amet, facilisis nec ipsum. Donec fermentum lectus lorem, id accumsan eros. Nunc semper laoreet lacus quis ullamcorper. Nunc luctus erat vitae orci sodales facilisis non ut felis. Aliquam pretium sapien sed enim adipiscing in feugiat est ornare. Aenean ultricies convallis tortor sit amet ullamcorper.
-</p>
-<p>
-Etiam ultricies elit non enim elementum aliquet. Vivamus quis fringilla mauris. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc blandit felis at massa interdum ac molestie lectus volutpat. Mauris commodo nibh id sem porta id feugiat ante euismod. Nullam fermentum libero varius turpis pharetra cursus ut sed lacus. Mauris molestie egestas augue eu bibendum. Quisque pulvinar, leo luctus vehicula faucibus, quam mi ornare dui, a rhoncus nisi eros nec dolor. Sed dictum ultricies ipsum eu ultrices. Etiam semper condimentum nibh in tempor.
-</p>
-<p>
-
-Vivamus interdum ligula nec neque sollicitudin ornare. Vestibulum a eros eget nisi accumsan hendrerit quis sit amet ipsum. Phasellus condimentum vestibulum felis eu hendrerit. Suspendisse in est tellus, et consequat ante. Nam at sapien lobortis risus dignissim malesuada. In dapibus lectus sed nibh adipiscing dictum. Nulla pellentesque convallis auctor. Suspendisse ut purus et nibh pulvinar tincidunt. Maecenas dapibus purus at odio commodo ac cursus risus luctus. Ut quis libero justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam vestibulum ipsum quis ante porttitor porta. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut in ante neque. Donec ante ante, porttitor non egestas a, pulvinar sed sem. Nam augue quam, fringilla sed egestas et, vulputate non nisi.
-</p>
-<p>
-Nunc sit amet arcu ac nulla bibendum sollicitudin. Pellentesque sed ligula urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque egestas, tortor a vestibulum malesuada, ante dui condimentum massa, ac rutrum massa mauris non mi. Praesent in nisi leo. Sed ac augue nisl. Donec eget enim ut arcu posuere condimentum vel id magna. Vestibulum laoreet imperdiet massa, ut venenatis ante dapibus eu. Phasellus faucibus vestibulum eros mollis adipiscing. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque aliquet lectus at enim gravida tempus tincidunt mi porta. Sed vehicula molestie ligula, sed tincidunt diam suscipit vitae.
-</p>
-<p>
-Nullam euismod tempus ante, vel semper turpis pharetra eget. Nulla pretium ante et ipsum dapibus imperdiet. Praesent ipsum velit, gravida sed adipiscing id, condimentum in odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce blandit vehicula felis, pretium ullamcorper leo tempor non. Nunc eget nisi nunc, posuere pellentesque enim. Nunc gravida orci quis odio semper ultricies. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque eu neque a sapien commodo placerat. Aenean non eros semper metus viverra porttitor. Integer vel tortor eu neque commodo ultrices eu quis tellus. Nam commodo sagittis dolor in consequat. Fusce hendrerit turpis eget leo rutrum ut scelerisque nibh condimentum. Fusce sit amet feugiat mauris. Maecenas elementum tellus nec augue rutrum mattis. Sed viverra tempor blandit. Pellentesque adipiscing tincidunt est sit amet tincidunt. Proin suscipit suscipit odio, eu pellentesque dolor pharetra non. Aliquam erat volutpat.
-</p>
-<p>
-Duis pellentesque, enim sed mollis congue, ante mauris feugiat nisi, bibendum euismod erat enim ac magna. Mauris risus nisl, sodales vel viverra ut, interdum sed neque. Nunc ac dignissim felis. Proin tincidunt orci elementum erat molestie suscipit. Cras suscipit, sem ac vehicula vehicula, lorem orci dictum nibh, ut bibendum odio sem non erat. Maecenas quis metus eget mauris feugiat porta a eu ipsum. Vivamus tortor purus, posuere ut luctus sed, ullamcorper feugiat neque. In hac habitasse platea dictumst. Vivamus nec justo vel lacus mattis pellentesque. Nunc vel gravida quam. Etiam at aliquam magna.
-</p>
-<p>
-Sed ac lacus ac felis auctor suscipit. Aliquam lacinia lectus ac nunc placerat aliquam accumsan neque interdum. Aenean in sapien sem. Suspendisse potenti. Aenean congue vulputate scelerisque. Proin eget eros tortor. Morbi rhoncus, mi vitae sollicitudin luctus, est orci porttitor turpis, vitae cursus est dui sed leo. Curabitur erat nunc, placerat bibendum tempus in, blandit eget ipsum. Cras in feugiat ipsum. Vestibulum dapibus quam nec odio pretium non dapibus purus dapibus. Pellentesque vehicula metus bibendum orci ultrices tincidunt. Sed fermentum, neque eget porta tempor, sem neque pulvinar ligula, vitae elementum massa metus eget nunc. Nunc sed orci eu purus sodales fringilla. Quisque aliquet arcu ac dolor ultrices fringilla. Nullam ornare tempus lorem, in mattis magna mollis laoreet. Vestibulum convallis arcu in purus lobortis et sollicitudin ipsum aliquet. Quisque risus est, sagittis eu aliquam ac, condimentum at massa. Fusce consectetur dignissim sem vel ornare. Maecenas posuere ultricies sollicitudin. Duis luctus, purus quis auctor egestas, diam felis scelerisque diam, a varius tellus erat a nunc.
-</p>
-<p>
-Phasellus id ante neque, eget volutpat risus. Vivamus scelerisque, nisi rutrum ultrices varius, sem quam suscipit purus, in elementum nibh nulla nec nisi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus interdum hendrerit mi, nec cursus nisi tempor ac. Phasellus luctus ligula bibendum mauris iaculis id tempor odio volutpat. Nunc in augue metus. Suspendisse at libero at libero lacinia convallis eu vitae metus. Duis eget risus odio. Nam id mi tellus, non vulputate libero. In placerat dictum orci eu pellentesque. Etiam sed varius felis. Phasellus ut adipiscing leo. Morbi ante eros, interdum eget dapibus ac, varius congue nunc. Donec vulputate sapien id risus sodales sit amet pretium velit iaculis. Etiam ultrices tempor euismod.
-</p>
-
-<p>
-Praesent in turpis ut mauris cursus commodo. Mauris lectus tellus, congue sit amet dictum id, convallis ac nisi. Curabitur ante dolor, sagittis ac auctor ac, aliquet vel nisl. Nulla non porta sapien. Nunc non aliquet erat. Vestibulum euismod auctor volutpat. Mauris libero tellus, pharetra eget lacinia sit amet, viverra eget velit. Sed viverra varius velit at pharetra. Sed pharetra dolor sed erat interdum in placerat magna lacinia. Cras venenatis tellus non sapien egestas sollicitudin. Duis congue pharetra lacinia. Curabitur eu diam vel tortor rhoncus dignissim vel sed enim. Proin ut congue mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce viverra elit eu dolor tincidunt tempor vel nec magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-</p>
-<p>
-Sed ligula purus, tristique nec condimentum sed, facilisis ac augue. Integer volutpat velit urna, et posuere ligula. In tempus luctus dignissim. Duis augue neque, egestas ut tincidunt in, congue a enim. Aliquam ut odio dui, id congue tortor. Nullam venenatis erat non nulla tincidunt scelerisque. Morbi in urna ac nulla molestie scelerisque eu a nulla. Aliquam erat volutpat. Praesent dictum scelerisque lorem mattis vehicula. Quisque ut rutrum metus. Mauris pharetra ante vitae nunc mattis vulputate. Mauris molestie volutpat mauris, ut iaculis dui bibendum ac. Ut egestas laoreet est, eget mollis libero laoreet at. In sagittis vestibulum accumsan. Nam dapibus ultrices urna sit amet accumsan. Pellentesque id ultrices elit. Aliquam quis magna ut leo sagittis posuere sit amet id enim. Etiam congue eros sit amet nulla aliquam gravida. In accumsan lectus nibh. Proin volutpat pretium facilisis.
-</p>
-<p>
-Mauris pulvinar erat at quam egestas ac aliquet mi gravida. Integer pellentesque quam vel massa commodo vitae sollicitudin eros volutpat. Aenean mollis felis molestie quam placerat et elementum eros gravida. In hac habitasse platea dictumst. Mauris ullamcorper facilisis eros, nec rutrum mi auctor sed. Ut viverra, orci a viverra ultricies, turpis enim pellentesque urna, sit amet viverra metus enim ut justo. Donec aliquam, urna id condimentum rutrum, nibh nunc tristique magna, at luctus quam enim at turpis. Maecenas dapibus dui ac velit adipiscing fringilla. Nullam malesuada nunc vel lorem cursus sed congue felis lacinia. Pellentesque vehicula gravida est nec facilisis. Nullam imperdiet fringilla orci in dignissim. Praesent orci dolor, vestibulum eu auctor quis, tristique auctor mi. Nunc euismod dui sit amet metus malesuada feugiat. Fusce iaculis neque in velit interdum rhoncus. Aenean at risus ut arcu dapibus congue a tincidunt dolor. Donec porttitor lacus et urna vestibulum a sagittis nunc mollis.
-</p>
-<p>
-In metus tellus, eleifend id aliquet at, pulvinar ut tortor. Aliquam erat volutpat. Vivamus lacus magna, consequat vel euismod sed, viverra a ipsum. Praesent dapibus laoreet nisi, nec posuere massa commodo vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ullamcorper adipiscing ante, dapibus molestie velit cursus id. Nam cursus arcu consectetur lectus sollicitudin gravida. Maecenas urna sapien, fermentum sit amet consectetur at, feugiat ut massa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet ante nec arcu bibendum bibendum ut ut justo. Nulla ut libero est.
-</p>
-<p>
-Aenean sem augue, malesuada quis elementum id, aliquet at turpis. Nam volutpat interdum purus, at dictum risus posuere rhoncus. Praesent metus diam, egestas in lacinia eu, tincidunt in nibh. Phasellus sollicitudin volutpat erat, sit amet mattis sapien fringilla in. Quisque rhoncus, felis a pellentesque dictum, arcu urna molestie sem, ut tincidunt nulla magna in enim. Vestibulum erat nulla, sollicitudin quis faucibus et, blandit quis est. Nam vehicula justo augue. Vivamus elementum sodales aliquet. Donec convallis neque sed dui euismod aliquet. Morbi elementum hendrerit odio, vel mollis felis dignissim vitae. Phasellus a diam lacus. Integer congue, mi vehicula egestas imperdiet, nulla mi commodo tortor, sit amet fermentum urna leo non dolor. Donec elementum elementum urna at sollicitudin. Vestibulum placerat tortor in nibh lobortis ac consectetur felis interdum. Integer faucibus diam nec magna porttitor sit amet dictum elit consectetur. Suspendisse risus velit, pellentesque eget viverra in, porta eget metus. Sed porta elit erat.
-</p>
-<p>
-Nulla facilisi. Aliquam vulputate dolor quis nisi auctor luctus. Fusce vitae scelerisque velit. Sed sit amet tortor a nisi convallis pulvinar et eget sapien. Nulla condimentum auctor velit, a viverra nibh pellentesque eget. Aenean at lacus quam, lobortis posuere justo. Duis et diam in ligula rhoncus pellentesque. Morbi massa tellus, mattis nec condimentum ut, tempus eu lectus. In mi orci, luctus at pulvinar vel, scelerisque nec enim. Vestibulum vehicula odio in augue dignissim tincidunt. Integer ac velit ligula. Integer elit turpis, mattis eget ornare ut, eleifend in magna. Curabitur sagittis dui in felis ultricies gravida.
-
-</p>
-<p>
-Praesent adipiscing rhoncus rutrum. Aenean ultricies auctor risus at fringilla. Mauris quam lectus, ullamcorper sed ultricies at, interdum eget tellus. Vestibulum ac mi erat. Sed ac tellus erat, sed laoreet arcu. Fusce eget ipsum ac sem volutpat viverra. Suspendisse ac felis sit amet purus viverra luctus non eget ipsum. Praesent eleifend euismod tortor, vel malesuada felis consectetur ac. Nunc a mi sit amet nulla venenatis tincidunt. Morbi vitae nisl nulla, nec adipiscing sem. Nullam porttitor scelerisque urna, id dapibus diam malesuada vitae. Duis auctor eleifend lectus, a tempor odio aliquet quis. Nam eu est urna, nec ultricies lectus. Ut egestas aliquet nunc, et hendrerit erat vehicula non. Aliquam tempus faucibus arcu, at vulputate erat tempor eu. Quisque tempus, lectus adipiscing blandit scelerisque, magna felis eleifend odio, non volutpat felis enim sit amet leo. Mauris augue tortor, ultrices ac sagittis non, vulputate quis nisl.
-</p>
-<p>
-Fusce erat sem, dictum in bibendum ac, feugiat ut odio. Duis aliquam felis sit amet diam egestas consectetur. Phasellus consequat, mauris eget venenatis porta, velit sapien malesuada nibh, id dignissim ante tellus vitae lacus. Duis non nisl sit amet nunc euismod posuere. Donec eros erat, fringilla vel iaculis condimentum, vestibulum at neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam lorem sapien, bibendum eu mollis nec, gravida dapibus lectus. Aenean pretium volutpat nunc a placerat. Nullam eget tellus quis ipsum ultrices ullamcorper non eu mauris. Donec volutpat tincidunt elit, sit amet cursus justo elementum quis. Mauris volutpat, enim sit amet tempor commodo, purus lacus luctus dui, sed aliquet ligula nisi vel diam. Donec est elit, lobortis at eleifend id, feugiat egestas massa. Fusce elementum sollicitudin adipiscing. Vivamus et dapibus ipsum. Morbi interdum libero a nisl dignissim sed facilisis ipsum lacinia.
-</p>
-<p>
-Cras a augue dui, vitae tincidunt enim. In hac habitasse platea dictumst. Proin nec magna sed nulla mollis tempus id ut lectus. Morbi volutpat ultricies ipsum, quis imperdiet libero tempor nec. Donec bibendum ornare blandit. Aliquam rutrum risus non turpis commodo non commodo erat molestie. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum, magna vel euismod convallis, mi magna vehicula velit, aliquet rhoncus ipsum massa et nunc. Nullam blandit purus non neque ullamcorper a aliquet nisl tristique. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed sit amet velit magna, sit amet rutrum dui. Donec elementum mi sed velit consectetur vulputate. Sed interdum adipiscing mattis.
-</p>
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vitae urna quam. Fusce adipiscing erat eget magna malesuada vel mollis ligula ullamcorper. Donec pulvinar, libero et vehicula facilisis, odio orci fringilla magna, non ultricies ipsum justo a tellus. Proin facilisis magna vitae quam vestibulum tempor. Aenean semper placerat posuere. In nisi diam, ullamcorper sit amet viverra sed, pretium sed neque. Sed posuere vulputate mauris vitae placerat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam in odio elit, non tempor felis. Integer non iaculis ante. Sed erat mauris, aliquam nec consequat id, congue id libero. Maecenas elementum gravida tincidunt. Suspendisse lacinia enim sit amet nulla cursus pulvinar.
-</p>
-<p>
-Proin ut sem nulla, at cursus sapien. Duis sagittis lacus vitae justo mattis in sagittis ligula eleifend. Curabitur sit amet felis pharetra justo facilisis mollis eget nec massa. Sed nisi urna, semper lobortis pretium ac, interdum nec lacus. In gravida, leo sit amet vehicula malesuada, augue nunc consectetur nulla, vel tincidunt est nunc aliquet neque. Maecenas imperdiet eros id ligula tempor dapibus. Integer commodo metus sit amet quam vestibulum volutpat. In et lorem ac leo rhoncus auctor sit amet ut urna. Nulla sed nisl quis turpis vestibulum accumsan. Duis mollis aliquam sollicitudin. Pellentesque porta semper interdum. Sed eros orci, congue quis sollicitudin ut, rutrum vitae nibh. Nunc et leo non ligula interdum imperdiet. Integer tincidunt rhoncus ullamcorper. Curabitur et ullamcorper lorem. Ut at tellus eu metus congue sollicitudin eget at orci.
-</p>
-<p>
-Duis sem mauris, pulvinar quis placerat vel, aliquet non leo. Cras eros arcu, ullamcorper sit amet imperdiet at, blandit interdum augue. Phasellus non nunc ac ante condimentum tristique vitae sed urna. Integer nec sapien et dolor volutpat bibendum ac vitae justo. Aliquam gravida fermentum felis, nec dictum dui dictum ac. Maecenas eget magna leo. Phasellus ac nulla risus, dapibus ornare turpis. Morbi a massa tortor. Duis ac turpis lacus. Duis nibh metus, euismod quis ultrices vitae, sollicitudin vel leo. Nullam volutpat odio ac elit imperdiet gravida.
-</p>
-<p>
-Donec luctus magna id ipsum aliquam eget convallis tortor tristique. Etiam est quam, aliquam ac rutrum quis, pretium sed tortor. Aliquam lacus diam, rhoncus molestie convallis ut, luctus ac lacus. Nunc porttitor ante a ligula rutrum elementum. Cras dui tellus, pulvinar vel convallis sit amet, facilisis nec ipsum. Donec fermentum lectus lorem, id accumsan eros. Nunc semper laoreet lacus quis ullamcorper. Nunc luctus erat vitae orci sodales facilisis non ut felis. Aliquam pretium sapien sed enim adipiscing in feugiat est ornare. Aenean ultricies convallis tortor sit amet ullamcorper.
-</p>
-<p>
-Etiam ultricies elit non enim elementum aliquet. Vivamus quis fringilla mauris. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc blandit felis at massa interdum ac molestie lectus volutpat. Mauris commodo nibh id sem porta id feugiat ante euismod. Nullam fermentum libero varius turpis pharetra cursus ut sed lacus. Mauris molestie egestas augue eu bibendum. Quisque pulvinar, leo luctus vehicula faucibus, quam mi ornare dui, a rhoncus nisi eros nec dolor. Sed dictum ultricies ipsum eu ultrices. Etiam semper condimentum nibh in tempor.
-</p>
-<p>
-
-Vivamus interdum ligula nec neque sollicitudin ornare. Vestibulum a eros eget nisi accumsan hendrerit quis sit amet ipsum. Phasellus condimentum vestibulum felis eu hendrerit. Suspendisse in est tellus, et consequat ante. Nam at sapien lobortis risus dignissim malesuada. In dapibus lectus sed nibh adipiscing dictum. Nulla pellentesque convallis auctor. Suspendisse ut purus et nibh pulvinar tincidunt. Maecenas dapibus purus at odio commodo ac cursus risus luctus. Ut quis libero justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam vestibulum ipsum quis ante porttitor porta. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut in ante neque. Donec ante ante, porttitor non egestas a, pulvinar sed sem. Nam augue quam, fringilla sed egestas et, vulputate non nisi.
-</p>
-<p>
-Nunc sit amet arcu ac nulla bibendum sollicitudin. Pellentesque sed ligula urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque egestas, tortor a vestibulum malesuada, ante dui condimentum massa, ac rutrum massa mauris non mi. Praesent in nisi leo. Sed ac augue nisl. Donec eget enim ut arcu posuere condimentum vel id magna. Vestibulum laoreet imperdiet massa, ut venenatis ante dapibus eu. Phasellus faucibus vestibulum eros mollis adipiscing. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque aliquet lectus at enim gravida tempus tincidunt mi porta. Sed vehicula molestie ligula, sed tincidunt diam suscipit vitae.
-</p>
-<p>
-Nullam euismod tempus ante, vel semper turpis pharetra eget. Nulla pretium ante et ipsum dapibus imperdiet. Praesent ipsum velit, gravida sed adipiscing id, condimentum in odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce blandit vehicula felis, pretium ullamcorper leo tempor non. Nunc eget nisi nunc, posuere pellentesque enim. Nunc gravida orci quis odio semper ultricies. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque eu neque a sapien commodo placerat. Aenean non eros semper metus viverra porttitor. Integer vel tortor eu neque commodo ultrices eu quis tellus. Nam commodo sagittis dolor in consequat. Fusce hendrerit turpis eget leo rutrum ut scelerisque nibh condimentum. Fusce sit amet feugiat mauris. Maecenas elementum tellus nec augue rutrum mattis. Sed viverra tempor blandit. Pellentesque adipiscing tincidunt est sit amet tincidunt. Proin suscipit suscipit odio, eu pellentesque dolor pharetra non. Aliquam erat volutpat.
-</p>
-<p>
-Duis pellentesque, enim sed mollis congue, ante mauris feugiat nisi, bibendum euismod erat enim ac magna. Mauris risus nisl, sodales vel viverra ut, interdum sed neque. Nunc ac dignissim felis. Proin tincidunt orci elementum erat molestie suscipit. Cras suscipit, sem ac vehicula vehicula, lorem orci dictum nibh, ut bibendum odio sem non erat. Maecenas quis metus eget mauris feugiat porta a eu ipsum. Vivamus tortor purus, posuere ut luctus sed, ullamcorper feugiat neque. In hac habitasse platea dictumst. Vivamus nec justo vel lacus mattis pellentesque. Nunc vel gravida quam. Etiam at aliquam magna.
-</p>
-<p>
-Sed ac lacus ac felis auctor suscipit. Aliquam lacinia lectus ac nunc placerat aliquam accumsan neque interdum. Aenean in sapien sem. Suspendisse potenti. Aenean congue vulputate scelerisque. Proin eget eros tortor. Morbi rhoncus, mi vitae sollicitudin luctus, est orci porttitor turpis, vitae cursus est dui sed leo. Curabitur erat nunc, placerat bibendum tempus in, blandit eget ipsum. Cras in feugiat ipsum. Vestibulum dapibus quam nec odio pretium non dapibus purus dapibus. Pellentesque vehicula metus bibendum orci ultrices tincidunt. Sed fermentum, neque eget porta tempor, sem neque pulvinar ligula, vitae elementum massa metus eget nunc. Nunc sed orci eu purus sodales fringilla. Quisque aliquet arcu ac dolor ultrices fringilla. Nullam ornare tempus lorem, in mattis magna mollis laoreet. Vestibulum convallis arcu in purus lobortis et sollicitudin ipsum aliquet. Quisque risus est, sagittis eu aliquam ac, condimentum at massa. Fusce consectetur dignissim sem vel ornare. Maecenas posuere ultricies sollicitudin. Duis luctus, purus quis auctor egestas, diam felis scelerisque diam, a varius tellus erat a nunc.
-</p>
-<p>
-Phasellus id ante neque, eget volutpat risus. Vivamus scelerisque, nisi rutrum ultrices varius, sem quam suscipit purus, in elementum nibh nulla nec nisi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus interdum hendrerit mi, nec cursus nisi tempor ac. Phasellus luctus ligula bibendum mauris iaculis id tempor odio volutpat. Nunc in augue metus. Suspendisse at libero at libero lacinia convallis eu vitae metus. Duis eget risus odio. Nam id mi tellus, non vulputate libero. In placerat dictum orci eu pellentesque. Etiam sed varius felis. Phasellus ut adipiscing leo. Morbi ante eros, interdum eget dapibus ac, varius congue nunc. Donec vulputate sapien id risus sodales sit amet pretium velit iaculis. Etiam ultrices tempor euismod.
-</p>
-
-<p>
-Praesent in turpis ut mauris cursus commodo. Mauris lectus tellus, congue sit amet dictum id, convallis ac nisi. Curabitur ante dolor, sagittis ac auctor ac, aliquet vel nisl. Nulla non porta sapien. Nunc non aliquet erat. Vestibulum euismod auctor volutpat. Mauris libero tellus, pharetra eget lacinia sit amet, viverra eget velit. Sed viverra varius velit at pharetra. Sed pharetra dolor sed erat interdum in placerat magna lacinia. Cras venenatis tellus non sapien egestas sollicitudin. Duis congue pharetra lacinia. Curabitur eu diam vel tortor rhoncus dignissim vel sed enim. Proin ut congue mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce viverra elit eu dolor tincidunt tempor vel nec magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-</p>
-<p>
-Sed ligula purus, tristique nec condimentum sed, facilisis ac augue. Integer volutpat velit urna, et posuere ligula. In tempus luctus dignissim. Duis augue neque, egestas ut tincidunt in, congue a enim. Aliquam ut odio dui, id congue tortor. Nullam venenatis erat non nulla tincidunt scelerisque. Morbi in urna ac nulla molestie scelerisque eu a nulla. Aliquam erat volutpat. Praesent dictum scelerisque lorem mattis vehicula. Quisque ut rutrum metus. Mauris pharetra ante vitae nunc mattis vulputate. Mauris molestie volutpat mauris, ut iaculis dui bibendum ac. Ut egestas laoreet est, eget mollis libero laoreet at. In sagittis vestibulum accumsan. Nam dapibus ultrices urna sit amet accumsan. Pellentesque id ultrices elit. Aliquam quis magna ut leo sagittis posuere sit amet id enim. Etiam congue eros sit amet nulla aliquam gravida. In accumsan lectus nibh. Proin volutpat pretium facilisis.
-</p>
-<p>
-Mauris pulvinar erat at quam egestas ac aliquet mi gravida. Integer pellentesque quam vel massa commodo vitae sollicitudin eros volutpat. Aenean mollis felis molestie quam placerat et elementum eros gravida. In hac habitasse platea dictumst. Mauris ullamcorper facilisis eros, nec rutrum mi auctor sed. Ut viverra, orci a viverra ultricies, turpis enim pellentesque urna, sit amet viverra metus enim ut justo. Donec aliquam, urna id condimentum rutrum, nibh nunc tristique magna, at luctus quam enim at turpis. Maecenas dapibus dui ac velit adipiscing fringilla. Nullam malesuada nunc vel lorem cursus sed congue felis lacinia. Pellentesque vehicula gravida est nec facilisis. Nullam imperdiet fringilla orci in dignissim. Praesent orci dolor, vestibulum eu auctor quis, tristique auctor mi. Nunc euismod dui sit amet metus malesuada feugiat. Fusce iaculis neque in velit interdum rhoncus. Aenean at risus ut arcu dapibus congue a tincidunt dolor. Donec porttitor lacus et urna vestibulum a sagittis nunc mollis.
-</p>
-<p>
-In metus tellus, eleifend id aliquet at, pulvinar ut tortor. Aliquam erat volutpat. Vivamus lacus magna, consequat vel euismod sed, viverra a ipsum. Praesent dapibus laoreet nisi, nec posuere massa commodo vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ullamcorper adipiscing ante, dapibus molestie velit cursus id. Nam cursus arcu consectetur lectus sollicitudin gravida. Maecenas urna sapien, fermentum sit amet consectetur at, feugiat ut massa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet ante nec arcu bibendum bibendum ut ut justo. Nulla ut libero est.
-</p>
-<p>
-Aenean sem augue, malesuada quis elementum id, aliquet at turpis. Nam volutpat interdum purus, at dictum risus posuere rhoncus. Praesent metus diam, egestas in lacinia eu, tincidunt in nibh. Phasellus sollicitudin volutpat erat, sit amet mattis sapien fringilla in. Quisque rhoncus, felis a pellentesque dictum, arcu urna molestie sem, ut tincidunt nulla magna in enim. Vestibulum erat nulla, sollicitudin quis faucibus et, blandit quis est. Nam vehicula justo augue. Vivamus elementum sodales aliquet. Donec convallis neque sed dui euismod aliquet. Morbi elementum hendrerit odio, vel mollis felis dignissim vitae. Phasellus a diam lacus. Integer congue, mi vehicula egestas imperdiet, nulla mi commodo tortor, sit amet fermentum urna leo non dolor. Donec elementum elementum urna at sollicitudin. Vestibulum placerat tortor in nibh lobortis ac consectetur felis interdum. Integer faucibus diam nec magna porttitor sit amet dictum elit consectetur. Suspendisse risus velit, pellentesque eget viverra in, porta eget metus. Sed porta elit erat.
-</p>
-<p>
-Nulla facilisi. Aliquam vulputate dolor quis nisi auctor luctus. Fusce vitae scelerisque velit. Sed sit amet tortor a nisi convallis pulvinar et eget sapien. Nulla condimentum auctor velit, a viverra nibh pellentesque eget. Aenean at lacus quam, lobortis posuere justo. Duis et diam in ligula rhoncus pellentesque. Morbi massa tellus, mattis nec condimentum ut, tempus eu lectus. In mi orci, luctus at pulvinar vel, scelerisque nec enim. Vestibulum vehicula odio in augue dignissim tincidunt. Integer ac velit ligula. Integer elit turpis, mattis eget ornare ut, eleifend in magna. Curabitur sagittis dui in felis ultricies gravida.
-
-</p>
-<p>
-Praesent adipiscing rhoncus rutrum. Aenean ultricies auctor risus at fringilla. Mauris quam lectus, ullamcorper sed ultricies at, interdum eget tellus. Vestibulum ac mi erat. Sed ac tellus erat, sed laoreet arcu. Fusce eget ipsum ac sem volutpat viverra. Suspendisse ac felis sit amet purus viverra luctus non eget ipsum. Praesent eleifend euismod tortor, vel malesuada felis consectetur ac. Nunc a mi sit amet nulla venenatis tincidunt. Morbi vitae nisl nulla, nec adipiscing sem. Nullam porttitor scelerisque urna, id dapibus diam malesuada vitae. Duis auctor eleifend lectus, a tempor odio aliquet quis. Nam eu est urna, nec ultricies lectus. Ut egestas aliquet nunc, et hendrerit erat vehicula non. Aliquam tempus faucibus arcu, at vulputate erat tempor eu. Quisque tempus, lectus adipiscing blandit scelerisque, magna felis eleifend odio, non volutpat felis enim sit amet leo. Mauris augue tortor, ultrices ac sagittis non, vulputate quis nisl.
-</p>
-<p>
-Fusce erat sem, dictum in bibendum ac, feugiat ut odio. Duis aliquam felis sit amet diam egestas consectetur. Phasellus consequat, mauris eget venenatis porta, velit sapien malesuada nibh, id dignissim ante tellus vitae lacus. Duis non nisl sit amet nunc euismod posuere. Donec eros erat, fringilla vel iaculis condimentum, vestibulum at neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam lorem sapien, bibendum eu mollis nec, gravida dapibus lectus. Aenean pretium volutpat nunc a placerat. Nullam eget tellus quis ipsum ultrices ullamcorper non eu mauris. Donec volutpat tincidunt elit, sit amet cursus justo elementum quis. Mauris volutpat, enim sit amet tempor commodo, purus lacus luctus dui, sed aliquet ligula nisi vel diam. Donec est elit, lobortis at eleifend id, feugiat egestas massa. Fusce elementum sollicitudin adipiscing. Vivamus et dapibus ipsum. Morbi interdum libero a nisl dignissim sed facilisis ipsum lacinia.
-</p>
-<p>
-Cras a augue dui, vitae tincidunt enim. In hac habitasse platea dictumst. Proin nec magna sed nulla mollis tempus id ut lectus. Morbi volutpat ultricies ipsum, quis imperdiet libero tempor nec. Donec bibendum ornare blandit. Aliquam rutrum risus non turpis commodo non commodo erat molestie. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum, magna vel euismod convallis, mi magna vehicula velit, aliquet rhoncus ipsum massa et nunc. Nullam blandit purus non neque ullamcorper a aliquet nisl tristique. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed sit amet velit magna, sit amet rutrum dui. Donec elementum mi sed velit consectetur vulputate. Sed interdum adipiscing mattis.
-</p>
-
</body>
</html>
diff --git a/tests/visual/compound/dialog_widgets.html b/tests/visual/compound/dialog_widgets.html
new file mode 100644
index 000000000..bd8c237fc
--- /dev/null
+++ b/tests/visual/compound/dialog_widgets.html
@@ -0,0 +1,101 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Compound Visual Test : All Widgets in Dialog</title>
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../../ui/jquery.ui.position.js"></script>
+ <script src="../../../ui/jquery.ui.menu.js"></script>
+ <script src="../../../ui/jquery.ui.resizable.js"></script>
+ <script src="../../../ui/jquery.ui.draggable.js"></script>
+ <script src="../../../ui/jquery.ui.accordion.js"></script>
+ <script src="../../../ui/jquery.ui.autocomplete.js"></script>
+ <script src="../../../ui/jquery.ui.button.js"></script>
+ <script src="../../../ui/jquery.ui.datepicker.js"></script>
+ <script src="../../../ui/jquery.ui.dialog.js"></script>
+ <script src="../../../ui/jquery.ui.progressbar.js"></script>
+ <script src="../../../ui/jquery.ui.slider.js"></script>
+ <script src="../../../ui/jquery.ui.tabs.js"></script>
+ <script src="../../../ui/jquery.ui.tooltip.js"></script>
+ <script>
+ $(function() {
+ $( "[title]" ).tooltip();
+ $( "#accordion" ).accordion();
+ $( "#autocomplete" ).autocomplete({
+ source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl" ]
+ });
+ $( "button" ).button().click(function() {
+ $( "#dialog2" ).dialog( "open" );
+ });
+ $( "#datepicker" ).datepicker();
+ $( "#progressbar" ).progressbar({
+ value: 30
+ });
+ $( "#slider" ).slider({
+ animate: true,
+ value: 30,
+ slide: function(event, ui) {
+ $( "#progress" ).val( ui.value );
+ $( "#progressbar" ).progressbar( "option", "value", ui.value );
+ }
+ });
+ $( "#tabs" ).tabs();
+ $( "#dialog" ).dialog();
+ $( "#dialog2" ).dialog({
+ autoOpen: false,
+ width: 100,
+ height: 75,
+ modal: true
+ });
+ });
+ </script>
+</head>
+<body>
+
+<div id="dialog">
+ <div id="accordion">
+ <h3>Accordion Header 1</h3>
+ <div>
+ Accordion Content 1
+ </div>
+ <h3>Accordion Header 2</h3>
+ <div>
+ Accordion Content 2
+ </div>
+ <h3>Accordion Header 3</h3>
+ <div>
+ Accordion Content 3
+ </div>
+ </div>
+ <input id="autocomplete">
+ <button>A Button</button>
+ <input id="datepicker">
+ <button>Another button</button>
+ <div>
+ <label for="progress">Progress: <input title="The progress we made so far" id="progress"></label>
+ </div>
+ <div id="progressbar">
+ </div>
+ <div id="slider" title="Sliding progress..."></div>
+ <div id="tabs">
+ <ul>
+ <li><a href="#tabs-1">First</a></li>
+ <li><a href="#tabs-2">Second</a></li>
+ <li><a href="#tabs-3">Third</a></li>
+ </ul>
+ <div id="tabs-1">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
+ <div id="tabs-2">Phasellus mattis tincidunt nibh.</div>
+ <div id="tabs-3">Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.</div>
+ </div>
+</div>
+<div id="dialog2">
+ Yay, another dialog.
+</div>
+
+</body>
+</html>
diff --git a/tests/visual/compound/draggable_accordion.html b/tests/visual/compound/draggable_accordion.html
index a78221142..65534112f 100644
--- a/tests/visual/compound/draggable_accordion.html
+++ b/tests/visual/compound/draggable_accordion.html
@@ -1,25 +1,24 @@
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8" />
+ <meta charset="utf-8">
<title>Compound Visual Test : Draggable in Accordion</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.draggable.js"></script>
- <style type="text/css">
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../../ui/jquery.ui.accordion.js"></script>
+ <script src="../../../ui/jquery.ui.draggable.js"></script>
+ <style>
.draggable {
width: 10em;
margin: 0.5em;
}
</style>
- <script type="text/javascript">
+ <script>
$(function() {
- $( "#accordion" ).accordion();
$( ".draggable" ).addClass( "ui-widget ui-widget-content ui-corner-all" )
$( "#first .draggable" ).draggable();
$( "#second .draggable" ).draggable({
@@ -29,13 +28,14 @@
helper: "clone",
appendTo: "body"
});
+ $( "#accordion" ).accordion();
});
</script>
</head>
<body>
<div id="accordion">
- <h3><a href="#">.draggable()</a></h3>
+ <h3>.draggable()</h3>
<div id="first">
<div class="draggable">Draggable 1-1</div>
<div class="draggable">Draggable 1-2</div>
@@ -43,7 +43,7 @@
<div class="draggable">Draggable 1-4</div>
<div class="draggable">Draggable 1-5</div>
</div>
- <h3><a href="#">.draggable({ appendTo: "body" })</a></h3>
+ <h3>.draggable({ appendTo: "body" })</h3>
<div id="second">
<div class="draggable">Draggable 2-1</div>
<div class="draggable">Draggable 2-2</div>
@@ -51,7 +51,7 @@
<div class="draggable">Draggable 2-4</div>
<div class="draggable">Draggable 2-5</div>
</div>
- <h3><a href="#">.draggable({ helper: "clone", appendTo: "body" })</a></h3>
+ <h3>.draggable({ helper: "clone", appendTo: "body" })</h3>
<div id="third">
<div class="draggable">Draggable 3-1</div>
<div class="draggable">Draggable 3-2</div>
diff --git a/tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html b/tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html
index cced484ef..a73b890ec 100644
--- a/tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html
+++ b/tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html
@@ -1,18 +1,18 @@
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8" />
+ <meta charset="utf-8">
<title>Compound Visual Test : Draggable in Accordion</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.draggable.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.tabs.js"></script>
- <style type="text/css">
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../../ui/jquery.ui.accordion.js"></script>
+ <script src="../../../ui/jquery.ui.draggable.js"></script>
+ <script src="../../../ui/jquery.ui.tabs.js"></script>
+ <style>
#main-draggable {
width: 300px;
position: absolute;
@@ -27,22 +27,20 @@
margin: 0.5em;
}
</style>
- <script type="text/javascript">
+ <script>
$(function() {
- $( ".draggable" ).addClass( "ui-widget ui-widget-content ui-corner-all" )
- $( ".draggable" ).draggable({
- helper: "clone",
- appendTo: "body"
- });
-
- // PROBLEM: nested accordions must be initialized before outer accordion
+ $( ".draggable" )
+ .addClass( "ui-widget ui-widget-content ui-corner-all" )
+ .draggable({
+ helper: "clone",
+ appendTo: "body"
+ });
+
$( "#accordion > div" ).accordion();
$( "#accordion" ).accordion();
-
-
- // PROBLEM: nested widgets must be initialized before tabs
+
$( "#tabs" ).tabs();
-
+
$( "#main-draggable" ).draggable({
handle: "#main-draggable-handle"
});
@@ -62,9 +60,9 @@
</div>
<div id="tabs-2">
<div id="accordion">
- <h3><a>Accordion Group 1</a></h3>
+ <h3>Accordion Group 1</h3>
<div id="accordion-1-1">
- <h3><a href="#">Header 1-1</a></h3>
+ <h3>Header 1-1</h3>
<div>
<div class="draggable">Draggable 1-1</div>
<div class="draggable">Draggable 1-2</div>
@@ -72,7 +70,7 @@
<div class="draggable">Draggable 1-4</div>
<div class="draggable">Draggable 1-5</div>
</div>
- <h3><a href="#">Header 1-2</a></h3>
+ <h3>Header 1-2</h3>
<div>
<div class="draggable">Draggable 2-1</div>
<div class="draggable">Draggable 2-2</div>
@@ -81,9 +79,9 @@
<div class="draggable">Draggable 2-5</div>
</div>
</div>
- <h3><a>Accordion Group 2</a></h3>
+ <h3>Accordion Group 2</h3>
<div id="accordion-1-2">
- <h3><a href="#">Header 2-1</a></h3>
+ <h3>Header 2-1</h3>
<div>
<div class="draggable">Draggable 1-1</div>
<div class="draggable">Draggable 1-2</div>
@@ -91,7 +89,7 @@
<div class="draggable">Draggable 1-4</div>
<div class="draggable">Draggable 1-5</div>
</div>
- <h3><a href="#">Header 2-2</a></h3>
+ <h3>Header 2-2</h3>
<div>
<div class="draggable">Draggable 2-1</div>
<div class="draggable">Draggable 2-2</div>
diff --git a/tests/visual/compound/sortable_accordion_sortable_tabs.html b/tests/visual/compound/sortable_accordion_sortable_tabs.html
index ac90f1a09..60990bce7 100644
--- a/tests/visual/compound/sortable_accordion_sortable_tabs.html
+++ b/tests/visual/compound/sortable_accordion_sortable_tabs.html
@@ -1,18 +1,18 @@
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8" />
+ <meta charset="utf-8">
<title>Compound Visual Test : Accordion in Tabs</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.sortable.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.tabs.js"></script>
- <script type="text/javascript">
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.mouse.js"></script>
+ <script src="../../../ui/jquery.ui.sortable.js"></script>
+ <script src="../../../ui/jquery.ui.accordion.js"></script>
+ <script src="../../../ui/jquery.ui.tabs.js"></script>
+ <script>
$(function() {
$( "#accordion-1, #accordion-2" )
.accordion({
@@ -31,13 +31,15 @@
<div id="tabs">
<ul>
- <li><a href="#tabs-1">First</a></li>
- <li><a href="#tabs-2">Second</a></li>
+ <li><a href="#tabs-1">1 - Accordion</a></li>
+ <li><a href="#tabs-2">2 - Empty</a></li>
+ <li><a href="#tabs-3">3 - Empty</a></li>
+ <li><a href="#tabs-4">4 - Accordion</a></li>
</ul>
<div id="tabs-1">
<div id="accordion-1">
<div>
- <h3><a href="#">Accordion Header 1</a></h3>
+ <h3>Accordion Header 1</h3>
<div>
<p>Accordion Content 1</p>
<p>Accordion Content 1</p>
@@ -47,7 +49,7 @@
</div>
</div>
<div>
- <h3><a href="#">Accordion Header 2</a></h3>
+ <h3>Accordion Header 2</h3>
<div>
<p>Accordion Content 2</p>
<p>Accordion Content 2</p>
@@ -57,7 +59,7 @@
</div>
</div>
<div>
- <h3><a href="#">Accordion Header 3</a></h3>
+ <h3>Accordion Header 3</h3>
<div>
<p>Accordion Content 3</p>
<p>Accordion Content 3</p>
@@ -69,9 +71,15 @@
</div>
</div>
<div id="tabs-2">
- <div id="accordion-1">
+ <p>Nothing to look at here...</p>
+ </div>
+ <div id="tabs-3">
+ <p>Nothing to look at here...</p>
+ </div>
+ <div id="tabs-4">
+ <div id="accordion-2">
<div>
- <h3><a href="#">Accordion Header 1</a></h3>
+ <h3>Accordion Header 1</h3>
<div>
<p>Accordion Content 1</p>
<p>Accordion Content 1</p>
@@ -81,7 +89,7 @@
</div>
</div>
<div>
- <h3><a href="#">Accordion Header 2</a></h3>
+ <h3>Accordion Header 2</h3>
<div>
<p>Accordion Content 2</p>
<p>Accordion Content 2</p>
@@ -91,7 +99,7 @@
</div>
</div>
<div>
- <h3><a href="#">Accordion Header 3</a></h3>
+ <h3>Accordion Header 3</h3>
<div>
<p>Accordion Content 3</p>
<p>Accordion Content 3</p>
diff --git a/tests/visual/compound/tabs_tabs.html b/tests/visual/compound/tabs_tabs.html
index a18ef62ce..e40ed0742 100644
--- a/tests/visual/compound/tabs_tabs.html
+++ b/tests/visual/compound/tabs_tabs.html
@@ -1,18 +1,18 @@
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8" />
+ <meta charset="utf-8">
<title>Compound Visual Test : Tabs in Tabs</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.tabs.js"></script>
- <script type="text/javascript">
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.accordion.js"></script>
+ <script src="../../../ui/jquery.ui.tabs.js"></script>
+ <script>
$(function() {
- $('#tabs, #tabs-a, #tabs-b').tabs();
+ $( "#tabs, #tabs-a, #tabs-b" ).tabs();
});
</script>
</head>
diff --git a/tests/visual/compound/tabs_tooltips.html b/tests/visual/compound/tabs_tooltips.html
index ad3822be9..f8cdef8b5 100644
--- a/tests/visual/compound/tabs_tooltips.html
+++ b/tests/visual/compound/tabs_tooltips.html
@@ -1,20 +1,20 @@
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8" />
+ <meta charset="utf-8">
<title>Compound Visual Test : Tabs in Tabs</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.tooltip.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.tabs.js"></script>
- <script type="text/javascript">
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.position.js"></script>
+ <script src="../../../ui/jquery.ui.tooltip.js"></script>
+ <script src="../../../ui/jquery.ui.tabs.js"></script>
+ <script>
$(function() {
- $("#tabs").tabs();
- $("a").tooltip();
+ $( "#tabs" ).tabs();
+ $( "a" ).tooltip();
});
</script>
</head>
diff --git a/tests/visual/compound/widgets_in_dialog.html b/tests/visual/compound/widgets_in_dialog.html
deleted file mode 100644
index 89ea875d1..000000000
--- a/tests/visual/compound/widgets_in_dialog.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8" />
- <title>Compound Visual Test : All Widgets in Dialog</title>
- <link rel="stylesheet" href="../visual.css" type="text/css" />
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
- <script type="text/javascript" src="../../../jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.resizable.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.draggable.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.autocomplete.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.button.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.datepicker.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.dialog.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.progressbar.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.slider.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.tabs.js"></script>
- <script type="text/javascript" src="../../../ui/jquery.ui.tooltip.js"></script>
- <script type="text/javascript">
- $(function() {
- $("[title]").tooltip();
-
- $("#accordion").accordion();
- $("#autocomplete").autocomplete({
- source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl"]
- });
- $("button").button().click(function() {
- $("#dialog2").dialog("open");
- });
- $("#datepicker").datepicker();
- $("#progressbar").progressbar({
- value: 30
- });
- $("#slider").slider({
- // should be animated
- animate: true,
- value: 30,
- slide: function(event, ui) {
- $("#progress").val(ui.value);
- $("#progressbar").progressbar("option", "value", ui.value);
- }
- });
- $("#tabs").tabs();
-
- $("#dialog").dialog();
- $("#dialog2").dialog({
- autoOpen: false,
- width: 100,
- height: 75,
- modal: true
- });
- });
- </script>
-</head>
-<body>
-
-<div id="dialog">
- <div id="accordion">
- <h3><a href="#">Accordion Header 1</a></h3>
- <div>
- Accordion Content 1
- </div>
- <h3><a href="#">Accordion Header 2</a></h3>
- <div>
- Accordion Content 2
- </div>
- <h3><a href="#">Accordion Header 3</a></h3>
- <div>
- Accordion Content 3
- </div>
- </div>
- <input id="autocomplete">
- <button>A Button</button>
- <input id="datepicker">
- <button>Another button</button>
- <div>
- <label for="progress">Progress: <input title="The progress we made so far" id="progress" /></label>
- </div>
- <div id="progressbar">
- </div>
- <div id="slider" title="Sliding progress..."></div>
- <div id="tabs">
- <ul>
- <li><a href="#tabs-1">First</a></li>
- <li><a href="#tabs-2">Second</a></li>
- <li><a href="#tabs-3">Third</a></li>
- </ul>
- <div id="tabs-1">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
- <div id="tabs-2">Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.</div>
- <div id="tabs-3">Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.</div>
- </div>
-</div>
-<div id="dialog2">
- Yay, another dialog.
-</div>
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vitae urna quam. Fusce adipiscing erat eget magna malesuada vel mollis ligula ullamcorper. Donec pulvinar, libero et vehicula facilisis, odio orci fringilla magna, non ultricies ipsum justo a tellus. Proin facilisis magna vitae quam vestibulum tempor. Aenean semper placerat posuere. In nisi diam, ullamcorper sit amet viverra sed, pretium sed neque. Sed posuere vulputate mauris vitae placerat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam in odio elit, non tempor felis. Integer non iaculis ante. Sed erat mauris, aliquam nec consequat id, congue id libero. Maecenas elementum gravida tincidunt. Suspendisse lacinia enim sit amet nulla cursus pulvinar.
-</p>
-<p>
-Proin ut sem nulla, at cursus sapien. Duis sagittis lacus vitae justo mattis in sagittis ligula eleifend. Curabitur sit amet felis pharetra justo facilisis mollis eget nec massa. Sed nisi urna, semper lobortis pretium ac, interdum nec lacus. In gravida, leo sit amet vehicula malesuada, augue nunc consectetur nulla, vel tincidunt est nunc aliquet neque. Maecenas imperdiet eros id ligula tempor dapibus. Integer commodo metus sit amet quam vestibulum volutpat. In et lorem ac leo rhoncus auctor sit amet ut urna. Nulla sed nisl quis turpis vestibulum accumsan. Duis mollis aliquam sollicitudin. Pellentesque porta semper interdum. Sed eros orci, congue quis sollicitudin ut, rutrum vitae nibh. Nunc et leo non ligula interdum imperdiet. Integer tincidunt rhoncus ullamcorper. Curabitur et ullamcorper lorem. Ut at tellus eu metus congue sollicitudin eget at orci.
-</p>
-<p>
-Duis sem mauris, pulvinar quis placerat vel, aliquet non leo. Cras eros arcu, ullamcorper sit amet imperdiet at, blandit interdum augue. Phasellus non nunc ac ante condimentum tristique vitae sed urna. Integer nec sapien et dolor volutpat bibendum ac vitae justo. Aliquam gravida fermentum felis, nec dictum dui dictum ac. Maecenas eget magna leo. Phasellus ac nulla risus, dapibus ornare turpis. Morbi a massa tortor. Duis ac turpis lacus. Duis nibh metus, euismod quis ultrices vitae, sollicitudin vel leo. Nullam volutpat odio ac elit imperdiet gravida.
-</p>
-<p>
-Donec luctus magna id ipsum aliquam eget convallis tortor tristique. Etiam est quam, aliquam ac rutrum quis, pretium sed tortor. Aliquam lacus diam, rhoncus molestie convallis ut, luctus ac lacus. Nunc porttitor ante a ligula rutrum elementum. Cras dui tellus, pulvinar vel convallis sit amet, facilisis nec ipsum. Donec fermentum lectus lorem, id accumsan eros. Nunc semper laoreet lacus quis ullamcorper. Nunc luctus erat vitae orci sodales facilisis non ut felis. Aliquam pretium sapien sed enim adipiscing in feugiat est ornare. Aenean ultricies convallis tortor sit amet ullamcorper.
-</p>
-<p>
-Etiam ultricies elit non enim elementum aliquet. Vivamus quis fringilla mauris. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc blandit felis at massa interdum ac molestie lectus volutpat. Mauris commodo nibh id sem porta id feugiat ante euismod. Nullam fermentum libero varius turpis pharetra cursus ut sed lacus. Mauris molestie egestas augue eu bibendum. Quisque pulvinar, leo luctus vehicula faucibus, quam mi ornare dui, a rhoncus nisi eros nec dolor. Sed dictum ultricies ipsum eu ultrices. Etiam semper condimentum nibh in tempor.
-</p>
-<p>
-
-Vivamus interdum ligula nec neque sollicitudin ornare. Vestibulum a eros eget nisi accumsan hendrerit quis sit amet ipsum. Phasellus condimentum vestibulum felis eu hendrerit. Suspendisse in est tellus, et consequat ante. Nam at sapien lobortis risus dignissim malesuada. In dapibus lectus sed nibh adipiscing dictum. Nulla pellentesque convallis auctor. Suspendisse ut purus et nibh pulvinar tincidunt. Maecenas dapibus purus at odio commodo ac cursus risus luctus. Ut quis libero justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam vestibulum ipsum quis ante porttitor porta. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut in ante neque. Donec ante ante, porttitor non egestas a, pulvinar sed sem. Nam augue quam, fringilla sed egestas et, vulputate non nisi.
-</p>
-<p>
-Nunc sit amet arcu ac nulla bibendum sollicitudin. Pellentesque sed ligula urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque egestas, tortor a vestibulum malesuada, ante dui condimentum massa, ac rutrum massa mauris non mi. Praesent in nisi leo. Sed ac augue nisl. Donec eget enim ut arcu posuere condimentum vel id magna. Vestibulum laoreet imperdiet massa, ut venenatis ante dapibus eu. Phasellus faucibus vestibulum eros mollis adipiscing. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque aliquet lectus at enim gravida tempus tincidunt mi porta. Sed vehicula molestie ligula, sed tincidunt diam suscipit vitae.
-</p>
-<p>
-Nullam euismod tempus ante, vel semper turpis pharetra eget. Nulla pretium ante et ipsum dapibus imperdiet. Praesent ipsum velit, gravida sed adipiscing id, condimentum in odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce blandit vehicula felis, pretium ullamcorper leo tempor non. Nunc eget nisi nunc, posuere pellentesque enim. Nunc gravida orci quis odio semper ultricies. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque eu neque a sapien commodo placerat. Aenean non eros semper metus viverra porttitor. Integer vel tortor eu neque commodo ultrices eu quis tellus. Nam commodo sagittis dolor in consequat. Fusce hendrerit turpis eget leo rutrum ut scelerisque nibh condimentum. Fusce sit amet feugiat mauris. Maecenas elementum tellus nec augue rutrum mattis. Sed viverra tempor blandit. Pellentesque adipiscing tincidunt est sit amet tincidunt. Proin suscipit suscipit odio, eu pellentesque dolor pharetra non. Aliquam erat volutpat.
-</p>
-<p>
-Duis pellentesque, enim sed mollis congue, ante mauris feugiat nisi, bibendum euismod erat enim ac magna. Mauris risus nisl, sodales vel viverra ut, interdum sed neque. Nunc ac dignissim felis. Proin tincidunt orci elementum erat molestie suscipit. Cras suscipit, sem ac vehicula vehicula, lorem orci dictum nibh, ut bibendum odio sem non erat. Maecenas quis metus eget mauris feugiat porta a eu ipsum. Vivamus tortor purus, posuere ut luctus sed, ullamcorper feugiat neque. In hac habitasse platea dictumst. Vivamus nec justo vel lacus mattis pellentesque. Nunc vel gravida quam. Etiam at aliquam magna.
-</p>
-<p>
-Sed ac lacus ac felis auctor suscipit. Aliquam lacinia lectus ac nunc placerat aliquam accumsan neque interdum. Aenean in sapien sem. Suspendisse potenti. Aenean congue vulputate scelerisque. Proin eget eros tortor. Morbi rhoncus, mi vitae sollicitudin luctus, est orci porttitor turpis, vitae cursus est dui sed leo. Curabitur erat nunc, placerat bibendum tempus in, blandit eget ipsum. Cras in feugiat ipsum. Vestibulum dapibus quam nec odio pretium non dapibus purus dapibus. Pellentesque vehicula metus bibendum orci ultrices tincidunt. Sed fermentum, neque eget porta tempor, sem neque pulvinar ligula, vitae elementum massa metus eget nunc. Nunc sed orci eu purus sodales fringilla. Quisque aliquet arcu ac dolor ultrices fringilla. Nullam ornare tempus lorem, in mattis magna mollis laoreet. Vestibulum convallis arcu in purus lobortis et sollicitudin ipsum aliquet. Quisque risus est, sagittis eu aliquam ac, condimentum at massa. Fusce consectetur dignissim sem vel ornare. Maecenas posuere ultricies sollicitudin. Duis luctus, purus quis auctor egestas, diam felis scelerisque diam, a varius tellus erat a nunc.
-</p>
-<p>
-Phasellus id ante neque, eget volutpat risus. Vivamus scelerisque, nisi rutrum ultrices varius, sem quam suscipit purus, in elementum nibh nulla nec nisi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus interdum hendrerit mi, nec cursus nisi tempor ac. Phasellus luctus ligula bibendum mauris iaculis id tempor odio volutpat. Nunc in augue metus. Suspendisse at libero at libero lacinia convallis eu vitae metus. Duis eget risus odio. Nam id mi tellus, non vulputate libero. In placerat dictum orci eu pellentesque. Etiam sed varius felis. Phasellus ut adipiscing leo. Morbi ante eros, interdum eget dapibus ac, varius congue nunc. Donec vulputate sapien id risus sodales sit amet pretium velit iaculis. Etiam ultrices tempor euismod.
-</p>
-
-<p>
-Praesent in turpis ut mauris cursus commodo. Mauris lectus tellus, congue sit amet dictum id, convallis ac nisi. Curabitur ante dolor, sagittis ac auctor ac, aliquet vel nisl. Nulla non porta sapien. Nunc non aliquet erat. Vestibulum euismod auctor volutpat. Mauris libero tellus, pharetra eget lacinia sit amet, viverra eget velit. Sed viverra varius velit at pharetra. Sed pharetra dolor sed erat interdum in placerat magna lacinia. Cras venenatis tellus non sapien egestas sollicitudin. Duis congue pharetra lacinia. Curabitur eu diam vel tortor rhoncus dignissim vel sed enim. Proin ut congue mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce viverra elit eu dolor tincidunt tempor vel nec magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-</p>
-<p>
-Sed ligula purus, tristique nec condimentum sed, facilisis ac augue. Integer volutpat velit urna, et posuere ligula. In tempus luctus dignissim. Duis augue neque, egestas ut tincidunt in, congue a enim. Aliquam ut odio dui, id congue tortor. Nullam venenatis erat non nulla tincidunt scelerisque. Morbi in urna ac nulla molestie scelerisque eu a nulla. Aliquam erat volutpat. Praesent dictum scelerisque lorem mattis vehicula. Quisque ut rutrum metus. Mauris pharetra ante vitae nunc mattis vulputate. Mauris molestie volutpat mauris, ut iaculis dui bibendum ac. Ut egestas laoreet est, eget mollis libero laoreet at. In sagittis vestibulum accumsan. Nam dapibus ultrices urna sit amet accumsan. Pellentesque id ultrices elit. Aliquam quis magna ut leo sagittis posuere sit amet id enim. Etiam congue eros sit amet nulla aliquam gravida. In accumsan lectus nibh. Proin volutpat pretium facilisis.
-</p>
-<p>
-Mauris pulvinar erat at quam egestas ac aliquet mi gravida. Integer pellentesque quam vel massa commodo vitae sollicitudin eros volutpat. Aenean mollis felis molestie quam placerat et elementum eros gravida. In hac habitasse platea dictumst. Mauris ullamcorper facilisis eros, nec rutrum mi auctor sed. Ut viverra, orci a viverra ultricies, turpis enim pellentesque urna, sit amet viverra metus enim ut justo. Donec aliquam, urna id condimentum rutrum, nibh nunc tristique magna, at luctus quam enim at turpis. Maecenas dapibus dui ac velit adipiscing fringilla. Nullam malesuada nunc vel lorem cursus sed congue felis lacinia. Pellentesque vehicula gravida est nec facilisis. Nullam imperdiet fringilla orci in dignissim. Praesent orci dolor, vestibulum eu auctor quis, tristique auctor mi. Nunc euismod dui sit amet metus malesuada feugiat. Fusce iaculis neque in velit interdum rhoncus. Aenean at risus ut arcu dapibus congue a tincidunt dolor. Donec porttitor lacus et urna vestibulum a sagittis nunc mollis.
-</p>
-<p>
-In metus tellus, eleifend id aliquet at, pulvinar ut tortor. Aliquam erat volutpat. Vivamus lacus magna, consequat vel euismod sed, viverra a ipsum. Praesent dapibus laoreet nisi, nec posuere massa commodo vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ullamcorper adipiscing ante, dapibus molestie velit cursus id. Nam cursus arcu consectetur lectus sollicitudin gravida. Maecenas urna sapien, fermentum sit amet consectetur at, feugiat ut massa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet ante nec arcu bibendum bibendum ut ut justo. Nulla ut libero est.
-</p>
-<p>
-Aenean sem augue, malesuada quis elementum id, aliquet at turpis. Nam volutpat interdum purus, at dictum risus posuere rhoncus. Praesent metus diam, egestas in lacinia eu, tincidunt in nibh. Phasellus sollicitudin volutpat erat, sit amet mattis sapien fringilla in. Quisque rhoncus, felis a pellentesque dictum, arcu urna molestie sem, ut tincidunt nulla magna in enim. Vestibulum erat nulla, sollicitudin quis faucibus et, blandit quis est. Nam vehicula justo augue. Vivamus elementum sodales aliquet. Donec convallis neque sed dui euismod aliquet. Morbi elementum hendrerit odio, vel mollis felis dignissim vitae. Phasellus a diam lacus. Integer congue, mi vehicula egestas imperdiet, nulla mi commodo tortor, sit amet fermentum urna leo non dolor. Donec elementum elementum urna at sollicitudin. Vestibulum placerat tortor in nibh lobortis ac consectetur felis interdum. Integer faucibus diam nec magna porttitor sit amet dictum elit consectetur. Suspendisse risus velit, pellentesque eget viverra in, porta eget metus. Sed porta elit erat.
-</p>
-<p>
-Nulla facilisi. Aliquam vulputate dolor quis nisi auctor luctus. Fusce vitae scelerisque velit. Sed sit amet tortor a nisi convallis pulvinar et eget sapien. Nulla condimentum auctor velit, a viverra nibh pellentesque eget. Aenean at lacus quam, lobortis posuere justo. Duis et diam in ligula rhoncus pellentesque. Morbi massa tellus, mattis nec condimentum ut, tempus eu lectus. In mi orci, luctus at pulvinar vel, scelerisque nec enim. Vestibulum vehicula odio in augue dignissim tincidunt. Integer ac velit ligula. Integer elit turpis, mattis eget ornare ut, eleifend in magna. Curabitur sagittis dui in felis ultricies gravida.
-
-</p>
-<p>
-Praesent adipiscing rhoncus rutrum. Aenean ultricies auctor risus at fringilla. Mauris quam lectus, ullamcorper sed ultricies at, interdum eget tellus. Vestibulum ac mi erat. Sed ac tellus erat, sed laoreet arcu. Fusce eget ipsum ac sem volutpat viverra. Suspendisse ac felis sit amet purus viverra luctus non eget ipsum. Praesent eleifend euismod tortor, vel malesuada felis consectetur ac. Nunc a mi sit amet nulla venenatis tincidunt. Morbi vitae nisl nulla, nec adipiscing sem. Nullam porttitor scelerisque urna, id dapibus diam malesuada vitae. Duis auctor eleifend lectus, a tempor odio aliquet quis. Nam eu est urna, nec ultricies lectus. Ut egestas aliquet nunc, et hendrerit erat vehicula non. Aliquam tempus faucibus arcu, at vulputate erat tempor eu. Quisque tempus, lectus adipiscing blandit scelerisque, magna felis eleifend odio, non volutpat felis enim sit amet leo. Mauris augue tortor, ultrices ac sagittis non, vulputate quis nisl.
-</p>
-<p>
-Fusce erat sem, dictum in bibendum ac, feugiat ut odio. Duis aliquam felis sit amet diam egestas consectetur. Phasellus consequat, mauris eget venenatis porta, velit sapien malesuada nibh, id dignissim ante tellus vitae lacus. Duis non nisl sit amet nunc euismod posuere. Donec eros erat, fringilla vel iaculis condimentum, vestibulum at neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam lorem sapien, bibendum eu mollis nec, gravida dapibus lectus. Aenean pretium volutpat nunc a placerat. Nullam eget tellus quis ipsum ultrices ullamcorper non eu mauris. Donec volutpat tincidunt elit, sit amet cursus justo elementum quis. Mauris volutpat, enim sit amet tempor commodo, purus lacus luctus dui, sed aliquet ligula nisi vel diam. Donec est elit, lobortis at eleifend id, feugiat egestas massa. Fusce elementum sollicitudin adipiscing. Vivamus et dapibus ipsum. Morbi interdum libero a nisl dignissim sed facilisis ipsum lacinia.
-</p>
-<p>
-Cras a augue dui, vitae tincidunt enim. In hac habitasse platea dictumst. Proin nec magna sed nulla mollis tempus id ut lectus. Morbi volutpat ultricies ipsum, quis imperdiet libero tempor nec. Donec bibendum ornare blandit. Aliquam rutrum risus non turpis commodo non commodo erat molestie. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum, magna vel euismod convallis, mi magna vehicula velit, aliquet rhoncus ipsum massa et nunc. Nullam blandit purus non neque ullamcorper a aliquet nisl tristique. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed sit amet velit magna, sit amet rutrum dui. Donec elementum mi sed velit consectetur vulputate. Sed interdum adipiscing mattis.
-</p>
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vitae urna quam. Fusce adipiscing erat eget magna malesuada vel mollis ligula ullamcorper. Donec pulvinar, libero et vehicula facilisis, odio orci fringilla magna, non ultricies ipsum justo a tellus. Proin facilisis magna vitae quam vestibulum tempor. Aenean semper placerat posuere. In nisi diam, ullamcorper sit amet viverra sed, pretium sed neque. Sed posuere vulputate mauris vitae placerat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam in odio elit, non tempor felis. Integer non iaculis ante. Sed erat mauris, aliquam nec consequat id, congue id libero. Maecenas elementum gravida tincidunt. Suspendisse lacinia enim sit amet nulla cursus pulvinar.
-</p>
-<p>
-Proin ut sem nulla, at cursus sapien. Duis sagittis lacus vitae justo mattis in sagittis ligula eleifend. Curabitur sit amet felis pharetra justo facilisis mollis eget nec massa. Sed nisi urna, semper lobortis pretium ac, interdum nec lacus. In gravida, leo sit amet vehicula malesuada, augue nunc consectetur nulla, vel tincidunt est nunc aliquet neque. Maecenas imperdiet eros id ligula tempor dapibus. Integer commodo metus sit amet quam vestibulum volutpat. In et lorem ac leo rhoncus auctor sit amet ut urna. Nulla sed nisl quis turpis vestibulum accumsan. Duis mollis aliquam sollicitudin. Pellentesque porta semper interdum. Sed eros orci, congue quis sollicitudin ut, rutrum vitae nibh. Nunc et leo non ligula interdum imperdiet. Integer tincidunt rhoncus ullamcorper. Curabitur et ullamcorper lorem. Ut at tellus eu metus congue sollicitudin eget at orci.
-</p>
-<p>
-Duis sem mauris, pulvinar quis placerat vel, aliquet non leo. Cras eros arcu, ullamcorper sit amet imperdiet at, blandit interdum augue. Phasellus non nunc ac ante condimentum tristique vitae sed urna. Integer nec sapien et dolor volutpat bibendum ac vitae justo. Aliquam gravida fermentum felis, nec dictum dui dictum ac. Maecenas eget magna leo. Phasellus ac nulla risus, dapibus ornare turpis. Morbi a massa tortor. Duis ac turpis lacus. Duis nibh metus, euismod quis ultrices vitae, sollicitudin vel leo. Nullam volutpat odio ac elit imperdiet gravida.
-</p>
-<p>
-Donec luctus magna id ipsum aliquam eget convallis tortor tristique. Etiam est quam, aliquam ac rutrum quis, pretium sed tortor. Aliquam lacus diam, rhoncus molestie convallis ut, luctus ac lacus. Nunc porttitor ante a ligula rutrum elementum. Cras dui tellus, pulvinar vel convallis sit amet, facilisis nec ipsum. Donec fermentum lectus lorem, id accumsan eros. Nunc semper laoreet lacus quis ullamcorper. Nunc luctus erat vitae orci sodales facilisis non ut felis. Aliquam pretium sapien sed enim adipiscing in feugiat est ornare. Aenean ultricies convallis tortor sit amet ullamcorper.
-</p>
-<p>
-Etiam ultricies elit non enim elementum aliquet. Vivamus quis fringilla mauris. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc blandit felis at massa interdum ac molestie lectus volutpat. Mauris commodo nibh id sem porta id feugiat ante euismod. Nullam fermentum libero varius turpis pharetra cursus ut sed lacus. Mauris molestie egestas augue eu bibendum. Quisque pulvinar, leo luctus vehicula faucibus, quam mi ornare dui, a rhoncus nisi eros nec dolor. Sed dictum ultricies ipsum eu ultrices. Etiam semper condimentum nibh in tempor.
-</p>
-<p>
-
-Vivamus interdum ligula nec neque sollicitudin ornare. Vestibulum a eros eget nisi accumsan hendrerit quis sit amet ipsum. Phasellus condimentum vestibulum felis eu hendrerit. Suspendisse in est tellus, et consequat ante. Nam at sapien lobortis risus dignissim malesuada. In dapibus lectus sed nibh adipiscing dictum. Nulla pellentesque convallis auctor. Suspendisse ut purus et nibh pulvinar tincidunt. Maecenas dapibus purus at odio commodo ac cursus risus luctus. Ut quis libero justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam vestibulum ipsum quis ante porttitor porta. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut in ante neque. Donec ante ante, porttitor non egestas a, pulvinar sed sem. Nam augue quam, fringilla sed egestas et, vulputate non nisi.
-</p>
-<p>
-Nunc sit amet arcu ac nulla bibendum sollicitudin. Pellentesque sed ligula urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque egestas, tortor a vestibulum malesuada, ante dui condimentum massa, ac rutrum massa mauris non mi. Praesent in nisi leo. Sed ac augue nisl. Donec eget enim ut arcu posuere condimentum vel id magna. Vestibulum laoreet imperdiet massa, ut venenatis ante dapibus eu. Phasellus faucibus vestibulum eros mollis adipiscing. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque aliquet lectus at enim gravida tempus tincidunt mi porta. Sed vehicula molestie ligula, sed tincidunt diam suscipit vitae.
-</p>
-<p>
-Nullam euismod tempus ante, vel semper turpis pharetra eget. Nulla pretium ante et ipsum dapibus imperdiet. Praesent ipsum velit, gravida sed adipiscing id, condimentum in odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce blandit vehicula felis, pretium ullamcorper leo tempor non. Nunc eget nisi nunc, posuere pellentesque enim. Nunc gravida orci quis odio semper ultricies. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque eu neque a sapien commodo placerat. Aenean non eros semper metus viverra porttitor. Integer vel tortor eu neque commodo ultrices eu quis tellus. Nam commodo sagittis dolor in consequat. Fusce hendrerit turpis eget leo rutrum ut scelerisque nibh condimentum. Fusce sit amet feugiat mauris. Maecenas elementum tellus nec augue rutrum mattis. Sed viverra tempor blandit. Pellentesque adipiscing tincidunt est sit amet tincidunt. Proin suscipit suscipit odio, eu pellentesque dolor pharetra non. Aliquam erat volutpat.
-</p>
-<p>
-Duis pellentesque, enim sed mollis congue, ante mauris feugiat nisi, bibendum euismod erat enim ac magna. Mauris risus nisl, sodales vel viverra ut, interdum sed neque. Nunc ac dignissim felis. Proin tincidunt orci elementum erat molestie suscipit. Cras suscipit, sem ac vehicula vehicula, lorem orci dictum nibh, ut bibendum odio sem non erat. Maecenas quis metus eget mauris feugiat porta a eu ipsum. Vivamus tortor purus, posuere ut luctus sed, ullamcorper feugiat neque. In hac habitasse platea dictumst. Vivamus nec justo vel lacus mattis pellentesque. Nunc vel gravida quam. Etiam at aliquam magna.
-</p>
-<p>
-Sed ac lacus ac felis auctor suscipit. Aliquam lacinia lectus ac nunc placerat aliquam accumsan neque interdum. Aenean in sapien sem. Suspendisse potenti. Aenean congue vulputate scelerisque. Proin eget eros tortor. Morbi rhoncus, mi vitae sollicitudin luctus, est orci porttitor turpis, vitae cursus est dui sed leo. Curabitur erat nunc, placerat bibendum tempus in, blandit eget ipsum. Cras in feugiat ipsum. Vestibulum dapibus quam nec odio pretium non dapibus purus dapibus. Pellentesque vehicula metus bibendum orci ultrices tincidunt. Sed fermentum, neque eget porta tempor, sem neque pulvinar ligula, vitae elementum massa metus eget nunc. Nunc sed orci eu purus sodales fringilla. Quisque aliquet arcu ac dolor ultrices fringilla. Nullam ornare tempus lorem, in mattis magna mollis laoreet. Vestibulum convallis arcu in purus lobortis et sollicitudin ipsum aliquet. Quisque risus est, sagittis eu aliquam ac, condimentum at massa. Fusce consectetur dignissim sem vel ornare. Maecenas posuere ultricies sollicitudin. Duis luctus, purus quis auctor egestas, diam felis scelerisque diam, a varius tellus erat a nunc.
-</p>
-<p>
-Phasellus id ante neque, eget volutpat risus. Vivamus scelerisque, nisi rutrum ultrices varius, sem quam suscipit purus, in elementum nibh nulla nec nisi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus interdum hendrerit mi, nec cursus nisi tempor ac. Phasellus luctus ligula bibendum mauris iaculis id tempor odio volutpat. Nunc in augue metus. Suspendisse at libero at libero lacinia convallis eu vitae metus. Duis eget risus odio. Nam id mi tellus, non vulputate libero. In placerat dictum orci eu pellentesque. Etiam sed varius felis. Phasellus ut adipiscing leo. Morbi ante eros, interdum eget dapibus ac, varius congue nunc. Donec vulputate sapien id risus sodales sit amet pretium velit iaculis. Etiam ultrices tempor euismod.
-</p>
-
-<p>
-Praesent in turpis ut mauris cursus commodo. Mauris lectus tellus, congue sit amet dictum id, convallis ac nisi. Curabitur ante dolor, sagittis ac auctor ac, aliquet vel nisl. Nulla non porta sapien. Nunc non aliquet erat. Vestibulum euismod auctor volutpat. Mauris libero tellus, pharetra eget lacinia sit amet, viverra eget velit. Sed viverra varius velit at pharetra. Sed pharetra dolor sed erat interdum in placerat magna lacinia. Cras venenatis tellus non sapien egestas sollicitudin. Duis congue pharetra lacinia. Curabitur eu diam vel tortor rhoncus dignissim vel sed enim. Proin ut congue mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce viverra elit eu dolor tincidunt tempor vel nec magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-</p>
-<p>
-Sed ligula purus, tristique nec condimentum sed, facilisis ac augue. Integer volutpat velit urna, et posuere ligula. In tempus luctus dignissim. Duis augue neque, egestas ut tincidunt in, congue a enim. Aliquam ut odio dui, id congue tortor. Nullam venenatis erat non nulla tincidunt scelerisque. Morbi in urna ac nulla molestie scelerisque eu a nulla. Aliquam erat volutpat. Praesent dictum scelerisque lorem mattis vehicula. Quisque ut rutrum metus. Mauris pharetra ante vitae nunc mattis vulputate. Mauris molestie volutpat mauris, ut iaculis dui bibendum ac. Ut egestas laoreet est, eget mollis libero laoreet at. In sagittis vestibulum accumsan. Nam dapibus ultrices urna sit amet accumsan. Pellentesque id ultrices elit. Aliquam quis magna ut leo sagittis posuere sit amet id enim. Etiam congue eros sit amet nulla aliquam gravida. In accumsan lectus nibh. Proin volutpat pretium facilisis.
-</p>
-<p>
-Mauris pulvinar erat at quam egestas ac aliquet mi gravida. Integer pellentesque quam vel massa commodo vitae sollicitudin eros volutpat. Aenean mollis felis molestie quam placerat et elementum eros gravida. In hac habitasse platea dictumst. Mauris ullamcorper facilisis eros, nec rutrum mi auctor sed. Ut viverra, orci a viverra ultricies, turpis enim pellentesque urna, sit amet viverra metus enim ut justo. Donec aliquam, urna id condimentum rutrum, nibh nunc tristique magna, at luctus quam enim at turpis. Maecenas dapibus dui ac velit adipiscing fringilla. Nullam malesuada nunc vel lorem cursus sed congue felis lacinia. Pellentesque vehicula gravida est nec facilisis. Nullam imperdiet fringilla orci in dignissim. Praesent orci dolor, vestibulum eu auctor quis, tristique auctor mi. Nunc euismod dui sit amet metus malesuada feugiat. Fusce iaculis neque in velit interdum rhoncus. Aenean at risus ut arcu dapibus congue a tincidunt dolor. Donec porttitor lacus et urna vestibulum a sagittis nunc mollis.
-</p>
-<p>
-In metus tellus, eleifend id aliquet at, pulvinar ut tortor. Aliquam erat volutpat. Vivamus lacus magna, consequat vel euismod sed, viverra a ipsum. Praesent dapibus laoreet nisi, nec posuere massa commodo vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ullamcorper adipiscing ante, dapibus molestie velit cursus id. Nam cursus arcu consectetur lectus sollicitudin gravida. Maecenas urna sapien, fermentum sit amet consectetur at, feugiat ut massa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet ante nec arcu bibendum bibendum ut ut justo. Nulla ut libero est.
-</p>
-<p>
-Aenean sem augue, malesuada quis elementum id, aliquet at turpis. Nam volutpat interdum purus, at dictum risus posuere rhoncus. Praesent metus diam, egestas in lacinia eu, tincidunt in nibh. Phasellus sollicitudin volutpat erat, sit amet mattis sapien fringilla in. Quisque rhoncus, felis a pellentesque dictum, arcu urna molestie sem, ut tincidunt nulla magna in enim. Vestibulum erat nulla, sollicitudin quis faucibus et, blandit quis est. Nam vehicula justo augue. Vivamus elementum sodales aliquet. Donec convallis neque sed dui euismod aliquet. Morbi elementum hendrerit odio, vel mollis felis dignissim vitae. Phasellus a diam lacus. Integer congue, mi vehicula egestas imperdiet, nulla mi commodo tortor, sit amet fermentum urna leo non dolor. Donec elementum elementum urna at sollicitudin. Vestibulum placerat tortor in nibh lobortis ac consectetur felis interdum. Integer faucibus diam nec magna porttitor sit amet dictum elit consectetur. Suspendisse risus velit, pellentesque eget viverra in, porta eget metus. Sed porta elit erat.
-</p>
-<p>
-Nulla facilisi. Aliquam vulputate dolor quis nisi auctor luctus. Fusce vitae scelerisque velit. Sed sit amet tortor a nisi convallis pulvinar et eget sapien. Nulla condimentum auctor velit, a viverra nibh pellentesque eget. Aenean at lacus quam, lobortis posuere justo. Duis et diam in ligula rhoncus pellentesque. Morbi massa tellus, mattis nec condimentum ut, tempus eu lectus. In mi orci, luctus at pulvinar vel, scelerisque nec enim. Vestibulum vehicula odio in augue dignissim tincidunt. Integer ac velit ligula. Integer elit turpis, mattis eget ornare ut, eleifend in magna. Curabitur sagittis dui in felis ultricies gravida.
-
-</p>
-<p>
-Praesent adipiscing rhoncus rutrum. Aenean ultricies auctor risus at fringilla. Mauris quam lectus, ullamcorper sed ultricies at, interdum eget tellus. Vestibulum ac mi erat. Sed ac tellus erat, sed laoreet arcu. Fusce eget ipsum ac sem volutpat viverra. Suspendisse ac felis sit amet purus viverra luctus non eget ipsum. Praesent eleifend euismod tortor, vel malesuada felis consectetur ac. Nunc a mi sit amet nulla venenatis tincidunt. Morbi vitae nisl nulla, nec adipiscing sem. Nullam porttitor scelerisque urna, id dapibus diam malesuada vitae. Duis auctor eleifend lectus, a tempor odio aliquet quis. Nam eu est urna, nec ultricies lectus. Ut egestas aliquet nunc, et hendrerit erat vehicula non. Aliquam tempus faucibus arcu, at vulputate erat tempor eu. Quisque tempus, lectus adipiscing blandit scelerisque, magna felis eleifend odio, non volutpat felis enim sit amet leo. Mauris augue tortor, ultrices ac sagittis non, vulputate quis nisl.
-</p>
-<p>
-Fusce erat sem, dictum in bibendum ac, feugiat ut odio. Duis aliquam felis sit amet diam egestas consectetur. Phasellus consequat, mauris eget venenatis porta, velit sapien malesuada nibh, id dignissim ante tellus vitae lacus. Duis non nisl sit amet nunc euismod posuere. Donec eros erat, fringilla vel iaculis condimentum, vestibulum at neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam lorem sapien, bibendum eu mollis nec, gravida dapibus lectus. Aenean pretium volutpat nunc a placerat. Nullam eget tellus quis ipsum ultrices ullamcorper non eu mauris. Donec volutpat tincidunt elit, sit amet cursus justo elementum quis. Mauris volutpat, enim sit amet tempor commodo, purus lacus luctus dui, sed aliquet ligula nisi vel diam. Donec est elit, lobortis at eleifend id, feugiat egestas massa. Fusce elementum sollicitudin adipiscing. Vivamus et dapibus ipsum. Morbi interdum libero a nisl dignissim sed facilisis ipsum lacinia.
-</p>
-<p>
-Cras a augue dui, vitae tincidunt enim. In hac habitasse platea dictumst. Proin nec magna sed nulla mollis tempus id ut lectus. Morbi volutpat ultricies ipsum, quis imperdiet libero tempor nec. Donec bibendum ornare blandit. Aliquam rutrum risus non turpis commodo non commodo erat molestie. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum, magna vel euismod convallis, mi magna vehicula velit, aliquet rhoncus ipsum massa et nunc. Nullam blandit purus non neque ullamcorper a aliquet nisl tristique. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed sit amet velit magna, sit amet rutrum dui. Donec elementum mi sed velit consectetur vulputate. Sed interdum adipiscing mattis.
-</p>
-
-</body>
-</html>
diff --git a/tests/visual/effects/effects.scale.html b/tests/visual/effects/effects.scale.html
index f86c36b6e..708543257 100644
--- a/tests/visual/effects/effects.scale.html
+++ b/tests/visual/effects/effects.scale.html
@@ -8,7 +8,7 @@
<script src="../../../ui/jquery.effects.core.js"></script>
<script src="../../../ui/jquery.effects.scale.js"></script>
<script src="effects.all.js"></script>
- <script type="text/javascript" charset="utf-8">
+ <script>
jQuery(function( $ ) {
var test = $( "#testBox" ),
opts = $( ".arg" ),
@@ -36,9 +36,9 @@
var cur = this.selectedIndex,
next = cur + direction,
len = this.options.length;
-
+
this.selectedIndex = ( next + len ) % len;
-
+
if ( ( next+len ) % len === next ) return false;
});
doAnim();
diff --git a/tests/visual/menu/drilldown.html b/tests/visual/menu/drilldown.html
index 8bc30a793..7b40fc62f 100644
--- a/tests/visual/menu/drilldown.html
+++ b/tests/visual/menu/drilldown.html
@@ -1,6 +1,7 @@
<!doctype html>
<html>
<head>
+ <meta charset="utf-8">
<title>Menu Visual Test: Default</title>
<link rel="stylesheet" href="../visual.css" type="text/css" />
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css" title="ui-theme" />
@@ -18,15 +19,15 @@
right: 10,
top: 10
}).appendTo(document.body).themeswitcher();
-
+
$.widget("ui.drilldown", {
_init: function() {
var that = this;
this.active = this.element.find(">ul").attr("tabindex", 0);
-
+
// hide submenus and create indicator icons
- this.element.find("ul").hide().prev("a").prepend('<span class="ui-icon ui-icon-carat-1-e"></span>').end().filter(":first").show();
-
+ this.element.find("ul").hide().prev("a").prepend('<span class="ui-icon ui-icon-carat-1-e"></span>').end().filter(":first").show();
+
this.element.find("ul").menu({
// disable built-in key handling
input: $(),
@@ -46,7 +47,7 @@
}
}
});
-
+
this.back = this.element.children(":last").button({
icons: {
primary: "ui-icon-carat-1-w"
@@ -56,7 +57,7 @@
return false;
}).hide();
},
-
+
_open: function(submenu) {
this.active = submenu.show().css({
opacity: 0
@@ -78,7 +79,7 @@
});
this.back.show();
},
-
+
up: function() {
if (this.active.parent()[0] == this.element[0]) {
return;
@@ -101,7 +102,7 @@
this.back.hide();
}
},
-
+
down: function(event) {
var nested = this.activeItem.find(">ul");
if (nested.length) {
@@ -109,24 +110,24 @@
nested.menu("focus", event, nested.children(":first"))
}
},
-
+
show: function() {
},
-
+
hide: function() {
},
-
+
widget: function() {
return this.element.find(">ul");
}
});
-
+
var drilldown = $("#drilldown").drilldown({
select: function(event, ui) {
$("#log").append("<div>Selected " + ui.item.text() + "</div>");
}
});
-
+
drilldown.drilldown("widget").keydown(function(event) {
var menu = drilldown.data("drilldown").active.data("menu");
if (menu.widget().is(":hidden"))
@@ -171,7 +172,7 @@
} else {
character = prev + character;
}
-
+
var match = menu.widget().children("li").filter(function() {
return new RegExp("^" + character, "i").test($("a", this).text());
});
@@ -207,7 +208,7 @@
</style>
</head>
<body>
-
+
<div id="drilldown">
<h3>Make a selection...</h3>
<ul>
diff --git a/tests/visual/menu/menu.html b/tests/visual/menu/menu.html
index f88d1d542..548f25db4 100644
--- a/tests/visual/menu/menu.html
+++ b/tests/visual/menu/menu.html
@@ -1,6 +1,7 @@
<!doctype html>
<html>
<head>
+ <meta charset="utf-8">
<title>Menu Visual Test: Default</title>
<link rel="stylesheet" href="../visual.css" type="text/css" />
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css" title="ui-theme" />
@@ -38,7 +39,7 @@
menus: ".menuElement"
});
}
-
+
var menus = $("#menu1, #menu2, #menu3, .menu4");
create();
@@ -78,6 +79,7 @@
<li><a href="#">Ada</a></li>
<li><a href="#">Adamsville</a></li>
<li><a href="#">Addyston</a></li>
+ <li></li>
<li>
<a href="#">Delphi</a>
<ul>
@@ -117,7 +119,7 @@
<li class="ui-state-disabled"><a href="#"><span class="ui-icon ui-icon-scissors"></span>Ada</a></li>
<li><a href="#">Adamsville</a></li>
<li><a href="#"><span class="ui-icon ui-icon-wrench"></span>Addyston</a></li>
- <li>
+ <li class="ui-state-disabled">
<a href="#">Delphi</a>
<ul>
<li><a href="#">Ada</a></li>
diff --git a/tests/visual/menu/tablemenu.html b/tests/visual/menu/tablemenu.html
index 19691c614..ca4345aed 100644
--- a/tests/visual/menu/tablemenu.html
+++ b/tests/visual/menu/tablemenu.html
@@ -1,6 +1,7 @@
<!doctype html>
<html>
<head>
+ <meta charset="utf-8">
<title>Menu Visual Test: Default</title>
<link rel="stylesheet" href="../visual.css" type="text/css" />
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css" title="ui-theme" />
@@ -20,7 +21,7 @@
rows.each(function() {
$("<table>").width("100%").append(colgroup.clone()).append(this).wrap("<li><a></a></li>").parent().parent().appendTo(menu);
});
-
+
menu.menu({
select: function(event, ui) {
$("<div/>").text("Selected: " + ui.item.text()).appendTo("#log");
@@ -34,7 +35,7 @@
</style>
</head>
<body>
-
+
<table>
<colgroup><col style="width: 50%"><col style="width: 50%"></colgroup>
<thead>
@@ -54,7 +55,7 @@
</tr>
</tbody>
</table>
-
+
<div class="ui-widget" style="clear: left; margin-top:2em; font-family:Arial">
Log:
<div id="log" style="height: 400px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
diff --git a/tests/visual/position/position.html b/tests/visual/position/position.html
index b9b769d9b..64c5d2300 100644
--- a/tests/visual/position/position.html
+++ b/tests/visual/position/position.html
@@ -10,23 +10,31 @@
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>
- <script type="text/javascript" src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
<script type="text/javascript">
$(function() {
var inputs = $("input");
$("ul").insertAfter(inputs);
$(window).resize(function() {
inputs.each(function() {
- $(this).position({
+ var input = $(this).position({
my: this.id.replace(/-/, " "),
at: this.id.replace(/-/, " "),
of: "#container",
collision: "none"
});
- $(this).next().menu().position({
- my: "left top+20",
+ var menu = $(this).next().menu()
+ menu.position({
+ my: "left+30 top+20",
at: "left bottom",
of: this,
+ using: function( position, feedback ) {
+ input.val(feedback.horizontal + " " + feedback.vertical)
+ $(this).offset( position );
+ $(this)
+ .removeClass("left right top bottom center middle")
+ .addClass(feedback.horizontal)
+ .addClass(feedback.vertical);
+ }
});
});
}).resize();
@@ -44,11 +52,11 @@
top: -22px;
left: 5px;
}
- .ui-flipped-left:before {
+ .right:before {
left: auto;
right: 5px;
}
- .ui-flipped-top:before {
+ .bottom:before {
content: "↓";
top: auto;
bottom: -19px;
diff --git a/tests/visual/position/position_feedback.html b/tests/visual/position/position_feedback.html
new file mode 100644
index 000000000..006a1be02
--- /dev/null
+++ b/tests/visual/position/position_feedback.html
@@ -0,0 +1,146 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Position Visual Test: Default</title>
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.position.js"></script>
+ <script src="../../../ui/jquery.ui.menu.js"></script>
+ <script>
+ $(function() {
+ function using( position, feedback ) {
+ $( this )
+ .css( position )
+ .text( feedback.horizontal + " " + feedback.vertical + " " + feedback.important )
+ .removeClass( "left right top bottom center middle vertical horizontal" )
+ .addClass( feedback.horizontal )
+ .addClass( feedback.vertical )
+ .addClass( feedback.important );
+ }
+
+ var element = $( ".element" ),
+ target = $( "#target" ).position({
+ my: "center",
+ at: "center",
+ of: window
+ }),
+ targetOffset = target.offset(),
+ oppositeElement = element.clone().width( 50 ).appendTo( "body" ),
+ leftElement = element.clone().width( 50 ).height( 150 ).appendTo( "body" ),
+ rightElement = element.clone().height( 150 ).width( 150 ).appendTo( "body" );
+
+ $.each([
+ "center top-100",
+ "right+25 top-50",
+ "right+75 top",
+ "right+75 center",
+ "right+75 bottom",
+ "right+25 bottom+50",
+ "center bottom+100",
+ "left-25 bottom+50",
+ "left-75 bottom",
+ "left-75 center",
+ "left-75 top",
+ "left-25 top-50"
+ ], function( index, direction ) {
+ element.clone().insertAfter( target ).position({
+ my: "center",
+ at: direction,
+ of: target,
+ using: using
+ });
+ });
+
+ element.width( 150 );
+ $( document ).on( "mousemove", function( event ) {
+ var base = {
+ my: "left top",
+ at: "left top",
+ of: target,
+ using: using
+ };
+ element.position( $.extend({
+ offset: (event.pageX - targetOffset.left) + " " + (event.pageY - targetOffset.top)
+ }, base ));
+ oppositeElement.position( $.extend({
+ offset: (-1 * (event.pageX - targetOffset.left)) + " " + (-1 * (event.pageY - targetOffset.top))
+ }, base ));
+ leftElement.position( $.extend({
+ offset: (-0.9 * (event.pageX - targetOffset.left)) + " " + (0.9 * (event.pageY - targetOffset.top))
+ }, base ));
+ rightElement.position( $.extend({
+ offset: (0.9 * (event.pageX - targetOffset.left)) + " " + (-0.9 * (event.pageY - targetOffset.top))
+ }, base) );
+ });
+ });
+ </script>
+ <style>
+ #target, .element {
+ position: absolute;
+ border: 1px solid black;
+ border-radius: 5px;
+ width: 75px;
+ height: 25px;
+ padding: 5px;
+ }
+ #target {
+ height: 75px;
+ }
+ .element:before {
+ font-size: 12pt;
+ content: "↑";
+ position: absolute;
+ top: -19px;
+ left: 5px;
+ }
+ .right:before {
+ left: auto;
+ right: 5px;
+ }
+ .bottom:before {
+ content: "↓";
+ top: auto;
+ bottom: -19px;
+ }
+ .center:before {
+ left: 50%;
+ right: auto;
+ }
+ .middle:before {
+ top: 50%;
+ bottom: auto;
+ }
+ .horizontal:before {
+ height: 10px;
+ top: 50%;
+ margin-top: -8px;
+ bottom: auto;
+ left: -18px;
+ right: auto;
+ content: "←";
+ }
+ .right.horizontal:before {
+ left: auto;
+ right: -18px;
+ content: "→";
+ }
+ .bottom.horizontal:before {
+ top: auto;
+ bottom: 5px;
+ }
+ .top.horizontal:before {
+ top: 5px;
+ }
+ </style>
+</head>
+<body>
+
+<div id="target">all around me</div>
+<div class="element"></div>
+
+</body>
+</html>
diff --git a/tests/visual/position/position_feedback_rotate.html b/tests/visual/position/position_feedback_rotate.html
new file mode 100644
index 000000000..11138b112
--- /dev/null
+++ b/tests/visual/position/position_feedback_rotate.html
@@ -0,0 +1,109 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Position Visual Test: Default</title>
+ <link rel="stylesheet" href="../visual.css">
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.2.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.position.js"></script>
+ <script src="../../../ui/jquery.ui.menu.js"></script>
+ <script>
+ $(function() {
+ function using( position, feedback ) {
+ var angleRad = Math.atan2(
+ feedback.target.top + feedback.target.height / 2 - feedback.element.top - feedback.element.height / 2,
+ feedback.target.left + feedback.target.width / 2 - feedback.element.left - feedback.element.width / 2
+ ) * 180 / Math.PI,
+ angle = Math.round( angleRad * 100) / 100;
+ $( this )
+ .css( position )
+ .text( feedback.horizontal + " " + feedback.vertical + " " + feedback.important + " " + angle + "°" )
+ .css({
+ "-webkit-transform": "rotate(" + angle + "deg)",
+ "-moz-transform": "rotate(" + angle + "deg)",
+ "-ms-transform": "rotate(" + angle + "deg)",
+ "-o-transform": "rotate(" + angle + "deg)",
+ "transform": "rotate(" + angle + "deg)"
+ });
+ }
+
+ var element = $( ".element" ),
+ target = $( "#target" ).position({
+ my: "center",
+ at: "center",
+ of: window
+ }),
+ targetOffset = target.offset();
+ oppositeElement = element.clone().width( 50 ).appendTo( "body" ),
+ leftElement = element.clone().width( 50 ).height( 150 ).appendTo( "body" ),
+ rightElement = element.clone().height( 150 ).width( 150 ).appendTo( "body" );
+
+ $.each([
+ "center top-100",
+ "right+25 top-50",
+ "right+75 top",
+ "right+75 center",
+ "right+75 bottom",
+ "right+25 bottom+50",
+ "center bottom+100",
+ "left-25 bottom+50",
+ "left-75 bottom",
+ "left-75 center",
+ "left-75 top",
+ "left-25 top-50"
+ ], function( index, direction ) {
+ element.clone().insertAfter( target ).position({
+ my: "center",
+ at: direction,
+ of: target,
+ using: using
+ });
+ });
+
+ element.width( 150 );
+ $( document ).on( "mousemove", function( event ) {
+ var base = {
+ my: "left top",
+ at: "left top",
+ of: target,
+ using: using
+ };
+ element.position( $.extend({
+ offset: (event.pageX - targetOffset.left) + " " + (event.pageY - targetOffset.top)
+ }, base ));
+ oppositeElement.position( $.extend({
+ offset: (-1 * (event.pageX - targetOffset.left)) + " " + (-1 * (event.pageY - targetOffset.top))
+ }, base ));
+ leftElement.position( $.extend({
+ offset: (-0.9 * (event.pageX - targetOffset.left)) + " " + (0.9 * (event.pageY - targetOffset.top))
+ }, base ));
+ rightElement.position( $.extend({
+ offset: (0.9 * (event.pageX - targetOffset.left)) + " " + (-0.9 * (event.pageY - targetOffset.top))
+ }, base ));
+ });
+ });
+ </script>
+ <style>
+ #target, .element {
+ position: absolute;
+ border: 1px solid black;
+ border-radius: 5px;
+ width: 75px;
+ height: 25px;
+ padding: 5px;
+ }
+ #target {
+ height: 75px;
+ }
+ </style>
+</head>
+<body>
+
+<div id="target">all around me</div>
+<div class="element"></div>
+
+</body>
+</html>
diff --git a/tests/visual/position/position_fit.html b/tests/visual/position/position_fit.html
index 9c60b78f6..a70423c79 100644
--- a/tests/visual/position/position_fit.html
+++ b/tests/visual/position/position_fit.html
@@ -10,15 +10,14 @@
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>
- <script type="text/javascript" src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
<script type="text/javascript">
$(function() {
var inputs = $("input");
$("ul").insertAfter(inputs);
inputs.each(function(index) {
$(this).position({
- my: this.id.replace(/-/, " "),
- at: this.id.replace(/-/, " "),
+ my: $(this).data("position"),
+ at: $(this).data("position"),
of: "#container"+index,
collision: "none"
});
@@ -114,25 +113,25 @@
<div id="container16" class="container2"></div>
<div id="container17" class="container2"></div>
-<input id="left-top" />
-<input id="center-top" />
-<input id="right-top" />
-<input id="left-top" />
-<input id="center-top" />
-<input id="right-top" />
-<input id="left-top" />
-<input id="center-top" />
-<input id="right-top" />
+<input data-position="left top" />
+<input data-position="center top" />
+<input data-position="right top" />
+<input data-position="left top" />
+<input data-position="center top" />
+<input data-position="right top" />
+<input data-position="left top" />
+<input data-position="center top" />
+<input data-position="right top" />
-<input id="left-top" />
-<input id="center-center" />
-<input id="right-bottom" />
-<input id="left-top" />
-<input id="center-center" />
-<input id="right-bottom" />
-<input id="left-top" />
-<input id="center-center" />
-<input id="right-bottom" />
+<input data-position="left top" />
+<input data-position="center center" />
+<input data-position="right bottom" />
+<input data-position="left top" />
+<input data-position="center center" />
+<input data-position="right bottom" />
+<input data-position="left top" />
+<input data-position="center center" />
+<input data-position="right bottom" />
<ul>
<li><a href="#">Java</a></li>
diff --git a/tests/visual/position/position_flip.html b/tests/visual/position/position_flip.html
index bae3c649b..b67c76fb3 100644
--- a/tests/visual/position/position_flip.html
+++ b/tests/visual/position/position_flip.html
@@ -10,15 +10,14 @@
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>
- <script type="text/javascript" src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
<script type="text/javascript">
$(function() {
var inputs = $("input");
$("ul").insertAfter(inputs);
inputs.each(function(index) {
$(this).position({
- my: this.id.replace(/-/, " "),
- at: this.id.replace(/-/, " "),
+ my: $(this).data("position"),
+ at: $(this).data("position"),
of: "#container"+index,
collision: "none"
});
@@ -53,15 +52,15 @@
<div id="container7" class="container" style="height:100px; margin-bottom: 500px;"></div>
<div id="container8" class="container" style="height:100px; margin-bottom: 500px;"></div>
-<input id="left-top" />
-<input id="center-top" />
-<input id="right-top" />
-<input id="left-center" />
-<input id="center-center" />
-<input id="right-center" />
-<input id="left-bottom" />
-<input id="center-center" />
-<input id="right-bottom" />
+<input data-position="left top" />
+<input data-position="center top" />
+<input data-position="right top" />
+<input data-position="left center" />
+<input data-position="center center" />
+<input data-position="right center" />
+<input data-position="left bottom" />
+<input data-position="center center" />
+<input data-position="right bottom" />
<ul>
<li><a href="#">Java</a></li>
diff --git a/tests/visual/position/position_flipfit.html b/tests/visual/position/position_flipfit.html
index fcfb75b6b..840dd5868 100644
--- a/tests/visual/position/position_flipfit.html
+++ b/tests/visual/position/position_flipfit.html
@@ -10,15 +10,14 @@
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>
- <script type="text/javascript" src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
<script type="text/javascript">
$(function() {
var inputs = $("input");
$("ul").insertAfter(inputs);
inputs.each(function(index) {
$(this).position({
- my: this.id.replace(/-/, " "),
- at: this.id.replace(/-/, " "),
+ my: $(this).data("position"),
+ at: $(this).data("position"),
of: "#container"+index,
collision: "none"
});
@@ -59,18 +58,18 @@
<div id="container10" class="container" style="height:100px; margin-bottom: 500px;"></div>
<div id="container11" class="container" style="height:100px; margin-bottom: 500px;"></div>
-<input id="left-top" />
-<input id="center-top" />
-<input id="right-top" />
-<input id="left-top" />
-<input id="center-top" />
-<input id="right-top" />
-<input id="left-center" />
-<input id="center-center" />
-<input id="right-center" />
-<input id="left-bottom" />
-<input id="center-center" />
-<input id="right-bottom" />
+<input data-position="left top" />
+<input data-position="center top" />
+<input data-position="right top" />
+<input data-position="left top" />
+<input data-position="center top" />
+<input data-position="right top" />
+<input data-position="left center" />
+<input data-position="center center" />
+<input data-position="right center" />
+<input data-position="left bottom" />
+<input data-position="center center" />
+<input data-position="right bottom" />
<ul>
<li><a href="#">Java</a></li>
diff --git a/tests/visual/position/position_margin.html b/tests/visual/position/position_margin.html
index 71d8f0a3c..2e3b63266 100644
--- a/tests/visual/position/position_margin.html
+++ b/tests/visual/position/position_margin.html
@@ -9,7 +9,6 @@
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
- <script type="text/javascript" src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
<script type="text/javascript">
$(function() {
$( "#elem" ).position({
diff --git a/tests/visual/position/position_within.html b/tests/visual/position/position_within.html
index 7d8813582..692cb1067 100644
--- a/tests/visual/position/position_within.html
+++ b/tests/visual/position/position_within.html
@@ -97,7 +97,7 @@
collision: $( "#collision_horizontal" ).val() + " " + $( "#collision_vertical" ).val()
});
}
- $( ".demo" ).append("<div style='width:5000px;height:5000px;' />").css("overflow","auto");
+ $( ".demo" ).css("overflow","scroll");
$( ".positionable" ).css( "opacity", 0.5 );
diff --git a/tests/visual/theme.html b/tests/visual/theme.html
index fe9146169..83e46d97c 100644
--- a/tests/visual/theme.html
+++ b/tests/visual/theme.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <meta charset="utf-8">
<title>jQuery UI Example Page</title>
<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css" type="text/css">
<script type="text/javascript" src="../../jquery-1.7.2.js"></script>
@@ -28,26 +28,26 @@
// Accordion
$(".accordion").accordion({ header: "h3" });
$(".accordion").last().accordion("option", "icons", false);
-
-
+
+
// Tabs
$('#tabs').tabs();
-
- // Dialog
+
+ // Dialog
$('#dialog').dialog({
autoOpen: false,
width: 600,
buttons: {
- "Ok": function() {
- $(this).dialog("close");
- },
- "Cancel": function() {
- $(this).dialog("close");
- }
+ "Ok": function() {
+ $(this).dialog("close");
+ },
+ "Cancel": function() {
+ $(this).dialog("close");
+ }
}
});
-
+
// Dialog Link
$('#dialog_link').click(function(){
$('#dialog').dialog('open');
@@ -59,19 +59,19 @@
inline: true,
showWeek: true
});
-
+
$('#multidatepicker').datepicker({
numberOfMonths: 3,
showButtonPanel: true,
inline: true
});
-
+
// Slider
$('.slider').slider({
range: true,
values: [17, 67]
});
-
+
$("#eq > span").each(function() {
var value = parseInt($(this).text());
$(this).empty().slider({
@@ -81,19 +81,19 @@
orientation: "vertical"
});
});
-
-
+
+
// Progressbar
$("#progressbar").progressbar({
- value: 20
+ value: 20
});
-
+
//hover states on the static widgets
$('#dialog_link, ul#icons li').hover(
- function() { $(this).addClass('ui-state-hover'); },
+ function() { $(this).addClass('ui-state-hover'); },
function() { $(this).removeClass('ui-state-hover'); }
);
-
+
$(".buttonset > button").button()
.next()
.button({
@@ -104,8 +104,8 @@
})
.parent()
.buttonset();
-
-
+
+
$('#beginning').button({
text: false,
icons: {
@@ -144,7 +144,7 @@
});
$("#shuffle").button();
$("#repeat").buttonset();
-
+
});
</script>
<style type="text/css">
@@ -160,13 +160,13 @@
#eq span { height:120px; float:left; margin:15px }
.buttonset {margin-bottom: 5px; }
#toolbar { padding: 10px 4px; }
- </style>
+ </style>
</head>
<body>
<!-- <p style="font-size: 1.3em; line-height: 1.5; margin: 1em 0; width: 50%;">This page demonstrates the widgets using a theme.</p> -->
<div id="switcher" style="position:absolute; right: 20px; top: 20px;"></div>
-
+
<!-- Accordion -->
<h2 class="demoHeaders">Accordion</h2>
<div class="columnbox">
@@ -201,8 +201,8 @@
</div>
</div>
</div>
-
-
+
+
<!-- Tabs -->
<h2 class="demoHeaders">Tabs</h2>
<div id="tabs">
@@ -215,20 +215,20 @@
<div id="tabs-2">Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.</div>
<div id="tabs-3">Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.</div>
</div>
-
+
<!-- Dialog NOTE: Dialog is not generated by UI in this demo so it can be visually styled in themeroller-->
<h2 class="demoHeaders">Dialog</h2>
<p><a href="#" id="dialog_link" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-newwin"></span>Open Dialog</a></p>
-
+
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable" ><div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"><span class="ui-dialog-title">Inline Dialog</span><a href="#" class="ui-dialog-titlebar-close ui-corner-all" ><span class="ui-icon ui-icon-closethick" >close</span></a></div><div class="ui-dialog-content ui-widget-content" >
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div><div class="ui-resizable-handle ui-resizable-n" ></div><div class="ui-resizable-handle ui-resizable-e" ></div><div class="ui-resizable-handle ui-resizable-s" ></div><div class="ui-resizable-handle ui-resizable-w" ></div><div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se ui-icon-grip-diagonal-se" ></div><div class="ui-resizable-handle ui-resizable-sw" ></div><div class="ui-resizable-handle ui-resizable-ne" ></div><div class="ui-resizable-handle ui-resizable-nw" ></div><div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"><button type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">Ok</span></button><button type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">Cancel</span></button></div></div>
-
-
+
+
<h2 class="demoHeaders">Overlay and Shadow Classes <em>(not currently used in UI widgets)</em></h2>
<div style="position: relative; width: 96%; height: 200px; padding:1% 4%; overflow:hidden;" class="fakewindowcontain">
<p>Lorem ipsum dolor sit amet, Nulla nec tortor. Donec id elit quis purus consectetur consequat. </p><p>Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. </p><p>Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. </p><p>Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. </p><p>Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. </p><p>Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. </p>
-
+
<!-- ui-dialog -->
<div class="ui-overlay"><div class="ui-widget-overlay"></div><div class="ui-widget-shadow ui-corner-all" style="width: 302px; height: 152px; position: absolute; left: 50px; top: 30px;"></div></div>
<div style="position: absolute; width: 280px; height: 130px;left: 50px; top: 30px; padding: 10px;" class="ui-widget ui-widget-content ui-corner-all">
@@ -236,24 +236,24 @@
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
</div>
-
+
</div>
-
+
<!-- ui-dialog -->
<div id="dialog" title="Dialog Title">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
-
-
-
+
+
+
<h2 class="demoHeaders">Framework Icons (content color preview)</h2>
<ul id="icons" class="ui-widget ui-helper-clearfix">
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-n"><span class="ui-icon ui-icon-carat-1-n"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-ne"><span class="ui-icon ui-icon-carat-1-ne"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-e"><span class="ui-icon ui-icon-carat-1-e"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-se"><span class="ui-icon ui-icon-carat-1-se"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-s"><span class="ui-icon ui-icon-carat-1-s"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-sw"><span class="ui-icon ui-icon-carat-1-sw"></span></li>
@@ -263,7 +263,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-carat-2-e-w"><span class="ui-icon ui-icon-carat-2-e-w"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-n"><span class="ui-icon ui-icon-triangle-1-n"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-ne"><span class="ui-icon ui-icon-triangle-1-ne"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-e"><span class="ui-icon ui-icon-triangle-1-e"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-se"><span class="ui-icon ui-icon-triangle-1-se"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-s"><span class="ui-icon ui-icon-triangle-1-s"></span></li>
@@ -273,7 +273,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-n-s"><span class="ui-icon ui-icon-triangle-2-n-s"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-e-w"><span class="ui-icon ui-icon-triangle-2-e-w"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-n"><span class="ui-icon ui-icon-arrow-1-n"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-ne"><span class="ui-icon ui-icon-arrow-1-ne"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-e"><span class="ui-icon ui-icon-arrow-1-e"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-se"><span class="ui-icon ui-icon-arrow-1-se"></span></li>
@@ -283,7 +283,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-nw"><span class="ui-icon ui-icon-arrow-1-nw"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-n-s"><span class="ui-icon ui-icon-arrow-2-n-s"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-ne-sw"><span class="ui-icon ui-icon-arrow-2-ne-sw"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-e-w"><span class="ui-icon ui-icon-arrow-2-e-w"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-se-nw"><span class="ui-icon ui-icon-arrow-2-se-nw"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-n"><span class="ui-icon ui-icon-arrowstop-1-n"></span></li>
@@ -293,7 +293,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-n"><span class="ui-icon ui-icon-arrowthick-1-n"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-ne"><span class="ui-icon ui-icon-arrowthick-1-ne"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-e"><span class="ui-icon ui-icon-arrowthick-1-e"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-se"><span class="ui-icon ui-icon-arrowthick-1-se"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-s"><span class="ui-icon ui-icon-arrowthick-1-s"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-sw"><span class="ui-icon ui-icon-arrowthick-1-sw"></span></li>
@@ -303,7 +303,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-ne-sw"><span class="ui-icon ui-icon-arrowthick-2-ne-sw"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-e-w"><span class="ui-icon ui-icon-arrowthick-2-e-w"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-se-nw"><span class="ui-icon ui-icon-arrowthick-2-se-nw"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-n"><span class="ui-icon ui-icon-arrowthickstop-1-n"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-e"><span class="ui-icon ui-icon-arrowthickstop-1-e"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-s"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span></li>
@@ -313,7 +313,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-e"><span class="ui-icon ui-icon-arrowreturnthick-1-e"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-s"><span class="ui-icon ui-icon-arrowreturnthick-1-s"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-w"><span class="ui-icon ui-icon-arrowreturn-1-w"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-n"><span class="ui-icon ui-icon-arrowreturn-1-n"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-e"><span class="ui-icon ui-icon-arrowreturn-1-e"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-s"><span class="ui-icon ui-icon-arrowreturn-1-s"></span></li>
@@ -323,7 +323,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-s"><span class="ui-icon ui-icon-arrowrefresh-1-s"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4"><span class="ui-icon ui-icon-arrow-4"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4-diag"><span class="ui-icon ui-icon-arrow-4-diag"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-extlink"><span class="ui-icon ui-icon-extlink"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-newwin"><span class="ui-icon ui-icon-newwin"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-refresh"><span class="ui-icon ui-icon-refresh"></span></li>
@@ -333,7 +333,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-folder-collapsed"><span class="ui-icon ui-icon-folder-collapsed"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-folder-open"><span class="ui-icon ui-icon-folder-open"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-document"><span class="ui-icon ui-icon-document"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-document-b"><span class="ui-icon ui-icon-document-b"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-note"><span class="ui-icon ui-icon-note"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></li>
@@ -343,7 +343,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-person"><span class="ui-icon ui-icon-person"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-print"><span class="ui-icon ui-icon-print"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-trash"><span class="ui-icon ui-icon-trash"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-locked"><span class="ui-icon ui-icon-locked"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-unlocked"><span class="ui-icon ui-icon-unlocked"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-bookmark"><span class="ui-icon ui-icon-bookmark"></span></li>
@@ -353,7 +353,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-calculator"><span class="ui-icon ui-icon-calculator"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-cart"><span class="ui-icon ui-icon-cart"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-pencil"><span class="ui-icon ui-icon-pencil"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-clock"><span class="ui-icon ui-icon-clock"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-disk"><span class="ui-icon ui-icon-disk"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-calendar"><span class="ui-icon ui-icon-calendar"></span></li>
@@ -363,7 +363,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-wrench"><span class="ui-icon ui-icon-wrench"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-gear"><span class="ui-icon ui-icon-gear"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-heart"><span class="ui-icon ui-icon-heart"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-star"><span class="ui-icon ui-icon-star"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-link"><span class="ui-icon ui-icon-link"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-cancel"><span class="ui-icon ui-icon-cancel"></span></li>
@@ -373,7 +373,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-minusthick"><span class="ui-icon ui-icon-minusthick"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-close"><span class="ui-icon ui-icon-close"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-closethick"><span class="ui-icon ui-icon-closethick"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-key"><span class="ui-icon ui-icon-key"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-lightbulb"><span class="ui-icon ui-icon-lightbulb"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-scissors"><span class="ui-icon ui-icon-scissors"></span></li>
@@ -384,7 +384,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-video"><span class="ui-icon ui-icon-video"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-script"><span class="ui-icon ui-icon-script"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-alert"><span class="ui-icon ui-icon-alert"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-info"><span class="ui-icon ui-icon-info"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-notice"><span class="ui-icon ui-icon-notice"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-help"><span class="ui-icon ui-icon-help"></span></li>
@@ -396,7 +396,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-pin-s"><span class="ui-icon ui-icon-pin-s"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-play"><span class="ui-icon ui-icon-play"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-pause"><span class="ui-icon ui-icon-pause"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-seek-next"><span class="ui-icon ui-icon-seek-next"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-seek-prev"><span class="ui-icon ui-icon-seek-prev"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-seek-end"><span class="ui-icon ui-icon-seek-end"></span></li>
@@ -406,7 +406,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-volume-off"><span class="ui-icon ui-icon-volume-off"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-volume-on"><span class="ui-icon ui-icon-volume-on"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-power"><span class="ui-icon ui-icon-power"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-signal-diag"><span class="ui-icon ui-icon-signal-diag"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-signal"><span class="ui-icon ui-icon-signal"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-battery-0"><span class="ui-icon ui-icon-battery-0"></span></li>
@@ -416,7 +416,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-plus"><span class="ui-icon ui-icon-circle-plus"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-minus"><span class="ui-icon ui-icon-circle-minus"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-close"><span class="ui-icon ui-icon-circle-close"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-e"><span class="ui-icon ui-icon-circle-triangle-e"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-s"><span class="ui-icon ui-icon-circle-triangle-s"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-w"><span class="ui-icon ui-icon-circle-triangle-w"></span></li>
@@ -426,7 +426,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-w"><span class="ui-icon ui-icon-circle-arrow-w"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-n"><span class="ui-icon ui-icon-circle-arrow-n"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomin"><span class="ui-icon ui-icon-circle-zoomin"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomout"><span class="ui-icon ui-icon-circle-zoomout"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-circle-check"><span class="ui-icon ui-icon-circle-check"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-plus"><span class="ui-icon ui-icon-circlesmall-plus"></span></li>
@@ -436,7 +436,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-minus"><span class="ui-icon ui-icon-squaresmall-minus"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-close"><span class="ui-icon ui-icon-squaresmall-close"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-vertical"><span class="ui-icon ui-icon-grip-dotted-vertical"></span></li>
-
+
<li class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-horizontal"><span class="ui-icon ui-icon-grip-dotted-horizontal"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-vertical"><span class="ui-icon ui-icon-grip-solid-vertical"></span></li>
<li class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-horizontal"><span class="ui-icon ui-icon-grip-solid-horizontal"></span></li>
@@ -444,7 +444,7 @@
<li class="ui-state-default ui-corner-all" title=".ui-icon-grip-diagonal-se"><span class="ui-icon ui-icon-grip-diagonal-se"></span></li>
</ul>
-
+
<!-- Slider -->
<h2 class="demoHeaders">Slider</h2>
<div class="columnbox">
@@ -461,8 +461,8 @@
<span>70</span>
</div>
</div>
-
-
+
+
<!-- Datepicker -->
<h2 class="demoHeaders">Datepicker</h2>
<div class="columnbox" style="width: 32%">
@@ -471,35 +471,35 @@
<div class="columnbox" style="width: 66%; height: 220px;">
<div id="multidatepicker"></div>
</div>
-
-
+
+
<!-- Progressbar -->
- <h2 class="demoHeaders">Progressbar</h2>
+ <h2 class="demoHeaders">Progressbar</h2>
<div id="progressbar"></div>
-
+
<!-- Highlight / Error -->
<h2 class="demoHeaders">Highlight / Error</h2>
<div class="ui-widget">
- <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
+ <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
<p><span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
<strong>Hey!</strong> Sample ui-state-highlight style.</p>
</div>
</div>
<br/>
<div class="ui-widget">
- <div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
- <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
+ <div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
+ <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
<strong>Alert:</strong> Sample ui-state-error style.</p>
</div>
</div>
-
+
<h2 class="demoHeaders">Button</h2>
-
+
<div class="buttonset">
<button id="rerun">Run last action</button>
<button id="select">Select an action</button>
</div>
-
+
<span id="toolbar" class="ui-widget-header ui-corner-all">
<button id="beginning">go to beginning</button>
<button id="rewind">rewind</button>
@@ -507,18 +507,18 @@
<button id="stop">stop</button>
<button id="forward">fast forward</button>
<button id="end">go to end</button>
-
+
<input type="checkbox" id="shuffle" /><label for="shuffle">Shuffle</label>
-
+
<span id="repeat">
<input type="radio" id="repeat0" name="repeat" checked="checked" /><label for="repeat0">No Repeat</label>
<input type="radio" id="repeat1" name="repeat" /><label for="repeat1">Once</label>
<input type="radio" id="repeatall" name="repeat" /><label for="repeatall">All</label>
</span>
- </span>
-
+ </span>
+
<!-- theme switcher -->
-
+
<script src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
<script>
$('#switcher').themeswitcher();
diff --git a/tests/visual/tooltip/animations.html b/tests/visual/tooltip/animations.html
index 10235b2f9..38ee28f1d 100644
--- a/tests/visual/tooltip/animations.html
+++ b/tests/visual/tooltip/animations.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
+ <meta charset="utf-8">
<title>Tooltip Visual Test: Default</title>
<link rel="stylesheet" href="../visual.css" type="text/css" />
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
diff --git a/tests/visual/tooltip/tooltip.html b/tests/visual/tooltip/tooltip.html
index 63c756ce0..da811645c 100644
--- a/tests/visual/tooltip/tooltip.html
+++ b/tests/visual/tooltip/tooltip.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
+ <meta charset="utf-8">
<title>Tooltip Visual Test: Default</title>
<link rel="stylesheet" href="../visual.css" type="text/css" />
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">