From 1096f19f37d6075328509d62a4c2c6d6a53d4b37 Mon Sep 17 00:00:00 2001 From: Jörn Zaefferer Date: Sat, 16 Nov 2013 12:21:02 +0100 Subject: Dialog: Keep track of instances to focus when elements outside the dialog get focus. Works with inheritance. Adds tests for both. Fixes #9241 - Dialog: UI dialog inheritance causes undefined property '_focusTabbable' in IE9 --- tests/unit/dialog/dialog_core.js | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'tests') diff --git a/tests/unit/dialog/dialog_core.js b/tests/unit/dialog/dialog_core.js index 062d44576..c08019da9 100644 --- a/tests/unit/dialog/dialog_core.js +++ b/tests/unit/dialog/dialog_core.js @@ -4,6 +4,7 @@ (function($) { +// TODO add teardown callback to remove dialogs module("dialog: core"); test("title id", function() { @@ -180,4 +181,51 @@ asyncTest( "#9048: multiple modal dialogs opened and closed in different order", start(); }); }); + +asyncTest( "interaction between overlay and other dialogs", function() { + $.widget( "ui.testWidget", $.ui.dialog, { + options: { + modal: true, + autoOpen: false + } + }); + expect( 2 ); + var first = $( "
" ).dialog({ + modal: true + }), + firstInput = first.find( "input" ), + second = $( "
" ).testWidget(), + secondInput = second.find( "input" ); + + // Support: IE8 + // For some reason the focus doesn't get set properly if we don't + // focus the body first. + $( "body" ).focus(); + + // Wait for the modal to init + setTimeout(function() { + second.testWidget( "open" ); + + // Simulate user tabbing from address bar to an element outside the dialog + $( "#favorite-animal" ).focus(); + setTimeout(function() { + equal( document.activeElement, secondInput[ 0 ] ); + + // Last active dialog must receive focus + firstInput.focus(); + $( "#favorite-animal" ).focus(); + setTimeout(function() { + equal( document.activeElement, firstInput[ 0 ] ); + + // Cleanup + first.remove(); + second.remove(); + delete $.ui.testWidget; + delete $.fn.testWidget; + start(); + }); + }); + }); +}); + })(jQuery); -- cgit v1.2.3 From 6a74bf992944419caabc7adb8ec8ca758451f1d5 Mon Sep 17 00:00:00 2001 From: Scott González Date: Wed, 20 Nov 2013 11:14:19 -0500 Subject: Menu tests: Force line height to ensure we know how many items will be scrolled. --- tests/unit/menu/menu.html | 4 ++++ tests/unit/menu/menu_events.js | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'tests') diff --git a/tests/unit/menu/menu.html b/tests/unit/menu/menu.html index a49c72a04..504d3f3cf 100644 --- a/tests/unit/menu/menu.html +++ b/tests/unit/menu/menu.html @@ -31,6 +31,10 @@ - - - - -
- - -

Accordion

-
-
-
-

First

-
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
-
-
-

Second

-
Phasellus mattis tincidunt nibh.
-
-
-

Third

-
Nam dui erat, auctor a, dignissim quis.
-
-
-
-
-
-
-

First no icons

-
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
-
-
-

Second no icons

-
Phasellus mattis tincidunt nibh.
-
-
-

Third no icons

-
Nam dui erat, auctor a, dignissim quis.
-
-
-
- - - -

Tabs

-
- -
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.
-
Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.
-
- - -

Dialog

-

Open Dialog

- -
Inline Dialogclose
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

-
- - -

Overlay and Shadow Classes (not currently used in UI widgets)

-
-

Lorem ipsum dolor sit amet, Nulla nec tortor. Donec id elit quis purus consectetur consequat.

Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci.

Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat.

Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam.

Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante.

Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi.

- - -
-
-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

-
-
- -
- - - -
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

-
- - - -

Framework Icons (content color preview)

- - - - -

Slider

-
-
+ }); + + + // Progressbar + $("#progressbar").progressbar({ + value: 20 + }); + + //hover states on the static widgets + $('#dialog_link, ul#icons li').hover( + function() { $(this).addClass('ui-state-hover'); }, + function() { $(this).removeClass('ui-state-hover'); } + ); + + $(".buttonset > button").button() + .next() + .button({ + text: false, + icons: { + primary: "ui-icon-triangle-1-s" + } + }) + .parent() + .buttonset(); + + + $('#beginning').button({ + text: false, + icons: { + primary: 'ui-icon-seek-start' + } + }); + $('#rewind').button({ + text: false, + icons: { + primary: 'ui-icon-seek-prev' + } + }); + $('#play').button({ + text: false, + icons: { + primary: 'ui-icon-play' + } + }); + $('#stop').button({ + text: false, + icons: { + primary: 'ui-icon-stop' + } + }); + $('#forward').button({ + text: false, + icons: { + primary: 'ui-icon-seek-next' + } + }); + $('#end').button({ + text: false, + icons: { + primary: 'ui-icon-seek-end' + } + }); + $("#shuffle").button(); + $("#repeat").buttonset(); + + }); + + + + + +
+ + +

