diff --git a/tests/.jshintrc b/tests/.jshintrc index 04d5371fc7e..6bdcee94db9 100644 --- a/tests/.jshintrc +++ b/tests/.jshintrc @@ -18,24 +18,11 @@ "jquery": true, "globals": { - "asyncTest": false, - "deepEqual": false, "define": false, - "equal": false, - "expect": false, "Globalize": false, - "module": false, - "notEqual": false, - "notDeepEqual": false, - "notStrictEqual": false, - "ok": false, - "QUnit": true, + "QUnit": false, "require": true, "requirejs": true, - "start": false, - "strictEqual": false, - "stop": false, - "test": false, "JSHINT": false } } diff --git a/tests/lib/common.js b/tests/lib/common.js index d0d72ab8a10..57b7768cf93 100644 --- a/tests/lib/common.js +++ b/tests/lib/common.js @@ -1,6 +1,7 @@ define( [ - "jquery" -], function( $ ) { + "qunit", + "jquery" ], +function( QUnit, $ ) { var exports = {}; @@ -8,39 +9,39 @@ function testWidgetDefaults( widget, defaults ) { var pluginDefaults = $.ui[ widget ].prototype.options; // Ensure that all defaults have the correct value - test( "defined defaults", function() { + QUnit.test( "defined defaults", function( assert ) { var count = 0; $.each( defaults, function( key, val ) { - expect( ++count ); + assert.expect( ++count ); if ( $.isFunction( val ) ) { - ok( $.isFunction( pluginDefaults[ key ] ), key ); + assert.ok( $.isFunction( pluginDefaults[ key ] ), key ); return; } - deepEqual( pluginDefaults[ key ], val, key ); + assert.deepEqual( pluginDefaults[ key ], val, key ); } ); } ); // Ensure that all defaults were tested - test( "tested defaults", function() { + QUnit.test( "tested defaults", function( assert ) { var count = 0; $.each( pluginDefaults, function( key ) { - expect( ++count ); - ok( key in defaults, key ); + assert.expect( ++count ); + assert.ok( key in defaults, key ); } ); } ); } function testWidgetOverrides( widget ) { if ( $.uiBackCompat === false ) { - test( "$.widget overrides", function() { - expect( 4 ); + QUnit.test( "$.widget overrides", function( assert ) { + assert.expect( 4 ); $.each( [ "_createWidget", "destroy", "option", "_trigger" ], function( i, method ) { - strictEqual( $.ui[ widget ].prototype[ method ], + assert.strictEqual( $.ui[ widget ].prototype[ method ], $.Widget.prototype[ method ], "should not override " + method ); } ); } ); @@ -48,24 +49,24 @@ function testWidgetOverrides( widget ) { } function testBasicUsage( widget ) { - test( "basic usage", function() { - expect( 3 ); + QUnit.test( "basic usage", function( assert ) { + assert.expect( 3 ); var defaultElement = $.ui[ widget ].prototype.defaultElement; $( defaultElement ).appendTo( "body" )[ widget ]().remove(); - ok( true, "initialized on element" ); + assert.ok( true, "initialized on element" ); $( defaultElement )[ widget ]().remove(); - ok( true, "initialized on disconnected DOMElement - never connected" ); + assert.ok( true, "initialized on disconnected DOMElement - never connected" ); // Ensure manipulating removed elements works (#3664) $( defaultElement ).appendTo( "body" ).remove()[ widget ]().remove(); - ok( true, "initialized on disconnected DOMElement - removed" ); + assert.ok( true, "initialized on disconnected DOMElement - removed" ); } ); } exports.testWidget = function( widget, settings ) { - module( widget + ": common widget" ); + QUnit.module( widget + ": common widget" ); exports.testJshint( "/widgets/" + widget ); testWidgetDefaults( widget, settings.defaults ); @@ -73,9 +74,9 @@ exports.testWidget = function( widget, settings ) { if ( !settings.noDefaultElement ) { testBasicUsage( widget ); } - test( "version", function() { - expect( 1 ); - ok( "version" in $.ui[ widget ].prototype, "version property exists" ); + QUnit.test( "version", function( assert ) { + assert.expect( 1 ); + assert.ok( "version" in $.ui[ widget ].prototype, "version property exists" ); } ); }; @@ -87,9 +88,10 @@ exports.testJshint = function( module ) { return; } - asyncTest( "JSHint", function() { + QUnit.test( "JSHint", function( assert ) { + var ready = assert.async(); require( [ "jshint" ], function() { - expect( 1 ); + assert.expect( 1 ); $.when( $.ajax( { @@ -119,12 +121,12 @@ exports.testJshint = function( module ) { return "[L" + error.line + ":C" + error.character + "] " + error.reason + "\n" + error.evidence + "\n"; } ).join( "\n" ); - ok( passed, errors ); - start(); + assert.ok( passed, errors ); + ready(); } ) .fail( function( hintError, srcError ) { - ok( false, "error loading source: " + ( hintError || srcError ).statusText ); - start(); + assert.ok( false, "error loading source: " + ( hintError || srcError ).statusText ); + ready(); } ); } ); } ); diff --git a/tests/unit/accordion/core.js b/tests/unit/accordion/core.js index 75f4b4ee31b..119280bc940 100644 --- a/tests/unit/accordion/core.js +++ b/tests/unit/accordion/core.js @@ -1,129 +1,131 @@ define( [ + "qunit", "jquery", "./helper", "ui/widgets/accordion" -], function( $, testHelper ) { +], function( QUnit, $, testHelper ) { var setupTeardown = testHelper.setupTeardown, state = testHelper.state; -module( "accordion: core", setupTeardown() ); +QUnit.module( "accordion: core", setupTeardown() ); $.each( { div: "#list1", ul: "#navigation", dl: "#accordion-dl" }, function( type, selector ) { - test( "markup structure: " + type, function( assert ) { - expect( 10 ); + QUnit.test( "markup structure: " + type, function( assert ) { + assert.expect( 10 ); var element = $( selector ).accordion(), headers = element.find( ".ui-accordion-header" ), content = headers.next(); assert.hasClasses( element, "ui-accordion ui-widget" ); - equal( headers.length, 3, ".ui-accordion-header elements exist, correct number" ); + assert.equal( headers.length, 3, ".ui-accordion-header elements exist, correct number" ); assert.hasClasses( headers[ 0 ], "ui-accordion-header ui-accordion-header-active ui-accordion-icons" ); assert.hasClasses( headers[ 1 ], "ui-accordion-header ui-accordion-header-collapsed ui-accordion-icons" ); assert.hasClasses( headers[ 2 ], "ui-accordion-header ui-accordion-header-collapsed ui-accordion-icons" ); - equal( content.length, 3, ".ui-accordion-content elements exist, correct number" ); + assert.equal( content.length, 3, ".ui-accordion-content elements exist, correct number" ); assert.hasClasses( content[ 0 ], "ui-accordion-content ui-widget-content ui-accordion-content-active" ); assert.hasClasses( content[ 1 ], "ui-accordion-content ui-widget-content" ); assert.hasClasses( content[ 2 ], "ui-accordion-content ui-widget-content" ); - deepEqual( element.find( ".ui-accordion-header" ).next().get(), + assert.deepEqual( element.find( ".ui-accordion-header" ).next().get(), element.find( ".ui-accordion-content" ).get(), "content panels come immediately after headers" ); } ); } ); -test( "handle click on header-descendant", function() { - expect( 1 ); +QUnit.test( "handle click on header-descendant", function( assert ) { + assert.expect( 1 ); var element = $( "#navigation" ).accordion(); $( "#navigation h2:eq(1) a" ).trigger( "click" ); - state( element, 0, 1, 0 ); + state( assert, element, 0, 1, 0 ); } ); -test( "accessibility", function() { - expect( 61 ); +QUnit.test( "accessibility", function( assert ) { + assert.expect( 61 ); var element = $( "#list1" ).accordion( { active: 1, collapsible: true } ), headers = element.find( ".ui-accordion-header" ); - equal( element.attr( "role" ), "tablist", "element role" ); + assert.equal( element.attr( "role" ), "tablist", "element role" ); headers.each( function( i ) { var header = headers.eq( i ), panel = header.next(); - equal( header.attr( "role" ), "tab", "header " + i + " role" ); - equal( header.attr( "aria-controls" ), panel.attr( "id" ), "header " + i + " aria-controls" ); - equal( panel.attr( "role" ), "tabpanel", "panel " + i + " role" ); - equal( panel.attr( "aria-labelledby" ), header.attr( "id" ), "panel " + i + " aria-labelledby" ); + assert.equal( header.attr( "role" ), "tab", "header " + i + " role" ); + assert.equal( header.attr( "aria-controls" ), panel.attr( "id" ), "header " + i + " aria-controls" ); + assert.equal( panel.attr( "role" ), "tabpanel", "panel " + i + " role" ); + assert.equal( panel.attr( "aria-labelledby" ), header.attr( "id" ), "panel " + i + " aria-labelledby" ); } ); - equal( headers.eq( 1 ).attr( "tabindex" ), 0, "active header has tabindex=0" ); - equal( headers.eq( 1 ).attr( "aria-selected" ), "true", "active tab (1) has aria-selected=true" ); - equal( headers.eq( 1 ).attr( "aria-expanded" ), "true", "active tab (1) has aria-expanded=true" ); - equal( headers.eq( 1 ).next().attr( "aria-hidden" ), "false", "active tabpanel (1) has aria-hidden=false" ); - equal( headers.eq( 0 ).attr( "tabindex" ), -1, "inactive header (0) has tabindex=-1" ); - equal( headers.eq( 0 ).attr( "aria-selected" ), "false", "inactive tab (0) has aria-selected=false" ); - equal( headers.eq( 0 ).attr( "aria-expanded" ), "false", "inactive tab (0) has aria-expanded=false" ); - equal( headers.eq( 0 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (0) has aria-hidden=true" ); - equal( headers.eq( 2 ).attr( "tabindex" ), -1, "inactive header (2) has tabindex=-1" ); - equal( headers.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab (2) has aria-selected=false" ); - equal( headers.eq( 2 ).attr( "aria-expanded" ), "false", "inactive tab (2) has aria-expanded=false" ); - equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (2) has aria-hidden=true" ); + assert.equal( headers.eq( 1 ).attr( "tabindex" ), 0, "active header has tabindex=0" ); + assert.equal( headers.eq( 1 ).attr( "aria-selected" ), "true", "active tab (1) has aria-selected=true" ); + assert.equal( headers.eq( 1 ).attr( "aria-expanded" ), "true", "active tab (1) has aria-expanded=true" ); + assert.equal( headers.eq( 1 ).next().attr( "aria-hidden" ), "false", "active tabpanel (1) has aria-hidden=false" ); + assert.equal( headers.eq( 0 ).attr( "tabindex" ), -1, "inactive header (0) has tabindex=-1" ); + assert.equal( headers.eq( 0 ).attr( "aria-selected" ), "false", "inactive tab (0) has aria-selected=false" ); + assert.equal( headers.eq( 0 ).attr( "aria-expanded" ), "false", "inactive tab (0) has aria-expanded=false" ); + assert.equal( headers.eq( 0 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (0) has aria-hidden=true" ); + assert.equal( headers.eq( 2 ).attr( "tabindex" ), -1, "inactive header (2) has tabindex=-1" ); + assert.equal( headers.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab (2) has aria-selected=false" ); + assert.equal( headers.eq( 2 ).attr( "aria-expanded" ), "false", "inactive tab (2) has aria-expanded=false" ); + assert.equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (2) has aria-hidden=true" ); element.accordion( "option", "active", 0 ); - equal( headers.eq( 0 ).attr( "tabindex" ), 0, "active header (0) has tabindex=0" ); - equal( headers.eq( 0 ).attr( "aria-selected" ), "true", "active tab (0) has aria-selected=true" ); - equal( headers.eq( 0 ).attr( "aria-expanded" ), "true", "active tab (0) has aria-expanded=true" ); - equal( headers.eq( 0 ).next().attr( "aria-hidden" ), "false", "active tabpanel (0) has aria-hidden=false" ); - equal( headers.eq( 1 ).attr( "tabindex" ), -1, "inactive header (1) has tabindex=-1" ); - equal( headers.eq( 1 ).attr( "aria-selected" ), "false", "inactive tab (1) has aria-selected=false" ); - equal( headers.eq( 1 ).attr( "aria-expanded" ), "false", "inactive tab (1) has aria-expanded=false" ); - equal( headers.eq( 1 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (1) has aria-hidden=true" ); - equal( headers.eq( 2 ).attr( "tabindex" ), -1, "inactive header (2) has tabindex=-1" ); - equal( headers.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab (2) has aria-selected=false" ); - equal( headers.eq( 2 ).attr( "aria-expanded" ), "false", "inactive tab (2) has aria-expanded=false" ); - equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (2) has aria-hidden=true" ); + assert.equal( headers.eq( 0 ).attr( "tabindex" ), 0, "active header (0) has tabindex=0" ); + assert.equal( headers.eq( 0 ).attr( "aria-selected" ), "true", "active tab (0) has aria-selected=true" ); + assert.equal( headers.eq( 0 ).attr( "aria-expanded" ), "true", "active tab (0) has aria-expanded=true" ); + assert.equal( headers.eq( 0 ).next().attr( "aria-hidden" ), "false", "active tabpanel (0) has aria-hidden=false" ); + assert.equal( headers.eq( 1 ).attr( "tabindex" ), -1, "inactive header (1) has tabindex=-1" ); + assert.equal( headers.eq( 1 ).attr( "aria-selected" ), "false", "inactive tab (1) has aria-selected=false" ); + assert.equal( headers.eq( 1 ).attr( "aria-expanded" ), "false", "inactive tab (1) has aria-expanded=false" ); + assert.equal( headers.eq( 1 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (1) has aria-hidden=true" ); + assert.equal( headers.eq( 2 ).attr( "tabindex" ), -1, "inactive header (2) has tabindex=-1" ); + assert.equal( headers.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab (2) has aria-selected=false" ); + assert.equal( headers.eq( 2 ).attr( "aria-expanded" ), "false", "inactive tab (2) has aria-expanded=false" ); + assert.equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (2) has aria-hidden=true" ); element.accordion( "option", "active", false ); - equal( headers.eq( 0 ).attr( "tabindex" ), 0, "previously active header (0) has tabindex=0" ); - equal( headers.eq( 0 ).attr( "aria-selected" ), "false", "inactive tab (0) has aria-selected=false" ); - equal( headers.eq( 0 ).attr( "aria-expanded" ), "false", "inactive tab (0) has aria-expanded=false" ); - equal( headers.eq( 0 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (0) has aria-hidden=true" ); - equal( headers.eq( 1 ).attr( "tabindex" ), -1, "inactive header (1) has tabindex=-1" ); - equal( headers.eq( 1 ).attr( "aria-selected" ), "false", "inactive tab (1) has aria-selected=false" ); - equal( headers.eq( 1 ).attr( "aria-expanded" ), "false", "inactive tab (1) has aria-expanded=false" ); - equal( headers.eq( 1 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (1) has aria-hidden=true" ); - equal( headers.eq( 2 ).attr( "tabindex" ), -1, "inactive header (2) has tabindex=-1" ); - equal( headers.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab (2) has aria-selected=false" ); - equal( headers.eq( 2 ).attr( "aria-expanded" ), "false", "inactive tab (2) has aria-expanded=false" ); - equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (2) has aria-hidden=true" ); + assert.equal( headers.eq( 0 ).attr( "tabindex" ), 0, "previously active header (0) has tabindex=0" ); + assert.equal( headers.eq( 0 ).attr( "aria-selected" ), "false", "inactive tab (0) has aria-selected=false" ); + assert.equal( headers.eq( 0 ).attr( "aria-expanded" ), "false", "inactive tab (0) has aria-expanded=false" ); + assert.equal( headers.eq( 0 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (0) has aria-hidden=true" ); + assert.equal( headers.eq( 1 ).attr( "tabindex" ), -1, "inactive header (1) has tabindex=-1" ); + assert.equal( headers.eq( 1 ).attr( "aria-selected" ), "false", "inactive tab (1) has aria-selected=false" ); + assert.equal( headers.eq( 1 ).attr( "aria-expanded" ), "false", "inactive tab (1) has aria-expanded=false" ); + assert.equal( headers.eq( 1 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (1) has aria-hidden=true" ); + assert.equal( headers.eq( 2 ).attr( "tabindex" ), -1, "inactive header (2) has tabindex=-1" ); + assert.equal( headers.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab (2) has aria-selected=false" ); + assert.equal( headers.eq( 2 ).attr( "aria-expanded" ), "false", "inactive tab (2) has aria-expanded=false" ); + assert.equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (2) has aria-hidden=true" ); element.accordion( "option", "active", 1 ); - equal( headers.eq( 1 ).attr( "tabindex" ), 0, "active header has tabindex=0" ); - equal( headers.eq( 1 ).attr( "aria-selected" ), "true", "active tab (1) has aria-selected=true" ); - equal( headers.eq( 1 ).attr( "aria-expanded" ), "true", "active tab (1) has aria-expanded=true" ); - equal( headers.eq( 1 ).next().attr( "aria-hidden" ), "false", "active tabpanel (1) has aria-hidden=false" ); - equal( headers.eq( 0 ).attr( "tabindex" ), -1, "inactive header (0) has tabindex=-1" ); - equal( headers.eq( 0 ).attr( "aria-selected" ), "false", "inactive tab (0) has aria-selected=false" ); - equal( headers.eq( 0 ).attr( "aria-expanded" ), "false", "inactive tab (0) has aria-expanded=false" ); - equal( headers.eq( 0 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (0) has aria-hidden=true" ); - equal( headers.eq( 2 ).attr( "tabindex" ), -1, "inactive header (2) has tabindex=-1" ); - equal( headers.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab (2) has aria-selected=false" ); - equal( headers.eq( 2 ).attr( "aria-expanded" ), "false", "inactive tab (2) has aria-expanded=false" ); - equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (2) has aria-hidden=true" ); + assert.equal( headers.eq( 1 ).attr( "tabindex" ), 0, "active header has tabindex=0" ); + assert.equal( headers.eq( 1 ).attr( "aria-selected" ), "true", "active tab (1) has aria-selected=true" ); + assert.equal( headers.eq( 1 ).attr( "aria-expanded" ), "true", "active tab (1) has aria-expanded=true" ); + assert.equal( headers.eq( 1 ).next().attr( "aria-hidden" ), "false", "active tabpanel (1) has aria-hidden=false" ); + assert.equal( headers.eq( 0 ).attr( "tabindex" ), -1, "inactive header (0) has tabindex=-1" ); + assert.equal( headers.eq( 0 ).attr( "aria-selected" ), "false", "inactive tab (0) has aria-selected=false" ); + assert.equal( headers.eq( 0 ).attr( "aria-expanded" ), "false", "inactive tab (0) has aria-expanded=false" ); + assert.equal( headers.eq( 0 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (0) has aria-hidden=true" ); + assert.equal( headers.eq( 2 ).attr( "tabindex" ), -1, "inactive header (2) has tabindex=-1" ); + assert.equal( headers.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab (2) has aria-selected=false" ); + assert.equal( headers.eq( 2 ).attr( "aria-expanded" ), "false", "inactive tab (2) has aria-expanded=false" ); + assert.equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "inactive tabpanel (2) has aria-hidden=true" ); } ); -asyncTest( "keyboard support", function( assert ) { - expect( 13 ); +QUnit.test( "keyboard support", function( assert ) { + var ready = assert.async(); + assert.expect( 13 ); var element = $( "#list1" ).accordion(), headers = element.find( ".ui-accordion-header" ), anchor = headers.eq( 1 ).next().find( "a" ).eq( 0 ), keyCode = $.ui.keyCode; - equal( headers.filter( ".ui-state-focus" ).length, 0, "no headers focused on init" ); + assert.equal( headers.filter( ".ui-state-focus" ).length, 0, "no headers focused on init" ); headers.eq( 0 ).simulate( "focus" ); setTimeout( step1 ); @@ -180,13 +182,13 @@ asyncTest( "keyboard support", function( assert ) { } function step9() { - equal( element.accordion( "option", "active" ), 2, "ENTER activates panel" ); + assert.equal( element.accordion( "option", "active" ), 2, "ENTER activates panel" ); headers.eq( 1 ).simulate( "keydown", { keyCode: keyCode.SPACE } ); setTimeout( step10 ); } function step10() { - equal( element.accordion( "option", "active" ), 1, "SPACE activates panel" ); + assert.equal( element.accordion( "option", "active" ), 1, "SPACE activates panel" ); anchor.simulate( "focus" ); setTimeout( step11 ); } @@ -200,7 +202,7 @@ asyncTest( "keyboard support", function( assert ) { function step12() { assert.hasClasses( headers.eq( 1 ), "ui-state-focus", "CTRL+UP moves focus to header" ); - start(); + ready(); } } ); diff --git a/tests/unit/accordion/events.js b/tests/unit/accordion/events.js index 1634b402d0d..b9af7ce0649 100644 --- a/tests/unit/accordion/events.js +++ b/tests/unit/accordion/events.js @@ -1,16 +1,17 @@ define( [ + "qunit", "jquery", "./helper", "ui/widgets/accordion" -], function( $, testHelper ) { +], function( QUnit, $, testHelper ) { var setupTeardown = testHelper.setupTeardown, state = testHelper.state; -module( "accordion: events", setupTeardown() ); +QUnit.module( "accordion: events", setupTeardown() ); -test( "create", function() { - expect( 10 ); +QUnit.test( "create", function( assert ) { + assert.expect( 10 ); var element = $( "#list1" ), headers = element.children( "h3" ), @@ -18,10 +19,10 @@ test( "create", function() { element.accordion( { create: function( event, ui ) { - equal( ui.header.length, 1, "header length" ); - strictEqual( ui.header[ 0 ], headers[ 0 ], "header" ); - equal( ui.panel.length, 1, "panel length" ); - strictEqual( ui.panel[ 0 ], contents[ 0 ], "panel" ); + assert.equal( ui.header.length, 1, "header length" ); + assert.strictEqual( ui.header[ 0 ], headers[ 0 ], "header" ); + assert.equal( ui.panel.length, 1, "panel length" ); + assert.strictEqual( ui.panel[ 0 ], contents[ 0 ], "panel" ); } } ); element.accordion( "destroy" ); @@ -29,10 +30,10 @@ test( "create", function() { element.accordion( { active: 2, create: function( event, ui ) { - equal( ui.header.length, 1, "header length" ); - strictEqual( ui.header[ 0 ], headers[ 2 ], "header" ); - equal( ui.panel.length, 1, "panel length" ); - strictEqual( ui.panel[ 0 ], contents[ 2 ], "panel" ); + assert.equal( ui.header.length, 1, "header length" ); + assert.strictEqual( ui.header[ 0 ], headers[ 2 ], "header" ); + assert.equal( ui.panel.length, 1, "panel length" ); + assert.strictEqual( ui.panel[ 0 ], contents[ 2 ], "panel" ); } } ); element.accordion( "destroy" ); @@ -41,15 +42,15 @@ test( "create", function() { active: false, collapsible: true, create: function( event, ui ) { - equal( ui.header.length, 0, "header length" ); - equal( ui.panel.length, 0, "panel length" ); + assert.equal( ui.header.length, 0, "header length" ); + assert.equal( ui.panel.length, 0, "panel length" ); } } ); element.accordion( "destroy" ); } ); -test( "beforeActivate", function() { - expect( 38 ); +QUnit.test( "beforeActivate", function( assert ) { + assert.expect( 38 ); var element = $( "#list1" ).accordion( { active: false, collapsible: true @@ -58,63 +59,63 @@ test( "beforeActivate", function() { content = element.find( ".ui-accordion-content" ); element.one( "accordionbeforeactivate", function( event, ui ) { - ok( !( "originalEvent" in event ) ); - equal( ui.oldHeader.length, 0 ); - equal( ui.oldPanel.length, 0 ); - equal( ui.newHeader.length, 1 ); - strictEqual( ui.newHeader[ 0 ], headers[ 0 ] ); - equal( ui.newPanel.length, 1 ); - strictEqual( ui.newPanel[ 0 ], content[ 0 ] ); - state( element, 0, 0, 0 ); + assert.ok( !( "originalEvent" in event ) ); + assert.equal( ui.oldHeader.length, 0 ); + assert.equal( ui.oldPanel.length, 0 ); + assert.equal( ui.newHeader.length, 1 ); + assert.strictEqual( ui.newHeader[ 0 ], headers[ 0 ] ); + assert.equal( ui.newPanel.length, 1 ); + assert.strictEqual( ui.newPanel[ 0 ], content[ 0 ] ); + state( assert, element, 0, 0, 0 ); } ); element.accordion( "option", "active", 0 ); - state( element, 1, 0, 0 ); + state( assert, element, 1, 0, 0 ); element.one( "accordionbeforeactivate", function( event, ui ) { - equal( event.originalEvent.type, "click" ); - equal( ui.oldHeader.length, 1 ); - strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); - equal( ui.oldPanel.length, 1 ); - strictEqual( ui.oldPanel[ 0 ], content[ 0 ] ); - equal( ui.newHeader.length, 1 ); - strictEqual( ui.newHeader[ 0 ], headers[ 1 ] ); - equal( ui.newPanel.length, 1 ); - strictEqual( ui.newPanel[ 0 ], content[ 1 ] ); - state( element, 1, 0, 0 ); + assert.equal( event.originalEvent.type, "click" ); + assert.equal( ui.oldHeader.length, 1 ); + assert.strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); + assert.equal( ui.oldPanel.length, 1 ); + assert.strictEqual( ui.oldPanel[ 0 ], content[ 0 ] ); + assert.equal( ui.newHeader.length, 1 ); + assert.strictEqual( ui.newHeader[ 0 ], headers[ 1 ] ); + assert.equal( ui.newPanel.length, 1 ); + assert.strictEqual( ui.newPanel[ 0 ], content[ 1 ] ); + state( assert, element, 1, 0, 0 ); } ); headers.eq( 1 ).trigger( "click" ); - state( element, 0, 1, 0 ); + state( assert, element, 0, 1, 0 ); element.one( "accordionbeforeactivate", function( event, ui ) { - ok( !( "originalEvent" in event ) ); - equal( ui.oldHeader.length, 1 ); - strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); - equal( ui.oldPanel.length, 1 ); - strictEqual( ui.oldPanel[ 0 ], content[ 1 ] ); - equal( ui.newHeader.length, 0 ); - equal( ui.newPanel.length, 0 ); - state( element, 0, 1, 0 ); + assert.ok( !( "originalEvent" in event ) ); + assert.equal( ui.oldHeader.length, 1 ); + assert.strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); + assert.equal( ui.oldPanel.length, 1 ); + assert.strictEqual( ui.oldPanel[ 0 ], content[ 1 ] ); + assert.equal( ui.newHeader.length, 0 ); + assert.equal( ui.newPanel.length, 0 ); + state( assert, element, 0, 1, 0 ); } ); element.accordion( "option", "active", false ); - state( element, 0, 0, 0 ); + state( assert, element, 0, 0, 0 ); element.one( "accordionbeforeactivate", function( event, ui ) { - ok( !( "originalEvent" in event ) ); - equal( ui.oldHeader.length, 0 ); - equal( ui.oldPanel.length, 0 ); - equal( ui.newHeader.length, 1 ); - strictEqual( ui.newHeader[ 0 ], headers[ 2 ] ); - equal( ui.newPanel.length, 1 ); - strictEqual( ui.newPanel[ 0 ], content[ 2 ] ); + assert.ok( !( "originalEvent" in event ) ); + assert.equal( ui.oldHeader.length, 0 ); + assert.equal( ui.oldPanel.length, 0 ); + assert.equal( ui.newHeader.length, 1 ); + assert.strictEqual( ui.newHeader[ 0 ], headers[ 2 ] ); + assert.equal( ui.newPanel.length, 1 ); + assert.strictEqual( ui.newPanel[ 0 ], content[ 2 ] ); event.preventDefault(); - state( element, 0, 0, 0 ); + state( assert, element, 0, 0, 0 ); } ); element.accordion( "option", "active", 2 ); - state( element, 0, 0, 0 ); + state( assert, element, 0, 0, 0 ); } ); -test( "activate", function() { - expect( 21 ); +QUnit.test( "activate", function( assert ) { + assert.expect( 21 ); var element = $( "#list1" ).accordion( { active: false, collapsible: true @@ -123,44 +124,44 @@ test( "activate", function() { content = element.find( ".ui-accordion-content" ); element.one( "accordionactivate", function( event, ui ) { - equal( ui.oldHeader.length, 0 ); - equal( ui.oldPanel.length, 0 ); - equal( ui.newHeader.length, 1 ); - strictEqual( ui.newHeader[ 0 ], headers[ 0 ] ); - equal( ui.newPanel.length, 1 ); - strictEqual( ui.newPanel[ 0 ], content[ 0 ] ); + assert.equal( ui.oldHeader.length, 0 ); + assert.equal( ui.oldPanel.length, 0 ); + assert.equal( ui.newHeader.length, 1 ); + assert.strictEqual( ui.newHeader[ 0 ], headers[ 0 ] ); + assert.equal( ui.newPanel.length, 1 ); + assert.strictEqual( ui.newPanel[ 0 ], content[ 0 ] ); } ); element.accordion( "option", "active", 0 ); element.one( "accordionactivate", function( event, ui ) { - equal( ui.oldHeader.length, 1 ); - strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); - equal( ui.oldPanel.length, 1 ); - strictEqual( ui.oldPanel[ 0 ], content[ 0 ] ); - equal( ui.newHeader.length, 1 ); - strictEqual( ui.newHeader[ 0 ], headers[ 1 ] ); - equal( ui.newPanel.length, 1 ); - strictEqual( ui.newPanel[ 0 ], content[ 1 ] ); + assert.equal( ui.oldHeader.length, 1 ); + assert.strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); + assert.equal( ui.oldPanel.length, 1 ); + assert.strictEqual( ui.oldPanel[ 0 ], content[ 0 ] ); + assert.equal( ui.newHeader.length, 1 ); + assert.strictEqual( ui.newHeader[ 0 ], headers[ 1 ] ); + assert.equal( ui.newPanel.length, 1 ); + assert.strictEqual( ui.newPanel[ 0 ], content[ 1 ] ); } ); headers.eq( 1 ).trigger( "click" ); element.one( "accordionactivate", function( event, ui ) { - equal( ui.oldHeader.length, 1 ); - strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); - equal( ui.oldPanel.length, 1 ); - strictEqual( ui.oldPanel[ 0 ], content[ 1 ] ); - equal( ui.newHeader.length, 0 ); - equal( ui.newPanel.length, 0 ); + assert.equal( ui.oldHeader.length, 1 ); + assert.strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); + assert.equal( ui.oldPanel.length, 1 ); + assert.strictEqual( ui.oldPanel[ 0 ], content[ 1 ] ); + assert.equal( ui.newHeader.length, 0 ); + assert.equal( ui.newPanel.length, 0 ); } ); element.accordion( "option", "active", false ); // Prevent activation element.one( "accordionbeforeactivate", function( event ) { - ok( true ); + assert.ok( true ); event.preventDefault(); } ); element.one( "accordionactivate", function() { - ok( false ); + assert.ok( false ); } ); element.accordion( "option", "active", 1 ); } ); diff --git a/tests/unit/accordion/helper.js b/tests/unit/accordion/helper.js index b47510733f4..80bfc1854cc 100644 --- a/tests/unit/accordion/helper.js +++ b/tests/unit/accordion/helper.js @@ -1,13 +1,14 @@ define( [ + "qunit", "jquery", "lib/helper", "ui/widgets/accordion" -], function( $, helper ) { +], function( QUnit, $, helper ) { return $.extend( helper, { - equalHeight: function( accordion, height ) { + equalHeight: function( assert, accordion, height ) { accordion.find( ".ui-accordion-content" ).each( function() { - equal( $( this ).outerHeight(), height ); + assert.equal( $( this ).outerHeight(), height ); } ); }, @@ -23,12 +24,12 @@ return $.extend( helper, { }; }, - state: function( accordion ) { - var expected = $.makeArray( arguments ).slice( 1 ), + state: function( assert, accordion ) { + var expected = $.makeArray( arguments ).slice( 2 ), actual = accordion.find( ".ui-accordion-content" ).map( function() { return $( this ).css( "display" ) === "none" ? 0 : 1; } ).get(); - QUnit.push( QUnit.equiv( actual, expected ), actual, expected ); + assert.deepEqual( actual, expected ); } } ); diff --git a/tests/unit/accordion/methods.js b/tests/unit/accordion/methods.js index 3b1696e4504..1b11e91ee6b 100644 --- a/tests/unit/accordion/methods.js +++ b/tests/unit/accordion/methods.js @@ -1,47 +1,48 @@ define( [ + "qunit", "jquery", "./helper", "ui/widgets/accordion" -], function( $, testHelper ) { +], function( QUnit, $, testHelper ) { var equalHeight = testHelper.equalHeight, setupTeardown = testHelper.setupTeardown, state = testHelper.state; -module( "accordion: methods", setupTeardown() ); +QUnit.module( "accordion: methods", setupTeardown() ); -test( "destroy", function( assert ) { - expect( 1 ); +QUnit.test( "destroy", function( assert ) { + assert.expect( 1 ); assert.domEqual( "#list1", function() { $( "#list1" ).accordion().accordion( "destroy" ); } ); } ); -test( "enable/disable", function( assert ) { - expect( 7 ); +QUnit.test( "enable/disable", function( assert ) { + assert.expect( 7 ); var element = $( "#list1" ).accordion(); - state( element, 1, 0, 0 ); + state( assert, element, 1, 0, 0 ); element.accordion( "disable" ); assert.hasClasses( element, "ui-state-disabled" ); - equal( element.attr( "aria-disabled" ), "true", "element gets aria-disabled" ); + assert.equal( element.attr( "aria-disabled" ), "true", "element gets aria-disabled" ); assert.hasClasses( element, "ui-accordion-disabled" ); // Event does nothing element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" ); - state( element, 1, 0, 0 ); + state( assert, element, 1, 0, 0 ); // Option still works element.accordion( "option", "active", 1 ); - state( element, 0, 1, 0 ); + state( assert, element, 0, 1, 0 ); element.accordion( "enable" ); element.accordion( "option", "active", 2 ); - state( element, 0, 0, 1 ); + state( assert, element, 0, 0, 1 ); } ); -test( "refresh", function() { - expect( 19 ); +QUnit.test( "refresh", function( assert ) { + assert.expect( 19 ); var element = $( "#navigation" ) .parent() .height( 300 ) @@ -49,37 +50,37 @@ test( "refresh", function() { .accordion( { heightStyle: "fill" } ); - equalHeight( element, 255 ); + equalHeight( assert, element, 255 ); element.parent().height( 500 ); element.accordion( "refresh" ); - equalHeight( element, 455 ); + equalHeight( assert, element, 455 ); element = $( "#list1" ); element.accordion(); - state( element, 1, 0, 0 ); + state( assert, element, 1, 0, 0 ); // Disable panel via markup element.find( "h3.bar" ).eq( 1 ).addClass( "ui-state-disabled" ); element.accordion( "refresh" ); - state( element, 1, 0, 0 ); + state( assert, element, 1, 0, 0 ); // Don't add multiple icons element.accordion( "refresh" ); - equal( element.find( ".ui-accordion-header-icon" ).length, 3 ); + assert.equal( element.find( ".ui-accordion-header-icon" ).length, 3 ); // Add a panel element .append( "

new 1

" ) .append( "
new 1
" ); element.accordion( "refresh" ); - state( element, 1, 0, 0, 0 ); + state( assert, element, 1, 0, 0, 0 ); // Remove all tabs element.find( "h3.bar, div.foo" ).remove(); element.accordion( "refresh" ); - state( element ); - equal( element.accordion( "option", "active" ), false, "no active accordion panel" ); + state( assert, element ); + assert.equal( element.accordion( "option", "active" ), false, "no active accordion panel" ); // Add panels element @@ -92,46 +93,46 @@ test( "refresh", function() { .append( "

new 5

" ) .append( "
new 5
" ); element.accordion( "refresh" ); - state( element, 1, 0, 0, 0 ); + state( assert, element, 1, 0, 0, 0 ); // Activate third tab element.accordion( "option", "active", 2 ); - state( element, 0, 0, 1, 0 ); + state( assert, element, 0, 0, 1, 0 ); // Remove fourth panel, third panel should stay active element.find( "h3.bar" ).eq( 3 ).remove(); element.find( "div.foo" ).eq( 3 ).remove(); element.accordion( "refresh" ); - state( element, 0, 0, 1 ); + state( assert, element, 0, 0, 1 ); // Remove third (active) panel, second panel should become active element.find( "h3.bar" ).eq( 2 ).remove(); element.find( "div.foo" ).eq( 2 ).remove(); element.accordion( "refresh" ); - state( element, 0, 1 ); + state( assert, element, 0, 1 ); // Remove first panel, previously active panel (now first) should stay active element.find( "h3.bar" ).eq( 0 ).remove(); element.find( "div.foo" ).eq( 0 ).remove(); element.accordion( "refresh" ); - state( element, 1 ); + state( assert, element, 1 ); // Collapse all panels element.accordion( "option", { collapsible: true, active: false } ); - state( element, 0 ); + state( assert, element, 0 ); element.accordion( "refresh" ); - state( element, 0 ); + state( assert, element, 0 ); } ); -test( "widget", function() { - expect( 2 ); +QUnit.test( "widget", function( assert ) { + assert.expect( 2 ); var element = $( "#list1" ).accordion(), widgetElement = element.accordion( "widget" ); - equal( widgetElement.length, 1, "one element" ); - strictEqual( widgetElement[ 0 ], element[ 0 ], "same element" ); + assert.equal( widgetElement.length, 1, "one element" ); + assert.strictEqual( widgetElement[ 0 ], element[ 0 ], "same element" ); } ); } ); diff --git a/tests/unit/accordion/options.js b/tests/unit/accordion/options.js index 228a8be4063..2dec303a97d 100644 --- a/tests/unit/accordion/options.js +++ b/tests/unit/accordion/options.js @@ -1,56 +1,57 @@ define( [ + "qunit", "jquery", "./helper", "ui/widgets/accordion" -], function( $, testHelper ) { +], function( QUnit, $, testHelper ) { var equalHeight = testHelper.equalHeight, setupTeardown = testHelper.setupTeardown, state = testHelper.state; -module( "accordion: options", setupTeardown() ); +QUnit.module( "accordion: options", setupTeardown() ); -test( "{ active: default }", function() { - expect( 2 ); +QUnit.test( "{ active: default }", function( assert ) { + assert.expect( 2 ); var element = $( "#list1" ).accordion(); - equal( element.accordion( "option", "active" ), 0 ); - state( element, 1, 0, 0 ); + assert.equal( element.accordion( "option", "active" ), 0 ); + state( assert, element, 1, 0, 0 ); } ); -test( "{ active: null }", function() { - expect( 2 ); +QUnit.test( "{ active: null }", function( assert ) { + assert.expect( 2 ); var element = $( "#list1" ).accordion( { active: null } ); - equal( element.accordion( "option", "active" ), 0 ); - state( element, 1, 0, 0 ); + assert.equal( element.accordion( "option", "active" ), 0 ); + state( assert, element, 1, 0, 0 ); } ); -test( "{ active: false }", function() { - expect( 7 ); +QUnit.test( "{ active: false }", function( assert ) { + assert.expect( 7 ); var element = $( "#list1" ).accordion( { active: false, collapsible: true } ); - 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 ); + state( assert, element, 0, 0, 0 ); + assert.equal( element.find( ".ui-accordion-header.ui-state-active" ).length, 0, "no headers selected" ); + assert.equal( element.accordion( "option", "active" ), false ); element.accordion( "option", "collapsible", false ); - state( element, 1, 0, 0 ); - equal( element.accordion( "option", "active" ), 0 ); + state( assert, element, 1, 0, 0 ); + assert.equal( element.accordion( "option", "active" ), 0 ); element.accordion( "destroy" ); element.accordion( { active: false } ); - state( element, 1, 0, 0 ); - strictEqual( element.accordion( "option", "active" ), 0 ); + state( assert, element, 1, 0, 0 ); + assert.strictEqual( element.accordion( "option", "active" ), 0 ); } ); // http://bugs.jqueryui.com/ticket/11938 -test( "{ active: false, collapsible: true }", function() { - expect( 1 ); +QUnit.test( "{ active: false, collapsible: true }", function( assert ) { + assert.expect( 1 ); var element = $( "#collapsible" ).accordion(), height = element.outerHeight(); @@ -61,71 +62,72 @@ test( "{ active: false, collapsible: true }", function() { collapsible: true } ) .accordion( "option", "active", 0 ); - equal( element.outerHeight(), height ); + assert.equal( element.outerHeight(), height ); } ); -test( "{ active: Number }", function() { - expect( 8 ); +QUnit.test( "{ active: Number }", function( assert ) { + assert.expect( 8 ); var element = $( "#list1" ).accordion( { active: 2 } ); - equal( element.accordion( "option", "active" ), 2 ); - state( element, 0, 0, 1 ); + assert.equal( element.accordion( "option", "active" ), 2 ); + state( assert, element, 0, 0, 1 ); element.accordion( "option", "active", 0 ); - equal( element.accordion( "option", "active" ), 0 ); - state( element, 1, 0, 0 ); + assert.equal( element.accordion( "option", "active" ), 0 ); + state( assert, element, 1, 0, 0 ); element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); element.accordion( "option", "active", 10 ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); } ); -test( "{ active: -Number }", function() { - expect( 8 ); +QUnit.test( "{ active: -Number }", function( assert ) { + assert.expect( 8 ); var element = $( "#list1" ).accordion( { active: -1 } ); - equal( element.accordion( "option", "active" ), 2 ); - state( element, 0, 0, 1 ); + assert.equal( element.accordion( "option", "active" ), 2 ); + state( assert, element, 0, 0, 1 ); element.accordion( "option", "active", -2 ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); element.accordion( "option", "active", -10 ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); element.accordion( "option", "active", -3 ); - equal( element.accordion( "option", "active" ), 0 ); - state( element, 1, 0, 0 ); + assert.equal( element.accordion( "option", "active" ), 0 ); + state( assert, element, 1, 0, 0 ); } ); -test( "{ animate: false }", function() { - expect( 3 ); +QUnit.test( "{ animate: false }", function( assert ) { + assert.expect( 3 ); var element = $( "#list1" ).accordion( { animate: false } ), panels = element.find( ".ui-accordion-content" ), animate = $.fn.animate; $.fn.animate = function() { - ok( false, ".animate() called" ); + assert.ok( false, ".animate() called" ); }; - ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); + assert.ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); element.accordion( "option", "active", 1 ); - ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); - ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); + assert.ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); + assert.ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); $.fn.animate = animate; } ); -asyncTest( "{ animate: Number }", function() { - expect( 7 ); +QUnit.test( "{ animate: Number }", function( assert ) { + var ready = assert.async(); + assert.expect( 7 ); var element = $( "#list1" ).accordion( { animate: 100 } ), @@ -134,23 +136,24 @@ asyncTest( "{ animate: Number }", function() { // Called twice (both panels) $.fn.animate = function( props, options ) { - equal( options.duration, 100, "correct duration" ); - equal( options.easing, undefined, "default easing" ); + assert.equal( options.duration, 100, "correct duration" ); + assert.equal( options.easing, undefined, "default easing" ); animate.apply( this, arguments ); }; - ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); + assert.ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); element.accordion( "option", "active", 1 ); panels.promise().done( function() { - ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); - ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); + assert.ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); + assert.ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); $.fn.animate = animate; - start(); + ready(); } ); } ); -asyncTest( "{ animate: String }", function() { - expect( 7 ); +QUnit.test( "{ animate: String }", function( assert ) { + var ready = assert.async(); + assert.expect( 7 ); var element = $( "#list1" ).accordion( { animate: "linear" } ), @@ -159,23 +162,24 @@ asyncTest( "{ animate: String }", function() { // Called twice (both panels) $.fn.animate = function( props, options ) { - equal( options.duration, undefined, "default duration" ); - equal( options.easing, "linear", "correct easing" ); + assert.equal( options.duration, undefined, "default duration" ); + assert.equal( options.easing, "linear", "correct easing" ); animate.apply( this, arguments ); }; - ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); + assert.ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); element.accordion( "option", "active", 1 ); panels.promise().done( function() { - ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); - ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); + assert.ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); + assert.ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); $.fn.animate = animate; - start(); + ready(); } ); } ); -asyncTest( "{ animate: {} }", function() { - expect( 7 ); +QUnit.test( "{ animate: {} }", function( assert ) { + var ready = assert.async(); + assert.expect( 7 ); var element = $( "#list1" ).accordion( { animate: {} } ), @@ -184,23 +188,24 @@ asyncTest( "{ animate: {} }", function() { // Called twice (both panels) $.fn.animate = function( props, options ) { - equal( options.duration, undefined, "default duration" ); - equal( options.easing, undefined, "default easing" ); + assert.equal( options.duration, undefined, "default duration" ); + assert.equal( options.easing, undefined, "default easing" ); animate.apply( this, arguments ); }; - ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); + assert.ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); element.accordion( "option", "active", 1 ); panels.promise().done( function() { - ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); - ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); + assert.ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); + assert.ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); $.fn.animate = animate; - start(); + ready(); } ); } ); -asyncTest( "{ animate: { duration, easing } }", function() { - expect( 7 ); +QUnit.test( "{ animate: { duration, easing } }", function( assert ) { + var ready = assert.async(); + assert.expect( 7 ); var element = $( "#list1" ).accordion( { animate: { duration: 100, easing: "linear" } } ), @@ -209,23 +214,24 @@ asyncTest( "{ animate: { duration, easing } }", function() { // Called twice (both panels) $.fn.animate = function( props, options ) { - equal( options.duration, 100, "correct duration" ); - equal( options.easing, "linear", "correct easing" ); + assert.equal( options.duration, 100, "correct duration" ); + assert.equal( options.easing, "linear", "correct easing" ); animate.apply( this, arguments ); }; - ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); + assert.ok( panels.eq( 0 ).is( ":visible" ), "first panel visible" ); element.accordion( "option", "active", 1 ); panels.promise().done( function() { - ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); - ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); + assert.ok( panels.eq( 0 ).is( ":hidden" ), "first panel hidden" ); + assert.ok( panels.eq( 1 ).is( ":visible" ), "second panel visible" ); $.fn.animate = animate; - start(); + ready(); } ); } ); -asyncTest( "{ animate: { duration, easing } }, animate down", function() { - expect( 7 ); +QUnit.test( "{ animate: { duration, easing } }, animate down", function( assert ) { + var ready = assert.async(); + assert.expect( 7 ); var element = $( "#list1" ).accordion( { active: 1, animate: { duration: 100, easing: "linear" } @@ -235,23 +241,24 @@ asyncTest( "{ animate: { duration, easing } }, animate down", function() { // Called twice (both panels) $.fn.animate = function( props, options ) { - equal( options.duration, 100, "correct duration" ); - equal( options.easing, "linear", "correct easing" ); + assert.equal( options.duration, 100, "correct duration" ); + assert.equal( options.easing, "linear", "correct easing" ); animate.apply( this, arguments ); }; - ok( panels.eq( 1 ).is( ":visible" ), "first panel visible" ); + assert.ok( panels.eq( 1 ).is( ":visible" ), "first panel visible" ); element.accordion( "option", "active", 0 ); panels.promise().done( function() { - ok( panels.eq( 1 ).is( ":hidden" ), "first panel hidden" ); - ok( panels.eq( 0 ).is( ":visible" ), "second panel visible" ); + assert.ok( panels.eq( 1 ).is( ":hidden" ), "first panel hidden" ); + assert.ok( panels.eq( 0 ).is( ":visible" ), "second panel visible" ); $.fn.animate = animate; - start(); + ready(); } ); } ); -asyncTest( "{ animate: { duration, easing, down } }, animate down", function() { - expect( 7 ); +QUnit.test( "{ animate: { duration, easing, down } }, animate down", function( assert ) { + var ready = assert.async(); + assert.expect( 7 ); var element = $( "#list1" ).accordion( { active: 1, animate: { @@ -267,156 +274,156 @@ asyncTest( "{ animate: { duration, easing, down } }, animate down", function() { // Called twice (both panels) $.fn.animate = function( props, options ) { - equal( options.duration, 100, "correct duration" ); - equal( options.easing, "swing", "correct easing" ); + assert.equal( options.duration, 100, "correct duration" ); + assert.equal( options.easing, "swing", "correct easing" ); animate.apply( this, arguments ); }; - ok( panels.eq( 1 ).is( ":visible" ), "first panel visible" ); + assert.ok( panels.eq( 1 ).is( ":visible" ), "first panel visible" ); element.accordion( "option", "active", 0 ); panels.promise().done( function() { - ok( panels.eq( 1 ).is( ":hidden" ), "first panel hidden" ); - ok( panels.eq( 0 ).is( ":visible" ), "second panel visible" ); + assert.ok( panels.eq( 1 ).is( ":hidden" ), "first panel hidden" ); + assert.ok( panels.eq( 0 ).is( ":visible" ), "second panel visible" ); $.fn.animate = animate; - start(); + ready(); } ); } ); -test( "{ collapsible: false }", function() { - expect( 4 ); +QUnit.test( "{ collapsible: false }", function( assert ) { + assert.expect( 4 ); var element = $( "#list1" ).accordion( { active: 1 } ); element.accordion( "option", "active", false ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); } ); -test( "{ collapsible: true }", function() { - expect( 6 ); +QUnit.test( "{ collapsible: true }", function( assert ) { + assert.expect( 6 ); var element = $( "#list1" ).accordion( { active: 1, collapsible: true } ); element.accordion( "option", "active", false ); - equal( element.accordion( "option", "active" ), false ); - state( element, 0, 0, 0 ); + assert.equal( element.accordion( "option", "active" ), false ); + state( assert, element, 0, 0, 0 ); element.accordion( "option", "active", 1 ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" ); - equal( element.accordion( "option", "active" ), false ); - state( element, 0, 0, 0 ); + assert.equal( element.accordion( "option", "active" ), false ); + state( assert, element, 0, 0, 0 ); } ); -test( "{ event: null }", function() { - expect( 5 ); +QUnit.test( "{ event: null }", function( assert ) { + assert.expect( 5 ); var element = $( "#list1" ).accordion( { event: null } ); - state( element, 1, 0, 0 ); + state( assert, element, 1, 0, 0 ); element.accordion( "option", "active", 1 ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, 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 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); } ); -test( "{ event: custom }", function() { - expect( 11 ); +QUnit.test( "{ event: custom }", function( assert ) { + assert.expect( 11 ); var element = $( "#list1" ).accordion( { event: "custom1 custom2" } ); - state( element, 1, 0, 0 ); + state( assert, element, 1, 0, 0 ); element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom1" ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, 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 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); element.find( ".ui-accordion-header" ).eq( 2 ).trigger( "custom2" ); - equal( element.accordion( "option", "active" ), 2 ); - state( element, 0, 0, 1 ); + assert.equal( element.accordion( "option", "active" ), 2 ); + state( assert, element, 0, 0, 1 ); element.accordion( "option", "event", "custom3" ); // Ensure old event handlers are unbound element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom1" ); element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom2" ); - equal( element.accordion( "option", "active" ), 2 ); - state( element, 0, 0, 1 ); + assert.equal( element.accordion( "option", "active" ), 2 ); + state( assert, element, 0, 0, 1 ); element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom3" ); - equal( element.accordion( "option", "active" ), 1 ); - state( element, 0, 1, 0 ); + assert.equal( element.accordion( "option", "active" ), 1 ); + state( assert, element, 0, 1, 0 ); } ); -test( "{ header: default }", function() { - expect( 2 ); +QUnit.test( "{ header: default }", function( assert ) { + assert.expect( 2 ); // Default: > li > :first-child,> :not(li):even // > :not(li):even - state( $( "#list1" ).accordion(), 1, 0, 0 ); + state( assert, $( "#list1" ).accordion(), 1, 0, 0 ); // > li > :first-child - state( $( "#navigation" ).accordion(), 1, 0, 0 ); + state( assert, $( "#navigation" ).accordion(), 1, 0, 0 ); } ); -test( "{ header: custom }", function( assert ) { - expect( 6 ); +QUnit.test( "{ header: custom }", function( assert ) { + assert.expect( 6 ); var element = $( "#navigationWrapper" ).accordion( { header: "h2" } ); element.find( "h2" ).each( function() { assert.hasClasses( this, "ui-accordion-header" ); } ); - equal( element.find( ".ui-accordion-header" ).length, 3 ); - state( element, 1, 0, 0 ); + assert.equal( element.find( ".ui-accordion-header" ).length, 3 ); + state( assert, element, 1, 0, 0 ); element.accordion( "option", "active", 2 ); - state( element, 0, 0, 1 ); + state( assert, element, 0, 0, 1 ); } ); -test( "{ heightStyle: 'auto' }", function() { - expect( 3 ); +QUnit.test( "{ heightStyle: 'auto' }", function( assert ) { + assert.expect( 3 ); var element = $( "#navigation" ).accordion( { heightStyle: "auto" } ); - equalHeight( element, 105 ); + equalHeight( assert, element, 105 ); } ); -test( "{ heightStyle: 'content' }", function() { - expect( 3 ); +QUnit.test( "{ heightStyle: 'content' }", function( assert ) { + assert.expect( 3 ); var element = $( "#navigation" ).accordion( { heightStyle: "content" } ), sizes = element.find( ".ui-accordion-content" ).map( function() { return $( this ).height(); } ).get(); - equal( sizes[ 0 ], 75 ); - equal( sizes[ 1 ], 105 ); - equal( sizes[ 2 ], 45 ); + assert.equal( sizes[ 0 ], 75 ); + assert.equal( sizes[ 1 ], 105 ); + assert.equal( sizes[ 2 ], 45 ); } ); -test( "{ heightStyle: 'fill' }", function() { - expect( 3 ); +QUnit.test( "{ heightStyle: 'fill' }", function( assert ) { + assert.expect( 3 ); $( "#navigationWrapper" ).height( 500 ); var element = $( "#navigation" ).accordion( { heightStyle: "fill" } ); - equalHeight( element, 455 ); + equalHeight( assert, element, 455 ); } ); -test( "{ heightStyle: 'fill' } with sibling", function() { - expect( 3 ); +QUnit.test( "{ heightStyle: 'fill' } with sibling", function( assert ) { + assert.expect( 3 ); $( "#navigationWrapper" ).height( 500 ); $( "

Lorem Ipsum

" ) .css( { @@ -426,11 +433,11 @@ test( "{ heightStyle: 'fill' } with sibling", function() { } ) .prependTo( "#navigationWrapper" ); var element = $( "#navigation" ).accordion( { heightStyle: "fill" } ); - equalHeight( element, 355 ); + equalHeight( assert, element, 355 ); } ); -test( "{ heightStyle: 'fill' } with multiple siblings", function() { - expect( 3 ); +QUnit.test( "{ heightStyle: 'fill' } with multiple siblings", function( assert ) { + assert.expect( 3 ); $( "#navigationWrapper" ).height( 500 ); $( "

Lorem Ipsum

" ) .css( { @@ -455,15 +462,15 @@ test( "{ heightStyle: 'fill' } with multiple siblings", function() { } ) .prependTo( "#navigationWrapper" ); var element = $( "#navigation" ).accordion( { heightStyle: "fill" } ); - equalHeight( element, 305 ); + equalHeight( assert, element, 305 ); } ); -test( "{ icons: false }", function() { - expect( 8 ); +QUnit.test( "{ icons: false }", function( assert ) { + assert.expect( 8 ); var element = $( "#list1" ); function icons( on ) { - deepEqual( element.find( "span.ui-icon" ).length, on ? 3 : 0 ); - deepEqual( element.find( ".ui-accordion-header.ui-accordion-icons" ).length, on ? 3 : 0 ); + assert.deepEqual( element.find( "span.ui-icon" ).length, on ? 3 : 0 ); + assert.deepEqual( element.find( ".ui-accordion-header.ui-accordion-icons" ).length, on ? 3 : 0 ); } element.accordion(); icons( true ); @@ -477,8 +484,8 @@ test( "{ icons: false }", function() { icons( false ); } ); -test( "{ icons: hash }", function( assert ) { - expect( 3 ); +QUnit.test( "{ icons: hash }", function( assert ) { + assert.expect( 3 ); var element = $( "#list1" ).accordion( { icons: { activeHeader: "a1", header: "h1" } } ); diff --git a/tests/unit/autocomplete/core.js b/tests/unit/autocomplete/core.js index e252970ee3c..33ccb2f34da 100644 --- a/tests/unit/autocomplete/core.js +++ b/tests/unit/autocomplete/core.js @@ -1,12 +1,13 @@ define( [ + "qunit", "jquery", "ui/widgets/autocomplete" -], function( $ ) { +], function( QUnit, $ ) { -module( "autocomplete: core" ); +QUnit.module( "autocomplete: core" ); -test( "markup structure", function( assert ) { - expect( 2 ); +QUnit.test( "markup structure", function( assert ) { + assert.expect( 2 ); var element = $( "#autocomplete" ).autocomplete(), menu = element.autocomplete( "widget" ); @@ -14,8 +15,8 @@ test( "markup structure", function( assert ) { assert.hasClasses( menu, "ui-autocomplete ui-widget ui-widget-content" ); } ); -test( "prevent form submit on enter when menu is active", function() { - expect( 2 ); +QUnit.test( "prevent form submit on enter when menu is active", function( assert ) { + assert.expect( 2 ); var event, element = $( "#autocomplete" ) .autocomplete( { @@ -28,17 +29,17 @@ test( "prevent form submit on enter when menu is active", function() { event = $.Event( "keydown" ); event.keyCode = $.ui.keyCode.DOWN; element.trigger( event ); - equal( menu.find( ".ui-menu-item-wrapper.ui-state-active" ).length, 1, + assert.equal( menu.find( ".ui-menu-item-wrapper.ui-state-active" ).length, 1, "menu item is active" ); event = $.Event( "keydown" ); event.keyCode = $.ui.keyCode.ENTER; element.trigger( event ); - ok( event.isDefaultPrevented(), "default action is prevented" ); + assert.ok( event.isDefaultPrevented(), "default action is prevented" ); } ); -test( "allow form submit on enter when menu is not active", function() { - expect( 1 ); +QUnit.test( "allow form submit on enter when menu is not active", function( assert ) { + assert.expect( 1 ); var event, element = $( "#autocomplete" ) .autocomplete( { @@ -51,84 +52,84 @@ test( "allow form submit on enter when menu is not active", function() { event = $.Event( "keydown" ); event.keyCode = $.ui.keyCode.ENTER; element.trigger( event ); - ok( !event.isDefaultPrevented(), "default action is prevented" ); + assert.ok( !event.isDefaultPrevented(), "default action is prevented" ); } ); ( function() { - test( "up arrow invokes search - input", function() { - arrowsInvokeSearch( "#autocomplete", true, true ); + QUnit.test( "up arrow invokes search - input", function( assert ) { + arrowsInvokeSearch( assert, "#autocomplete", true, true ); } ); - test( "down arrow invokes search - input", function() { - arrowsInvokeSearch( "#autocomplete", false, true ); + QUnit.test( "down arrow invokes search - input", function( assert ) { + arrowsInvokeSearch( assert, "#autocomplete", false, true ); } ); - test( "up arrow invokes search - textarea", function() { - arrowsInvokeSearch( "#autocomplete-textarea", true, false ); + QUnit.test( "up arrow invokes search - textarea", function( assert ) { + arrowsInvokeSearch( assert, "#autocomplete-textarea", true, false ); } ); - test( "down arrow invokes search - textarea", function() { - arrowsInvokeSearch( "#autocomplete-textarea", false, false ); + QUnit.test( "down arrow invokes search - textarea", function( assert ) { + arrowsInvokeSearch( assert, "#autocomplete-textarea", false, false ); } ); - test( "up arrow invokes search - contenteditable", function() { - arrowsInvokeSearch( "#autocomplete-contenteditable", true, false ); + QUnit.test( "up arrow invokes search - contenteditable", function( assert ) { + arrowsInvokeSearch( assert, "#autocomplete-contenteditable", true, false ); } ); - test( "down arrow invokes search - contenteditable", function() { - arrowsInvokeSearch( "#autocomplete-contenteditable", false, false ); + QUnit.test( "down arrow invokes search - contenteditable", function( assert ) { + arrowsInvokeSearch( assert, "#autocomplete-contenteditable", false, false ); } ); - test( "up arrow moves focus - input", function() { - arrowsMoveFocus( "#autocomplete", true ); + QUnit.test( "up arrow moves focus - input", function( assert ) { + arrowsMoveFocus( assert, "#autocomplete", true ); } ); - test( "down arrow moves focus - input", function() { - arrowsMoveFocus( "#autocomplete", false ); + QUnit.test( "down arrow moves focus - input", function( assert ) { + arrowsMoveFocus( assert, "#autocomplete", false ); } ); - test( "up arrow moves focus - textarea", function() { - arrowsMoveFocus( "#autocomplete-textarea", true ); + QUnit.test( "up arrow moves focus - textarea", function( assert ) { + arrowsMoveFocus( assert, "#autocomplete-textarea", true ); } ); - test( "down arrow moves focus - textarea", function() { - arrowsMoveFocus( "#autocomplete-textarea", false ); + QUnit.test( "down arrow moves focus - textarea", function( assert ) { + arrowsMoveFocus( assert, "#autocomplete-textarea", false ); } ); - test( "up arrow moves focus - contenteditable", function() { - arrowsMoveFocus( "#autocomplete-contenteditable", true ); + QUnit.test( "up arrow moves focus - contenteditable", function( assert ) { + arrowsMoveFocus( assert, "#autocomplete-contenteditable", true ); } ); - test( "down arrow moves focus - contenteditable", function() { - arrowsMoveFocus( "#autocomplete-contenteditable", false ); + QUnit.test( "down arrow moves focus - contenteditable", function( assert ) { + arrowsMoveFocus( assert, "#autocomplete-contenteditable", false ); } ); - test( "up arrow moves cursor - input", function() { - arrowsNavigateElement( "#autocomplete", true, false ); + QUnit.test( "up arrow moves cursor - input", function( assert ) { + arrowsNavigateElement( assert, "#autocomplete", true, false ); } ); - test( "down arrow moves cursor - input", function() { - arrowsNavigateElement( "#autocomplete", false, false ); + QUnit.test( "down arrow moves cursor - input", function( assert ) { + arrowsNavigateElement( assert, "#autocomplete", false, false ); } ); - test( "up arrow moves cursor - textarea", function() { - arrowsNavigateElement( "#autocomplete-textarea", true, true ); + QUnit.test( "up arrow moves cursor - textarea", function( assert ) { + arrowsNavigateElement( assert, "#autocomplete-textarea", true, true ); } ); - test( "down arrow moves cursor - textarea", function() { - arrowsNavigateElement( "#autocomplete-textarea", false, true ); + QUnit.test( "down arrow moves cursor - textarea", function( assert ) { + arrowsNavigateElement( assert, "#autocomplete-textarea", false, true ); } ); - test( "up arrow moves cursor - contenteditable", function() { - arrowsNavigateElement( "#autocomplete-contenteditable", true, true ); + QUnit.test( "up arrow moves cursor - contenteditable", function( assert ) { + arrowsNavigateElement( assert, "#autocomplete-contenteditable", true, true ); } ); - test( "down arrow moves cursor - contenteditable", function() { - arrowsNavigateElement( "#autocomplete-contenteditable", false, true ); + QUnit.test( "down arrow moves cursor - contenteditable", function( assert ) { + arrowsNavigateElement( assert, "#autocomplete-contenteditable", false, true ); } ); - function arrowsInvokeSearch( id, isKeyUp, shouldMove ) { - expect( 1 ); + function arrowsInvokeSearch( assert, id, isKeyUp, shouldMove ) { + assert.expect( 1 ); var didMove = false, element = $( id ).autocomplete( { @@ -140,11 +141,11 @@ test( "allow form submit on enter when menu is not active", function() { didMove = true; }; element.simulate( "keydown", { keyCode: ( isKeyUp ? $.ui.keyCode.UP : $.ui.keyCode.DOWN ) } ); - equal( didMove, shouldMove, "respond to arrow" ); + assert.equal( didMove, shouldMove, "respond to arrow" ); } - function arrowsMoveFocus( id, isKeyUp ) { - expect( 1 ); + function arrowsMoveFocus( assert, id, isKeyUp ) { + assert.expect( 1 ); var element = $( id ).autocomplete( { source: [ "a" ], @@ -152,14 +153,14 @@ test( "allow form submit on enter when menu is not active", function() { minLength: 0 } ); element.autocomplete( "instance" )._move = function() { - ok( true, "repsond to arrow" ); + assert.ok( true, "repsond to arrow" ); }; element.autocomplete( "search" ); element.simulate( "keydown", { keyCode: ( isKeyUp ? $.ui.keyCode.UP : $.ui.keyCode.DOWN ) } ); } - function arrowsNavigateElement( id, isKeyUp, shouldMove ) { - expect( 1 ); + function arrowsNavigateElement( assert, id, isKeyUp, shouldMove ) { + assert.expect( 1 ); var didMove = false, element = $( id ).autocomplete( { @@ -172,19 +173,20 @@ test( "allow form submit on enter when menu is not active", function() { } ); element.simulate( "keydown", { keyCode: ( isKeyUp ? $.ui.keyCode.UP : $.ui.keyCode.DOWN ) } ); element.simulate( "keypress" ); - equal( didMove, shouldMove, "respond to arrow" ); + assert.equal( didMove, shouldMove, "respond to arrow" ); } } )(); -asyncTest( "past end of menu in multiline autocomplete", function() { - expect( 2 ); +QUnit.test( "past end of menu in multiline autocomplete", function( assert ) { + var ready = assert.async(); + assert.expect( 2 ); var customVal = "custom value", element = $( "#autocomplete-contenteditable" ).autocomplete( { delay: 0, source: [ "javascript" ], focus: function( event, ui ) { - equal( ui.item.value, "javascript", "Item gained focus" ); + assert.equal( ui.item.value, "javascript", "Item gained focus" ); $( this ).text( customVal ); event.preventDefault(); } @@ -197,20 +199,21 @@ asyncTest( "past end of menu in multiline autocomplete", function() { setTimeout( function() { element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); - equal( element.text(), customVal ); - start(); + assert.equal( element.text(), customVal ); + ready(); } ); } ); -asyncTest( "ESCAPE in multiline autocomplete", function() { - expect( 2 ); +QUnit.test( "ESCAPE in multiline autocomplete", function( assert ) { + var ready = assert.async(); + assert.expect( 2 ); var customVal = "custom value", element = $( "#autocomplete-contenteditable" ).autocomplete( { delay: 0, source: [ "javascript" ], focus: function( event, ui ) { - equal( ui.item.value, "javascript", "Item gained focus" ); + assert.equal( ui.item.value, "javascript", "Item gained focus" ); $( this ).text( customVal ); event.preventDefault(); } @@ -223,26 +226,27 @@ asyncTest( "ESCAPE in multiline autocomplete", function() { setTimeout( function() { element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } ); - equal( element.text(), customVal ); - start(); + assert.equal( element.text(), customVal ); + ready(); } ); } ); -asyncTest( "handle race condition", function() { - expect( 3 ); +QUnit.test( "handle race condition", function( assert ) { + var ready = assert.async(); + assert.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" ); + assert.equal( count, 1, "request with 1 character is first" ); setTimeout( function() { response( [ "one" ] ); setTimeout( checkResults ); } ); return; } - equal( count, 2, "request with 2 characters is second" ); + assert.equal( count, 2, "request with 2 characters is second" ); response( [ "two" ] ); } } ); @@ -251,14 +255,15 @@ asyncTest( "handle race condition", function() { element.autocomplete( "search", "ab" ); function checkResults() { - equal( element.autocomplete( "widget" ).find( ".ui-menu-item" ).text(), "two", + assert.equal( element.autocomplete( "widget" ).find( ".ui-menu-item" ).text(), "two", "correct results displayed" ); - start(); + ready(); } } ); -asyncTest( "simultaneous searches (#9334)", function() { - expect( 2 ); +QUnit.test( "simultaneous searches (#9334)", function( assert ) { + var ready = assert.async(); + assert.expect( 2 ); var element = $( "#autocomplete" ).autocomplete( { source: function( request, response ) { setTimeout( function() { @@ -266,7 +271,7 @@ asyncTest( "simultaneous searches (#9334)", function() { } ); }, response: function() { - ok( true, "response from first instance" ); + assert.ok( true, "response from first instance" ); } } ), element2 = $( "#autocomplete-textarea" ).autocomplete( { @@ -276,8 +281,8 @@ asyncTest( "simultaneous searches (#9334)", function() { } ); }, response: function() { - ok( true, "response from second instance" ); - start(); + assert.ok( true, "response from second instance" ); + ready(); } } ); @@ -285,60 +290,60 @@ asyncTest( "simultaneous searches (#9334)", function() { element2.autocomplete( "search", "test" ); } ); -test( "ARIA", function() { - expect( 13 ); +QUnit.test( "ARIA", function( assert ) { + assert.expect( 13 ); var element = $( "#autocomplete" ).autocomplete( { source: [ "java", "javascript" ] } ), liveRegion = element.autocomplete( "instance" ).liveRegion; - equal( liveRegion.children().length, 0, "Empty live region on create" ); - equal( liveRegion.attr( "aria-live" ), "assertive", + assert.equal( liveRegion.children().length, 0, "Empty live region on create" ); + assert.equal( liveRegion.attr( "aria-live" ), "assertive", "Live region's aria-live attribute must be assertive" ); - equal( liveRegion.attr( "aria-relevant" ), "additions", + assert.equal( liveRegion.attr( "aria-relevant" ), "additions", "Live region's aria-relevant attribute must be additions" ); - equal( liveRegion.attr( "role" ), "status", + assert.equal( liveRegion.attr( "role" ), "status", "Live region's role attribute must be status" ); element.autocomplete( "search", "j" ); - equal( liveRegion.children().first().text(), + assert.equal( liveRegion.children().first().text(), "2 results are available, use up and down arrow keys to navigate.", "Live region for multiple values" ); element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); - equal( liveRegion.children().filter( ":visible" ).text(), "java", + assert.equal( liveRegion.children().filter( ":visible" ).text(), "java", "Live region changed on keydown to announce the highlighted value" ); element.one( "autocompletefocus", function( event ) { event.preventDefault(); } ); element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); - equal( liveRegion.children().filter( ":visible" ).text(), "javascript", + assert.equal( liveRegion.children().filter( ":visible" ).text(), "javascript", "Live region updated when default focus is prevented" ); element.autocomplete( "search", "javas" ); - equal( liveRegion.children().filter( ":visible" ).text(), + assert.equal( liveRegion.children().filter( ":visible" ).text(), "1 result is available, use up and down arrow keys to navigate.", "Live region for one value" ); element.autocomplete( "search", "z" ); - equal( liveRegion.children().filter( ":visible" ).text(), "No search results.", + assert.equal( liveRegion.children().filter( ":visible" ).text(), "No search results.", "Live region for no values" ); - equal( liveRegion.children().length, 5, + assert.equal( liveRegion.children().length, 5, "Should be five children in the live region after the above" ); - equal( liveRegion.children().filter( ":visible" ).length, 1, + assert.equal( liveRegion.children().filter( ":visible" ).length, 1, "Only one should be still visible" ); - ok( liveRegion.children().filter( ":visible" )[ 0 ] === liveRegion.children().last()[ 0 ], + assert.ok( liveRegion.children().filter( ":visible" )[ 0 ] === liveRegion.children().last()[ 0 ], "The last one should be the visible one" ); element.autocomplete( "destroy" ); - equal( liveRegion.parent().length, 0, + assert.equal( liveRegion.parent().length, 0, "The liveRegion should be detached after destroy" ); } ); -test( "ARIA, aria-label announcement", function() { - expect( 1 ); +QUnit.test( "ARIA, aria-label announcement", function( assert ) { + assert.expect( 1 ); $.widget( "custom.catcomplete", $.ui.autocomplete, { _renderMenu: function( ul, items ) { var that = this; @@ -354,31 +359,32 @@ test( "ARIA, aria-label announcement", function() { liveRegion = element.catcomplete( "instance" ).liveRegion; element.catcomplete( "search", "a" ); element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); - equal( liveRegion.children().filter( ":visible" ).text(), "People : anders andersson", + assert.equal( liveRegion.children().filter( ":visible" ).text(), "People : anders andersson", "Live region changed on keydown to announce the highlighted value's aria-label attribute" ); } ); -test( "ARIA, init on detached input", function() { - expect( 1 ); +QUnit.test( "ARIA, init on detached input", function( assert ) { + assert.expect( 1 ); var element = $( "" ).autocomplete( { source: [ "java", "javascript" ] } ), liveRegion = element.autocomplete( "instance" ).liveRegion; - equal( liveRegion.parent().length, 1, "liveRegion must have a parent" ); + assert.equal( liveRegion.parent().length, 1, "liveRegion must have a parent" ); } ); -test( ".replaceWith() (#9172)", function() { - expect( 1 ); +QUnit.test( ".replaceWith() (#9172)", function( assert ) { + assert.expect( 1 ); var element = $( "#autocomplete" ).autocomplete(), replacement = "
test
", parent = element.parent(); element.replaceWith( replacement ); - equal( parent.html().toLowerCase(), replacement ); + assert.equal( parent.html().toLowerCase(), replacement ); } ); -asyncTest( "Search if the user retypes the same value (#7434)", function() { - expect( 3 ); +QUnit.test( "Search if the user retypes the same value (#7434)", function( assert ) { + var ready = assert.async(); + assert.expect( 3 ); var element = $( "#autocomplete" ).autocomplete( { source: [ "java", "javascript" ], delay: 0 @@ -387,19 +393,20 @@ asyncTest( "Search if the user retypes the same value (#7434)", function() { element.val( "j" ).simulate( "keydown" ); setTimeout( function() { - ok( menu.is( ":visible" ), "menu displays initially" ); + assert.ok( menu.is( ":visible" ), "menu displays initially" ); element.trigger( "blur" ); - ok( !menu.is( ":visible" ), "menu hidden after blur" ); + assert.ok( !menu.is( ":visible" ), "menu hidden after blur" ); element.val( "j" ).simulate( "keydown" ); setTimeout( function() { - ok( menu.is( ":visible" ), "menu displays after typing the same value" ); - start(); + assert.ok( menu.is( ":visible" ), "menu displays after typing the same value" ); + ready(); } ); } ); } ); -asyncTest( "Close on click outside when focus remains", function() { - expect( 2 ); +QUnit.test( "Close on click outside when focus remains", function( assert ) { + var ready = assert.async(); + assert.expect( 2 ); var element = $( "#autocomplete" ).autocomplete( { source: [ "java", "javascript" ], @@ -413,11 +420,11 @@ asyncTest( "Close on click outside when focus remains", function() { element.val( "j" ).autocomplete( "search", "j" ); setTimeout( function() { - ok( menu.is( ":visible" ), "menu displays initially" ); + assert.ok( menu.is( ":visible" ), "menu displays initially" ); $( "body" ).simulate( "mousedown" ); setTimeout( function() { - ok( menu.is( ":hidden" ), "menu closes after clicking elsewhere" ); - start(); + assert.ok( menu.is( ":hidden" ), "menu closes after clicking elsewhere" ); + ready(); } ); } ); } ); diff --git a/tests/unit/autocomplete/events.js b/tests/unit/autocomplete/events.js index 688763f7e87..f02d36dd740 100644 --- a/tests/unit/autocomplete/events.js +++ b/tests/unit/autocomplete/events.js @@ -1,9 +1,10 @@ define( [ + "qunit", "jquery", "ui/widgets/autocomplete" -], function( $ ) { +], function( QUnit, $ ) { -module( "autocomplete: events" ); +QUnit.module( "autocomplete: events" ); var data = [ "Clojure", "COBOL", "ColdFusion", "Java", "JavaScript", "Scala", "Scheme" ]; @@ -24,18 +25,19 @@ $.each( [ valueMethod: "text" } ], function( i, settings ) { - asyncTest( "all events - " + settings.type, function() { - expect( 13 ); + QUnit.test( "all events - " + settings.type, function( assert ) { + var ready = assert.async(); + assert.expect( 13 ); var element = $( settings.selector ) .autocomplete( { autoFocus: false, delay: 0, source: data, search: function( event ) { - equal( event.originalEvent.type, "keydown", "search originalEvent" ); + assert.equal( event.originalEvent.type, "keydown", "search originalEvent" ); }, response: function( event, ui ) { - deepEqual( ui.content, [ + assert.deepEqual( ui.content, [ { label: "Clojure", value: "Clojure" }, { label: "Java", value: "Java" }, { label: "JavaScript", value: "JavaScript" } @@ -43,32 +45,32 @@ $.each( [ ui.content.splice( 0, 1 ); }, open: function() { - ok( menu.is( ":visible" ), "menu open on open" ); + assert.ok( menu.is( ":visible" ), "menu open on open" ); }, focus: function( event, ui ) { - equal( event.originalEvent.type, "menufocus", "focus originalEvent" ); - deepEqual( ui.item, { label: "Java", value: "Java" }, "focus ui.item" ); + assert.equal( event.originalEvent.type, "menufocus", "focus originalEvent" ); + assert.deepEqual( ui.item, { label: "Java", value: "Java" }, "focus ui.item" ); }, close: function( event ) { - equal( event.originalEvent.type, "menuselect", "close originalEvent" ); - ok( menu.is( ":hidden" ), "menu closed on close" ); + assert.equal( event.originalEvent.type, "menuselect", "close originalEvent" ); + assert.ok( menu.is( ":hidden" ), "menu closed on close" ); }, select: function( event, ui ) { - equal( event.originalEvent.type, "menuselect", "select originalEvent" ); - deepEqual( ui.item, { label: "Java", value: "Java" }, "select ui.item" ); + assert.equal( event.originalEvent.type, "menuselect", "select originalEvent" ); + assert.deepEqual( ui.item, { label: "Java", value: "Java" }, "select ui.item" ); }, change: function( event, ui ) { - equal( event.originalEvent.type, "blur", "change originalEvent" ); - deepEqual( ui.item, { label: "Java", value: "Java" }, "change ui.item" ); - ok( menu.is( ":hidden" ), "menu closed on change" ); - start(); + assert.equal( event.originalEvent.type, "blur", "change originalEvent" ); + assert.deepEqual( ui.item, { label: "Java", value: "Java" }, "change ui.item" ); + assert.ok( menu.is( ":hidden" ), "menu closed on change" ); + ready(); } } ), menu = element.autocomplete( "widget" ); element.simulate( "focus" )[ settings.valueMethod ]( "j" ).trigger( "keydown" ); setTimeout( function() { - ok( menu.is( ":visible" ), "menu is visible after delay" ); + assert.ok( menu.is( ":visible" ), "menu is visible after delay" ); element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } ); @@ -80,53 +82,56 @@ $.each( [ } ); } ); -asyncTest( "change without selection", function() { - expect( 1 ); +QUnit.test( "change without selection", function( assert ) { + var ready = assert.async(); + assert.expect( 1 ); var element = $( "#autocomplete" ).autocomplete( { delay: 0, source: data, change: function( event, ui ) { - strictEqual( ui.item, null ); - start(); + assert.strictEqual( ui.item, null ); + ready(); } } ); element.triggerHandler( "focus" ); element.val( "ja" ).triggerHandler( "blur" ); } ); -asyncTest( "cancel search", function() { - expect( 6 ); +QUnit.test( "cancel search", function( assert ) { + var ready = assert.async(); + assert.expect( 6 ); var first = true, element = $( "#autocomplete" ).autocomplete( { delay: 0, source: data, search: function() { if ( first ) { - equal( element.val(), "ja", "val on first search" ); + assert.equal( element.val(), "ja", "val on first search" ); first = false; return false; } - equal( element.val(), "java", "val on second search" ); + assert.equal( element.val(), "java", "val on second search" ); }, open: function() { - ok( true, "menu opened" ); + assert.ok( true, "menu opened" ); } } ), menu = element.autocomplete( "widget" ); element.val( "ja" ).trigger( "keydown" ); setTimeout( function() { - ok( menu.is( ":hidden" ), "menu is hidden after first search" ); + assert.ok( menu.is( ":hidden" ), "menu is hidden after first search" ); element.val( "java" ).trigger( "keydown" ); setTimeout( function() { - ok( menu.is( ":visible" ), "menu is visible after second search" ); - equal( menu.find( ".ui-menu-item" ).length, 2, "# of menu items" ); - start(); + assert.ok( menu.is( ":visible" ), "menu is visible after second search" ); + assert.equal( menu.find( ".ui-menu-item" ).length, 2, "# of menu items" ); + ready(); } ); } ); } ); -asyncTest( "cancel focus", function() { - expect( 1 ); +QUnit.test( "cancel focus", function( assert ) { + var ready = assert.async(); + assert.expect( 1 ); var customVal = "custom value", element = $( "#autocomplete" ).autocomplete( { delay: 0, @@ -139,13 +144,14 @@ asyncTest( "cancel focus", function() { element.val( "ja" ).trigger( "keydown" ); setTimeout( function() { element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); - equal( element.val(), customVal ); - start(); + assert.equal( element.val(), customVal ); + ready(); } ); } ); -asyncTest( "cancel select", function() { - expect( 1 ); +QUnit.test( "cancel select", function( assert ) { + var ready = assert.async(); + assert.expect( 1 ); var customVal = "custom value", element = $( "#autocomplete" ).autocomplete( { delay: 0, @@ -159,25 +165,26 @@ asyncTest( "cancel select", function() { setTimeout( function() { element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } ); - equal( element.val(), customVal ); - start(); + assert.equal( element.val(), customVal ); + ready(); } ); } ); -asyncTest( "blur during remote search", function() { - expect( 1 ); +QUnit.test( "blur during remote search", function( assert ) { + var ready = assert.async(); + assert.expect( 1 ); var ac = $( "#autocomplete" ).autocomplete( { delay: 0, source: function( request, response ) { - ok( true, "trigger request" ); + assert.ok( true, "trigger request" ); ac.simulate( "blur" ); setTimeout( function() { response( [ "result" ] ); - start(); + ready(); }, 25 ); }, open: function() { - ok( false, "opened after a blur" ); + assert.ok( false, "opened after a blur" ); } } ); ac.val( "ro" ).trigger( "keydown" ); diff --git a/tests/unit/autocomplete/methods.js b/tests/unit/autocomplete/methods.js index 0ebdc0d7e40..7aa3058b3cf 100644 --- a/tests/unit/autocomplete/methods.js +++ b/tests/unit/autocomplete/methods.js @@ -1,19 +1,20 @@ define( [ + "qunit", "jquery", "ui/widgets/autocomplete" -], function( $ ) { +], function( QUnit, $ ) { -module( "autocomplete: methods" ); +QUnit.module( "autocomplete: methods" ); -test( "destroy", function( assert ) { - expect( 1 ); +QUnit.test( "destroy", function( assert ) { + assert.expect( 1 ); assert.domEqual( "#autocomplete", function() { $( "#autocomplete" ).autocomplete().autocomplete( "destroy" ); } ); } ); -test( "search, close", function() { - expect( 6 ); +QUnit.test( "search, close", function( assert ) { + assert.expect( 6 ); var data = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl" ], element = $( "#autocomplete" ).autocomplete( { source: data, @@ -21,27 +22,27 @@ test( "search, close", function() { } ), menu = element.autocomplete( "widget" ); - ok( menu.is( ":hidden" ), "menu is hidden on init" ); + assert.ok( menu.is( ":hidden" ), "menu is hidden on init" ); element.autocomplete( "search" ); - ok( menu.is( ":visible" ), "menu is visible after search" ); - equal( menu.find( ".ui-menu-item" ).length, data.length, "all items for a blank search" ); + assert.ok( menu.is( ":visible" ), "menu is visible after search" ); + assert.equal( menu.find( ".ui-menu-item" ).length, data.length, "all items for a blank search" ); element.val( "has" ).autocomplete( "search" ); - equal( menu.find( ".ui-menu-item" ).text(), "haskell", "only one item for set input value" ); + assert.equal( menu.find( ".ui-menu-item" ).text(), "haskell", "only one item for set input value" ); element.autocomplete( "search", "ja" ); - equal( menu.find( ".ui-menu-item" ).length, 2, "only java and javascript for 'ja'" ); + assert.equal( menu.find( ".ui-menu-item" ).length, 2, "only java and javascript for 'ja'" ); element.autocomplete( "close" ); - ok( menu.is( ":hidden" ), "menu is hidden after close" ); + assert.ok( menu.is( ":hidden" ), "menu is hidden after close" ); } ); -test( "widget", function( assert ) { - expect( 2 ); +QUnit.test( "widget", function( assert ) { + assert.expect( 2 ); var element = $( "#autocomplete" ).autocomplete(), widgetElement = element.autocomplete( "widget" ); - equal( widgetElement.length, 1, "one element" ); + assert.equal( widgetElement.length, 1, "one element" ); assert.hasClasses( widgetElement, "ui-menu" ); } ); diff --git a/tests/unit/autocomplete/options.js b/tests/unit/autocomplete/options.js index 76c13e754c8..c3f445db1f4 100644 --- a/tests/unit/autocomplete/options.js +++ b/tests/unit/autocomplete/options.js @@ -1,108 +1,110 @@ define( [ + "qunit", "jquery", "ui/widgets/autocomplete" -], function( $ ) { +], function( QUnit, $ ) { -module( "autocomplete: options" ); +QUnit.module( "autocomplete: options" ); var data = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl" ]; -test( "appendTo: null", function() { - expect( 1 ); +QUnit.test( "appendTo: null", function( assert ) { + assert.expect( 1 ); var element = $( "#autocomplete" ).autocomplete(); - equal( element.autocomplete( "widget" ).parent()[ 0 ], document.body, + assert.equal( element.autocomplete( "widget" ).parent()[ 0 ], document.body, "defaults to body" ); element.autocomplete( "destroy" ); } ); -test( "appendTo: explicit", function() { - expect( 6 ); +QUnit.test( "appendTo: explicit", function( assert ) { + assert.expect( 6 ); var detached = $( "
" ), element = $( "#autocomplete" ); element.autocomplete( { appendTo: ".autocomplete-wrap" } ); - equal( element.autocomplete( "widget" ).parent()[ 0 ], + assert.equal( element.autocomplete( "widget" ).parent()[ 0 ], $( "#autocomplete-wrap1" )[ 0 ], "first found element" ); - equal( $( "#autocomplete-wrap2 .ui-autocomplete" ).length, 0, + assert.equal( $( "#autocomplete-wrap2 .ui-autocomplete" ).length, 0, "only appends to one element" ); element.autocomplete( "destroy" ); element.autocomplete().autocomplete( "option", "appendTo", "#autocomplete-wrap1" ); - equal( element.autocomplete( "widget" ).parent()[ 0 ], + assert.equal( element.autocomplete( "widget" ).parent()[ 0 ], $( "#autocomplete-wrap1" )[ 0 ], "modified after init" ); element.autocomplete( "destroy" ); element.autocomplete( { appendTo: detached } ); - equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], + assert.equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], "detached jQuery object" ); element.autocomplete( "destroy" ); element.autocomplete( { appendTo: detached[ 0 ] } ); - equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], + assert.equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], "detached DOM element" ); element.autocomplete( "destroy" ); element.autocomplete().autocomplete( "option", "appendTo", detached ); - equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], + assert.equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], "detached DOM element via option()" ); element.autocomplete( "destroy" ); } ); -test( "appendTo: ui-front", function() { - expect( 2 ); +QUnit.test( "appendTo: ui-front", function( assert ) { + assert.expect( 2 ); var element = $( "#autocomplete" ); $( "#autocomplete-wrap2" ).addClass( "ui-front" ); element.autocomplete(); - equal( element.autocomplete( "widget" ).parent()[ 0 ], + assert.equal( element.autocomplete( "widget" ).parent()[ 0 ], $( "#autocomplete-wrap2" )[ 0 ], "null, inside .ui-front" ); element.autocomplete( "destroy" ); element.autocomplete( { appendTo: $() } ); - equal( element.autocomplete( "widget" ).parent()[ 0 ], + assert.equal( element.autocomplete( "widget" ).parent()[ 0 ], $( "#autocomplete-wrap2" )[ 0 ], "empty jQuery object, inside .ui-front" ); } ); -function autoFocusTest( afValue, focusedLength ) { +function autoFocusTest( assert, afValue, focusedLength ) { + var ready = assert.async(); var element = $( "#autocomplete" ).autocomplete( { autoFocus: afValue, delay: 0, source: data, open: function() { - equal( + assert.equal( element.autocomplete( "widget" ) .find( ".ui-menu-item-wrapper.ui-state-active" ) .length, focusedLength, "first item is " + ( afValue ? "" : "not" ) + " auto focused" ); - start(); + ready(); } } ); element.val( "ja" ).trigger( "keydown" ); - stop(); } -test( "autoFocus: false", function() { - expect( 1 ); - autoFocusTest( false, 0 ); +QUnit.test( "autoFocus: false", function( assert ) { + assert.expect( 1 ); + autoFocusTest( assert, false, 0 ); } ); -test( "autoFocus: true", function() { - expect( 1 ); - autoFocusTest( true, 1 ); +QUnit.test( "autoFocus: true", function( assert ) { + assert.expect( 1 ); + autoFocusTest( assert, true, 1 ); } ); -asyncTest( "delay", function() { - expect( 2 ); +QUnit.test( "delay", function( assert ) { + var ready = assert.async(); + assert.expect( 2 ); var element = $( "#autocomplete" ).autocomplete( { source: data, delay: 25 @@ -110,16 +112,17 @@ asyncTest( "delay", function() { menu = element.autocomplete( "widget" ); element.val( "ja" ).trigger( "keydown" ); - ok( menu.is( ":hidden" ), "menu is closed immediately after search" ); + assert.ok( menu.is( ":hidden" ), "menu is closed immediately after search" ); setTimeout( function() { - ok( menu.is( ":visible" ), "menu is open after delay" ); - start(); + assert.ok( menu.is( ":visible" ), "menu is open after delay" ); + ready(); }, 50 ); } ); -asyncTest( "disabled", function( assert ) { - expect( 5 ); +QUnit.test( "disabled", function( assert ) { + var ready = assert.async(); + assert.expect( 5 ); var element = $( "#autocomplete" ).autocomplete( { source: data, delay: 0 @@ -127,38 +130,39 @@ asyncTest( "disabled", function( assert ) { menu = element.autocomplete( "disable" ).autocomplete( "widget" ); element.val( "ja" ).trigger( "keydown" ); - ok( menu.is( ":hidden" ) ); + assert.ok( menu.is( ":hidden" ) ); assert.lacksClasses( element, "ui-state-disabled" ); assert.hasClasses( menu, "ui-autocomplete-disabled" ); - ok( !element.attr( "aria-disabled" ), "element doesn't get aria-disabled" ); + assert.ok( !element.attr( "aria-disabled" ), "element doesn't get aria-disabled" ); setTimeout( function() { - ok( menu.is( ":hidden" ) ); - start(); + assert.ok( menu.is( ":hidden" ) ); + ready(); } ); } ); -test( "minLength", function() { - expect( 2 ); +QUnit.test( "minLength", function( assert ) { + assert.expect( 2 ); var element = $( "#autocomplete" ).autocomplete( { source: data } ), menu = element.autocomplete( "widget" ); element.autocomplete( "search", "" ); - ok( menu.is( ":hidden" ), "blank not enough for minLength: 1" ); + assert.ok( menu.is( ":hidden" ), "blank not enough for minLength: 1" ); element.autocomplete( "option", "minLength", 0 ); element.autocomplete( "search", "" ); - ok( menu.is( ":visible" ), "blank enough for minLength: 0" ); + assert.ok( menu.is( ":visible" ), "blank enough for minLength: 0" ); } ); -asyncTest( "minLength, exceed then drop below", function() { - expect( 4 ); +QUnit.test( "minLength, exceed then drop below", function( assert ) { + var ready = assert.async(); + assert.expect( 4 ); var element = $( "#autocomplete" ).autocomplete( { minLength: 2, source: function( req, res ) { - equal( req.term, "12", "correct search term" ); + assert.equal( req.term, "12", "correct search term" ); setTimeout( function() { res( [ "item" ] ); } ); @@ -166,20 +170,20 @@ asyncTest( "minLength, exceed then drop below", function() { } ), menu = element.autocomplete( "widget" ); - ok( menu.is( ":hidden" ), "menu is hidden before first search" ); + assert.ok( menu.is( ":hidden" ), "menu is hidden before first search" ); element.autocomplete( "search", "12" ); - ok( menu.is( ":hidden" ), "menu is hidden before second search" ); + assert.ok( menu.is( ":hidden" ), "menu is hidden before second search" ); element.autocomplete( "search", "1" ); setTimeout( function() { - ok( menu.is( ":hidden" ), "menu is hidden after searches" ); - start(); + assert.ok( menu.is( ":hidden" ), "menu is hidden after searches" ); + ready(); } ); } ); -test( "minLength, exceed then drop below then exceed", function() { - expect( 3 ); +QUnit.test( "minLength, exceed then drop below then exceed", function( assert ) { + assert.expect( 3 ); var _res = [], element = $( "#autocomplete" ).autocomplete( { minLength: 2, @@ -190,11 +194,11 @@ test( "minLength, exceed then drop below then exceed", function() { menu = element.autocomplete( "widget" ); // Trigger a valid search - ok( menu.is( ":hidden" ), "menu is hidden before first search" ); + assert.ok( menu.is( ":hidden" ), "menu is hidden before first search" ); element.autocomplete( "search", "12" ); // Trigger a search below the minLength, to turn on cancelSearch flag - ok( menu.is( ":hidden" ), "menu is hidden before second search" ); + assert.ok( menu.is( ":hidden" ), "menu is hidden before second search" ); element.autocomplete( "search", "1" ); // Trigger a valid search @@ -206,46 +210,47 @@ test( "minLength, exceed then drop below then exceed", function() { // React to second search _res[ 1 ]( [ "13" ] ); - ok( menu.is( ":visible" ), "menu is visible after searches" ); + assert.ok( menu.is( ":visible" ), "menu is visible after searches" ); } ); -test( "source, local string array", function() { - expect( 1 ); +QUnit.test( "source, local string array", function( assert ) { + assert.expect( 1 ); var element = $( "#autocomplete" ).autocomplete( { source: data } ), menu = element.autocomplete( "widget" ); element.val( "ja" ).autocomplete( "search" ); - equal( menu.find( ".ui-menu-item" ).text(), "javajavascript" ); + assert.equal( menu.find( ".ui-menu-item" ).text(), "javajavascript" ); } ); -function sourceTest( source, async ) { +function sourceTest( assert, source, async ) { + var ready; var element = $( "#autocomplete" ).autocomplete( { source: source } ), menu = element.autocomplete( "widget" ); function result() { var items = menu.find( ".ui-menu-item" ); - equal( items.length, 3, "Should find three results." ); - deepEqual( items.eq( 0 ).data( "ui-autocomplete-item" ), { + assert.equal( items.length, 3, "Should find three results." ); + assert.deepEqual( items.eq( 0 ).data( "ui-autocomplete-item" ), { label: "java", value: "java" } ); - deepEqual( items.eq( 1 ).data( "ui-autocomplete-item" ), { + assert.deepEqual( items.eq( 1 ).data( "ui-autocomplete-item" ), { label: "javascript", value: "javascript" } ); - deepEqual( items.eq( 2 ).data( "ui-autocomplete-item" ), { + assert.deepEqual( items.eq( 2 ).data( "ui-autocomplete-item" ), { label: "clojure", value: "clojure" } ); element.autocomplete( "destroy" ); if ( async ) { - start(); + ready(); } } if ( async ) { - stop(); + ready = assert.async(); $( document ).one( "ajaxStop", result ); } element.val( "j" ).autocomplete( "search" ); @@ -254,9 +259,9 @@ function sourceTest( source, async ) { } } -test( "source, local object array, only labels", function() { - expect( 4 ); - sourceTest( [ +QUnit.test( "source, local object array, only labels", function( assert ) { + assert.expect( 4 ); + sourceTest( assert, [ { label: "java", value: null }, { label: "php", value: null }, { label: "coldfusion", value: "" }, @@ -265,9 +270,9 @@ test( "source, local object array, only labels", function() { ] ); } ); -test( "source, local object array, only values", function() { - expect( 4 ); - sourceTest( [ +QUnit.test( "source, local object array, only values", function( assert ) { + assert.expect( 4 ); + sourceTest( assert, [ { value: "java", label: null }, { value: "php", label: null }, { value: "coldfusion", label: "" }, @@ -276,25 +281,25 @@ test( "source, local object array, only values", function() { ] ); } ); -test( "source, url string with remote json string array", function() { - expect( 4 ); - sourceTest( "remote_string_array.txt", true ); +QUnit.test( "source, url string with remote json string array", function( assert ) { + assert.expect( 4 ); + sourceTest( assert, "remote_string_array.txt", true ); } ); -test( "source, url string with remote json object array, only value properties", function() { - expect( 4 ); - sourceTest( "remote_object_array_values.txt", true ); +QUnit.test( "source, url string with remote json object array, only value properties", function( assert ) { + assert.expect( 4 ); + sourceTest( assert, "remote_object_array_values.txt", true ); } ); -test( "source, url string with remote json object array, only label properties", function() { - expect( 4 ); - sourceTest( "remote_object_array_labels.txt", true ); +QUnit.test( "source, url string with remote json object array, only label properties", function( assert ) { + assert.expect( 4 ); + sourceTest( assert, "remote_object_array_labels.txt", true ); } ); -test( "source, custom", function() { - expect( 5 ); - sourceTest( function( request, response ) { - equal( request.term, "j" ); +QUnit.test( "source, custom", function( assert ) { + assert.expect( 5 ); + sourceTest( assert, function( request, response ) { + assert.equal( request.term, "j" ); response( [ "java", { label: "javascript", value: null }, @@ -303,17 +308,17 @@ test( "source, custom", function() { } ); } ); -test( "source, update after init", function() { - expect( 2 ); +QUnit.test( "source, update after init", function( assert ) { + assert.expect( 2 ); var element = $( "#autocomplete" ).autocomplete( { source: [ "java", "javascript", "haskell" ] } ), menu = element.autocomplete( "widget" ); element.val( "ja" ).autocomplete( "search" ); - equal( menu.find( ".ui-menu-item" ).text(), "javajavascript" ); + assert.equal( menu.find( ".ui-menu-item" ).text(), "javajavascript" ); element.autocomplete( "option", "source", [ "php", "asp" ] ); element.val( "ph" ).autocomplete( "search" ); - equal( menu.find( ".ui-menu-item" ).text(), "php" ); + assert.equal( menu.find( ".ui-menu-item" ).text(), "php" ); } ); } ); diff --git a/tests/unit/button/core.js b/tests/unit/button/core.js index de26b03127f..13bc94e3386 100644 --- a/tests/unit/button/core.js +++ b/tests/unit/button/core.js @@ -1,23 +1,25 @@ define( [ + "qunit", "jquery", "ui/safe-active-element", "ui/widgets/button" -], function( $ ) { +], function( QUnit, $ ) { -module( "Button: core" ); +QUnit.module( "Button: core" ); -asyncTest( "Disabled button loses focus", function() { - expect( 2 ); +QUnit.test( "Disabled button loses focus", function( assert ) { + var ready = assert.async(); + assert.expect( 2 ); var element = $( "#button" ).button(); element.focus(); setTimeout( function() { - equal( element[ 0 ], $.ui.safeActiveElement( document ), "Button is focused" ); + assert.equal( element[ 0 ], $.ui.safeActiveElement( document ), "Button is focused" ); element.button( "disable" ); - notEqual( element[ 0 ], $.ui.safeActiveElement( document ), "Button has had focus removed" ); - start(); + assert.notEqual( element[ 0 ], $.ui.safeActiveElement( document ), "Button has had focus removed" ); + ready(); } ); } ); diff --git a/tests/unit/button/deprecated.js b/tests/unit/button/deprecated.js index fac02e2a636..81a0281b707 100644 --- a/tests/unit/button/deprecated.js +++ b/tests/unit/button/deprecated.js @@ -1,134 +1,135 @@ define( [ + "qunit", "jquery", "ui/widgets/button" -], function( $ ) { +], function( QUnit, $ ) { -module( "Button (deprecated): core" ); +QUnit.module( "Button (deprecated): core" ); -test( "Calling button on a checkbox input calls checkboxradio widget", function() { +QUnit.test( "Calling button on a checkbox input calls checkboxradio widget", function( assert ) { var checkbox = $( "#checkbox01" ); - expect( 2 ); + assert.expect( 2 ); checkbox.button(); - ok( !!checkbox.checkboxradio( "instance" ), + assert.ok( !!checkbox.checkboxradio( "instance" ), "Calling button on a checkbox creates checkboxradio instance" ); - ok( !checkbox.checkboxradio( "option", "icon" ), + assert.ok( !checkbox.checkboxradio( "option", "icon" ), "Calling button on a checkbox sets the checkboxradio icon option to false" ); } ); -test( "Calling buttonset calls controlgroup", function() { +QUnit.test( "Calling buttonset calls controlgroup", function( assert ) { var controlgroup = $( ".buttonset" ); - expect( 1 ); + assert.expect( 1 ); controlgroup.buttonset(); - ok( controlgroup.is( ":ui-controlgroup" ), "Calling buttonset creates controlgroup instance" ); + assert.ok( controlgroup.is( ":ui-controlgroup" ), "Calling buttonset creates controlgroup instance" ); } ); -module( "Button (deprecated): methods" ); +QUnit.module( "Button (deprecated): methods" ); -test( "destroy", function( assert ) { - expect( 1 ); +QUnit.test( "destroy", function( assert ) { + assert.expect( 1 ); assert.domEqual( "#checkbox02", function() { $( "#checkbox02" ).button().button( "destroy" ); } ); } ); -test( "refresh: Ensure disabled state is preserved correctly.", function() { - expect( 5 ); +QUnit.test( "refresh: Ensure disabled state is preserved correctly.", function( assert ) { + assert.expect( 5 ); var element = null; element = $( "#checkbox02" ); element.button( { disabled: true } ).button( "refresh" ); - ok( element.button( "option", "disabled" ), "Checkboxes should remain disabled after refresh" ); - ok( element.prop( "disabled" ), "Input remains disabled after refresh" ); + assert.ok( element.button( "option", "disabled" ), "Checkboxes should remain disabled after refresh" ); + assert.ok( element.prop( "disabled" ), "Input remains disabled after refresh" ); element = $( "#radio02" ); element.button( { disabled: true } ).button( "refresh" ); - ok( element.button( "option", "disabled" ), "Radio buttons should remain disabled after refresh" ); + assert.ok( element.button( "option", "disabled" ), "Radio buttons should remain disabled after refresh" ); element = $( "#checkbox02" ); element.button( { disabled: true } ).prop( "disabled", false ).button( "refresh" ); - ok( !element.button( "option", "disabled" ), "Changing a checkbox's disabled property should update the state after refresh." ); + assert.ok( !element.button( "option", "disabled" ), "Changing a checkbox's disabled property should update the state after refresh." ); element = $( "#radio02" ); element.button( { disabled: true } ).prop( "disabled", false ).button( "refresh" ); - ok( !element.button( "option", "disabled" ), "Changing a radio button's disabled property should update the state after refresh." ); + assert.ok( !element.button( "option", "disabled" ), "Changing a radio button's disabled property should update the state after refresh." ); } ); -module( "button (deprecated): options" ); +QUnit.module( "button (deprecated): options" ); -test( "Setting items option on buttonset sets the button properties on the items option", function() { - expect( 2 ); +QUnit.test( "Setting items option on buttonset sets the button properties on the items option", function( assert ) { + assert.expect( 2 ); var controlgroup = $( ".buttonset" ); controlgroup.buttonset( { items: "bar" } ); - equal( controlgroup.controlgroup( "option", "items.button" ), "bar", + assert.equal( controlgroup.controlgroup( "option", "items.button" ), "bar", "items.button set when setting items option on init on buttonset" ); controlgroup.buttonset( "option", "items", "foo" ); - equal( controlgroup.controlgroup( "option", "items.button" ), "foo", + assert.equal( controlgroup.controlgroup( "option", "items.button" ), "foo", "items.button set when setting items option on buttonset" ); } ); -test( "disabled, null", function() { - expect( 2 ); +QUnit.test( "disabled, null", function( assert ) { + assert.expect( 2 ); $( "#radio02" ).prop( "disabled", true ).button( { disabled: null } ); - deepEqual( $( "#radio02" ).button( "option", "disabled" ), true, + assert.deepEqual( $( "#radio02" ).button( "option", "disabled" ), true, "disabled option set to true" ); - deepEqual( true, $( "#radio02" ).prop( "disabled" ), "element is not disabled" ); + assert.deepEqual( true, $( "#radio02" ).prop( "disabled" ), "element is not disabled" ); } ); -test( "text / showLabel options proxied", function() { - expect( 8 ); +QUnit.test( "text / showLabel options proxied", function( assert ) { + assert.expect( 8 ); var button = $( "#button" ); button.button( { text: false, icon: "ui-icon-gear" } ); - equal( button.button( "option", "showLabel" ), false, + assert.equal( button.button( "option", "showLabel" ), false, "Setting the text option to false sets the showLabel option to false on init" ); button.button( "option", "showLabel", true ); - equal( button.button( "option", "text" ), true, + assert.equal( button.button( "option", "text" ), true, "Setting showLabel true with option method sets text option to true" ); button.button( "option", "text", false ); - equal( button.button( "option", "showLabel" ), false, + assert.equal( button.button( "option", "showLabel" ), false, "Setting text false with option method sets showLabel option to false" ); button.button( "option", "text", true ); - equal( button.button( "option", "showLabel" ), true, + assert.equal( button.button( "option", "showLabel" ), true, "Setting text true with option method sets showLabel option to true" ); button.button( "option", "showLabel", false ); - equal( button.button( "option", "text" ), false, + assert.equal( button.button( "option", "text" ), false, "Setting showLabel false with option method sets text option to false" ); button.button( "destroy" ); button.button( { text: true, icon: "ui-icon-gear" } ); - equal( button.button( "option", "showLabel" ), true, + assert.equal( button.button( "option", "showLabel" ), true, "Setting the text option to true sets the showLabel option to true on init" ); button.button( "destroy" ); button.button( { showLabel: true, icon: "ui-icon-gear" } ); - equal( button.button( "option", "text" ), true, + assert.equal( button.button( "option", "text" ), true, "Setting the showLabel option to true sets the text option to true on init" ); button.button( "destroy" ); button.button( { showLabel: false, icon: "ui-icon-gear" } ); - equal( button.button( "option", "text" ), false, + assert.equal( button.button( "option", "text" ), false, "Setting the showLabel option to false sets the text option to false on init" ); } ); -test( "icon / icons options properly proxied", function() { - expect( 10 ); +QUnit.test( "icon / icons options properly proxied", function( assert ) { + assert.expect( 10 ); var button = $( "#button" ); @@ -136,14 +137,14 @@ test( "icon / icons options properly proxied", function() { icon: "foo" } ); - equal( button.button( "option", "icons.primary" ), "foo", + assert.equal( button.button( "option", "icons.primary" ), "foo", "Icon option properly proxied on init" ); button.button( { icon: "bar" } ); - equal( button.button( "option", "icons.primary" ), "bar", + assert.equal( button.button( "option", "icons.primary" ), "bar", "Icon option properly proxied with option method" ); button.button( { @@ -152,9 +153,9 @@ test( "icon / icons options properly proxied", function() { } } ); - equal( button.button( "option", "icon" ), "foo", + assert.equal( button.button( "option", "icon" ), "foo", "Icons primary option properly proxied with option method" ); - equal( button.button( "option", "iconPosition" ), "beginning", + assert.equal( button.button( "option", "iconPosition" ), "beginning", "Icons primary option sets iconPosition option to beginning" ); button.button( { @@ -163,9 +164,9 @@ test( "icon / icons options properly proxied", function() { } } ); - equal( button.button( "option", "icon" ), "bar", + assert.equal( button.button( "option", "icon" ), "bar", "Icons secondary option properly proxied with option method" ); - equal( button.button( "option", "iconPosition" ), "end", + assert.equal( button.button( "option", "iconPosition" ), "end", "Icons secondary option sets iconPosition option to end" ); button.button( "destroy" ); @@ -176,9 +177,9 @@ test( "icon / icons options properly proxied", function() { } } ); - equal( button.button( "option", "icon" ), "foo", + assert.equal( button.button( "option", "icon" ), "foo", "Icons primary option properly proxied on init" ); - equal( button.button( "option", "iconPosition" ), "beginning", + assert.equal( button.button( "option", "iconPosition" ), "beginning", "Icons primary option sets iconPosition option to beginning on init" ); button.button( { @@ -187,9 +188,9 @@ test( "icon / icons options properly proxied", function() { } } ); - equal( button.button( "option", "icon" ), "bar", + assert.equal( button.button( "option", "icon" ), "bar", "Icons secondary option properly proxied on init" ); - equal( button.button( "option", "iconPosition" ), "end", + assert.equal( button.button( "option", "iconPosition" ), "end", "Icons secondary option sets iconPosition option to end on init" ); } ); diff --git a/tests/unit/button/events.js b/tests/unit/button/events.js index f780fb494e3..e8b5e01d6ba 100644 --- a/tests/unit/button/events.js +++ b/tests/unit/button/events.js @@ -1,18 +1,20 @@ define( [ + "qunit", "jquery", "ui/widgets/button" -], function( $ ) { +], function( QUnit, $ ) { -module( "Button: events" ); +QUnit.module( "Button: events" ); -asyncTest( "Anchor recieves click event when spacebar is pressed", function() { - expect( 1 ); +QUnit.test( "Anchor recieves click event when spacebar is pressed", function( assert ) { + var ready = assert.async(); + assert.expect( 1 ); var element = $( "#anchor-button" ).button(); element.on( "click", function( event ) { event.preventDefault(); - ok( true, "click occcured as a result of spacebar" ); - start(); + assert.ok( true, "click occcured as a result of spacebar" ); + ready(); } ); element.trigger( $.Event( "keyup", { keyCode: $.ui.keyCode.SPACE } ) ); diff --git a/tests/unit/button/methods.js b/tests/unit/button/methods.js index 09a91bbc035..823acee3456 100644 --- a/tests/unit/button/methods.js +++ b/tests/unit/button/methods.js @@ -1,32 +1,33 @@ define( [ + "qunit", "jquery", "ui/widgets/button" -], function( $ ) { +], function( QUnit, $ ) { -module( "Button: methods" ); +QUnit.module( "Button: methods" ); -test( "destroy", function( assert ) { - expect( 1 ); +QUnit.test( "destroy", function( assert ) { + assert.expect( 1 ); assert.domEqual( "#button", function() { $( "#button" ).button().button( "destroy" ); } ); } ); -test( "refresh: Ensure disabled state is preserved correctly.", function() { - expect( 3 ); +QUnit.test( "refresh: Ensure disabled state is preserved correctly.", function( assert ) { + assert.expect( 3 ); var element = $( "" ); element.button( { disabled: true } ).button( "refresh" ); - ok( element.button( "option", "disabled" ), + assert.ok( element.button( "option", "disabled" ), "Anchor button should remain disabled after refresh" ); element = $( "" ); element.button( { disabled: true } ).button( "refresh" ); - ok( element.button( "option", "disabled" ), "" ); element.button( { disabled: true } ).prop( "disabled", false ).button( "refresh" ); - ok( !element.button( "option", "disabled" ), + assert.ok( !element.button( "option", "disabled" ), "Changing a