Update $.data to use a function instead of an object when attaching to JS objects...
[jquery.git] / test / unit / event.js
index a6d8cb6..045ea73 100644 (file)
@@ -304,14 +304,14 @@ test("live/delegate immediate propagation", function() {
        $p.undelegate( "click" );
 });
 
-test("bind/delegate bubbling, isDefaultPrevented (Bug #7793)", function() {
+test("bind/delegate bubbling, isDefaultPrevented", function() {
        expect(2);
        var $anchor2 = jQuery( "#anchor2" ),
                $main = jQuery( "#main" ),
                fakeClick = function($jq) {
                        // Use a native click so we don't get jQuery simulated bubbling
                        if ( document.createEvent ) {
-                               var e = document.createEvent( "MouseEvents" );
+                               var e = document.createEvent( 'MouseEvents' );
                                e.initEvent( "click", true, true );
                                $jq[0].dispatchEvent(e);
                        }
@@ -323,7 +323,15 @@ test("bind/delegate bubbling, isDefaultPrevented (Bug #7793)", function() {
                e.preventDefault();
        });
        $main.delegate("#foo", "click", function(e) {
-               equals( e.isDefaultPrevented(), true, "isDefaultPrevented true passed to bubbled event" );
+               var orig = e.originalEvent;
+
+               if ( typeof(orig.defaultPrevented) === "boolean" || typeof(orig.returnValue) === "boolean" || orig.getPreventDefault ) {
+                       equals( e.isDefaultPrevented(), true, "isDefaultPrevented true passed to bubbled event" );
+
+               } else {
+                       // Opera < 11 doesn't implement any interface we can use, so give it a pass
+                       ok( true, "isDefaultPrevented not supported by this browser, test skipped" );
+               }
        });
        fakeClick( $anchor2 );
        $anchor2.unbind( "click" );
@@ -540,7 +548,7 @@ test("bind(name, false), unbind(name, false)", function() {
 });
 
 test("bind()/trigger()/unbind() on plain object", function() {
-       expect( 8 );
+       expect( 7 );
 
        var obj = {};
 
@@ -562,7 +570,6 @@ test("bind()/trigger()/unbind() on plain object", function() {
        var events = jQuery._data(obj, "events");
        ok( events, "Object has events bound." );
        equals( obj.events, undefined, "Events object on plain objects is not events" );
-       equals( typeof events, "function", "'events' expando is a function on plain objects." );
        equals( obj.test, undefined, "Make sure that test event is not on the plain object." );
        equals( obj.handle, undefined, "Make sure that the event handler is not on the plain object." );
 
@@ -1945,26 +1952,6 @@ test("window resize", function() {
        ok( !jQuery._data(window, "__events__"), "Make sure all the events are gone." );
 });
 
-test("focusin bubbles", function() {
-       //create an input and focusin on it
-       var input = jQuery("<input/>"), order = 0;
-
-       input.prependTo("body");
-
-       jQuery("body").bind("focusin.focusinBubblesTest",function(){
-               equals(1,order++,"focusin on the body second")
-       });
-
-       input.bind("focusin.focusinBubblesTest",function(){
-               equals(0,order++,"focusin on the element first")
-       });
-
-       input[0].focus();
-       input.remove();
-
-       jQuery("body").unbind("focusin.focusinBubblesTest");
-});
-
 /*
 test("jQuery(function($) {})", function() {
        stop();