Accordion

+
+
+
+

First

+
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
-
-
- 88 - 77 - 55 - 33 - 40 - 45 - 70 -
+
+

Second

+
Phasellus mattis tincidunt nibh.
- - - -

Datepicker

-
-
+
+

Third

+
Nam dui erat, auctor a, dignissim quis.
-
-
+
+
+
+
+
+

First no icons

+
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
- - - -

Progressbar

-
- - -

Highlight / Error

-
-
-

- Hey! Sample ui-state-highlight style.

-
+
+

Second no icons

+
Phasellus mattis tincidunt nibh.
-
-
-
-

- Alert: Sample ui-state-error style.

-
+
+

Third no icons

+
Nam dui erat, auctor a, dignissim quis.
- -

Button

- -
- - +
+
+ + + +

Tabs

+
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+
Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.
+
Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.
+
+ + +

Dialog

+

Open Dialog

+ +
Inline Dialogclose
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+ + +

Overlay and Shadow Classes (not currently used in UI widgets)

+
+

Lorem ipsum dolor sit amet, Nulla nec tortor. Donec id elit quis purus consectetur consequat.

Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci.

Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat.

Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam.

Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante.

Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi.

+ + +
+
+
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

- - - - - - - - - - - - - - - - - - - - - - - - - - +
+ +
+ + + +
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+ + + +

Framework Icons (content color preview)

+
    + +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
+ + + +

Slider

+
+
+
+
+
+ 88 + 77 + 55 + 33 + 40 + 45 + 70 +
+
+ + + +

Datepicker

+
+
+
+
+
+
+ + + +

Progressbar

+
+ + +

Highlight / Error

+
+
+

+ Hey! Sample ui-state-highlight style.

+
+
+
+
+
+

+ Alert: Sample ui-state-error style.

+
+
+ +

Button

+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + - - -- cgit v1.2.3 From f848ae38e0389874c0a6d026d54d40cb044f9561 Mon Sep 17 00:00:00 2001 From: Scott González Date: Fri, 22 Nov 2013 09:54:18 -0500 Subject: Build: Include es3 option for JSHint. --- tests/.jshintrc | 1 + ui/.jshintrc | 1 + 2 files changed, 2 insertions(+) (limited to 'tests') diff --git a/tests/.jshintrc b/tests/.jshintrc index 26f47fcee..aeb3150a2 100644 --- a/tests/.jshintrc +++ b/tests/.jshintrc @@ -14,6 +14,7 @@ "unused": true, "browser": true, + "es3": true, "evil": true, "jquery": true, diff --git a/ui/.jshintrc b/ui/.jshintrc index a5d36e1d3..073418812 100644 --- a/ui/.jshintrc +++ b/ui/.jshintrc @@ -14,6 +14,7 @@ "unused": true, "browser": true, + "es3": true, "jquery": true, "globals": { -- cgit v1.2.3 From d186deb770e578e7d3f807336f7490429add0cac Mon Sep 17 00:00:00 2001 From: Scott González Date: Fri, 22 Nov 2013 10:49:17 -0500 Subject: Tests: Fixed path to theme files in index. --- tests/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/index.html b/tests/index.html index e00e03dbc..38595f0b0 100644 --- a/tests/index.html +++ b/tests/index.html @@ -3,8 +3,8 @@ jQuery UI Tests - - + + -- cgit v1.2.3 From 161d7ee38905ea2ce425bca3baa499fada41c98d Mon Sep 17 00:00:00 2001 From: Scott González Date: Fri, 22 Nov 2013 10:49:44 -0500 Subject: Tests: Updated URL for TestSwarm. --- tests/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/index.html b/tests/index.html index 38595f0b0..53487e8b3 100644 --- a/tests/index.html +++ b/tests/index.html @@ -18,7 +18,7 @@

Unit tests exist for all functionality in jQuery UI. The unit tests can be run locally (some tests require a web server with PHP) to ensure proper functionality before committing changes. - The unit tests are also run on TestSwarm + The unit tests are also run on TestSwarm for every commit.

Visual Tests

-- cgit v1.2.3 From 8eeb0e7d88a943e3860f8492661ac8090cb8d3ac Mon Sep 17 00:00:00 2001 From: Scott González Date: Fri, 22 Nov 2013 11:43:55 -0500 Subject: Tests: Skip JSHint in browsers that don't support Function.prototype.bind() to work around a bug in JSHint. --- tests/unit/testsuite.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js index 13daa7e66..ffd1e73de 100644 --- a/tests/unit/testsuite.js +++ b/tests/unit/testsuite.js @@ -59,7 +59,9 @@ QUnit.config.urlConfig.push({ jshintLoaded = false; TestHelpers.testJshint = function( module ) { - if ( QUnit.urlParams.nojshint ) { + // Function.prototype.bind check is needed because JSHint doesn't work in ES3 browsers anymore + // https://github.com/jshint/jshint/issues/1384 + if ( QUnit.urlParams.nojshint || !Function.prototype.bind ) { return; } -- cgit v1.2.3