aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/event.js
diff options
context:
space:
mode:
authorOleg <markelog@gmail.com>2013-11-07 22:32:12 +0100
committerOleg <markelog@gmail.com>2013-11-08 16:07:26 +0100
commit7f829752e6de90593214b80ab150b06a1748e5a2 (patch)
treec02fd186a4023ab9ede505174f8849da6b2d3e3e /test/unit/event.js
parentd6fc713e261c341bbf5f39064a35094c68265286 (diff)
downloadjquery-7f829752e6de90593214b80ab150b06a1748e5a2.tar.gz
jquery-7f829752e6de90593214b80ab150b06a1748e5a2.zip
Don't execute focus tests in Firefox
Cherry picked from 45be91e3981164e076a71de31f0b8a972a4bf104 commit
Diffstat (limited to 'test/unit/event.js')
-rw-r--r--test/unit/event.js147
1 files changed, 75 insertions, 72 deletions
diff --git a/test/unit/event.js b/test/unit/event.js
index d81551da9..b099ef2b9 100644
--- a/test/unit/event.js
+++ b/test/unit/event.js
@@ -2419,51 +2419,6 @@ test("checkbox state (#3827)", function() {
jQuery( cb ).triggerHandler( "click" );
});
-test("focus-blur order (#12868)", function() {
- expect( 5 );
-
- var order,
- $text = jQuery("#text1"),
- $radio = jQuery("#radio1").trigger("focus");
-
- // IE6-10 fire focus/blur events asynchronously; this is the resulting mess.
- // IE's browser window must be topmost for this to work properly!!
- stop();
- $radio[0].focus();
-
- setTimeout( function() {
-
- $text
- .on( "focus", function(){
- equal( order++, 1, "text focus" );
- })
- .on( "blur", function(){
- equal( order++, 0, "text blur" );
- });
- $radio
- .on( "focus", function(){
- equal( order++, 1, "radio focus" );
- })
- .on( "blur", function(){
- equal( order++, 0, "radio blur" );
- });
-
- // Enabled input getting focus
- order = 0;
- equal( document.activeElement, $radio[0], "radio has focus" );
- $text.trigger("focus");
- setTimeout( function() {
- equal( document.activeElement, $text[0], "text has focus" );
-
- // Run handlers without native method on an input
- order = 1;
- $radio.triggerHandler( "focus" );
- $text.off();
- start();
- }, 50 );
- }, 50 );
-});
-
test("hover event no longer special since 1.9", function() {
expect( 1 );
@@ -2645,33 +2600,6 @@ test( "make sure events cloned correctly", 18, function() {
clone.find("#check1").trigger("change"); // 0 events should fire
});
-test( "Check order of focusin/focusout events", 2, function() {
- var focus, blur,
- input = jQuery( "#name" );
-
- input.on( "focus", function() {
- focus = true;
-
- }).on( "focusin", function() {
- ok( !focus, "Focusin event should fire before focus does" );
-
- }).on( "blur", function() {
- blur = true;
-
- }).on( "focusout", function() {
- ok( !blur, "Focusout event should fire before blur does" );
- });
-
- // gain focus
- input.trigger( "focus" );
-
- // then lose it
- jQuery( "#search" ).trigger( "focus" );
-
- // cleanup
- input.off();
-});
-
test( "String.prototype.namespace does not cause trigger() to throw (#13360)", function() {
expect( 1 );
var errored = false;
@@ -2694,3 +2622,78 @@ test( "Inline event result is returned (#13993)", function() {
equal( result, 42, "inline handler returned value" );
});
+
+// This tests are unreliable in Firefox
+if ( !(/firefox/i.test( window.navigator.userAgent )) ) {
+ test( "Check order of focusin/focusout events", 2, function() {
+ var focus, blur,
+ input = jQuery( "#name" );
+
+ input.on( "focus", function() {
+ focus = true;
+
+ }).on( "focusin", function() {
+ ok( !focus, "Focusin event should fire before focus does" );
+
+ }).on( "blur", function() {
+ blur = true;
+
+ }).on( "focusout", function() {
+ ok( !blur, "Focusout event should fire before blur does" );
+ });
+
+ // gain focus
+ input.trigger( "focus" );
+
+ // then lose it
+ jQuery( "#search" ).trigger( "focus" );
+
+ // cleanup
+ input.off();
+ });
+
+ test("focus-blur order (#12868)", function() {
+ expect( 5 );
+
+ var order,
+ $text = jQuery("#text1"),
+ $radio = jQuery("#radio1").trigger("focus");
+
+ // IE6-10 fire focus/blur events asynchronously; this is the resulting mess.
+ // IE's browser window must be topmost for this to work properly!!
+ stop();
+ $radio[0].focus();
+
+ setTimeout( function() {
+
+ $text
+ .on( "focus", function(){
+ equal( order++, 1, "text focus" );
+ })
+ .on( "blur", function(){
+ equal( order++, 0, "text blur" );
+ });
+ $radio
+ .on( "focus", function(){
+ equal( order++, 1, "radio focus" );
+ })
+ .on( "blur", function(){
+ equal( order++, 0, "radio blur" );
+ });
+
+ // Enabled input getting focus
+ order = 0;
+ equal( document.activeElement, $radio[0], "radio has focus" );
+ $text.trigger("focus");
+ setTimeout( function() {
+ equal( document.activeElement, $text[0], "text has focus" );
+
+ // Run handlers without native method on an input
+ order = 1;
+ $radio.triggerHandler( "focus" );
+ $text.off();
+ start();
+ }, 50 );
+ }, 50 );
+ });
+}