@@ -42,7 +42,7 @@ QUnit.test( "empty set", function( assert ) {
4242} ) ;
4343
4444QUnit . test ( "disconnected element" , function ( assert ) {
45- assert . expect ( 2 ) ;
45+ assert . expect ( 3 ) ;
4646
4747 var result = jQuery ( document . createElement ( "div" ) ) . offset ( ) ;
4848
@@ -51,10 +51,11 @@ QUnit.test( "disconnected element", function( assert ) {
5151 // valid input, but will return zeros for back-compat
5252 assert . equal ( result . top , 0 , "Retrieving offset on disconnected elements returns zeros (gh-2310)" ) ;
5353 assert . equal ( result . left , 0 , "Retrieving offset on disconnected elements returns zeros (gh-2310)" ) ;
54+ assert . equal ( Object . keys ( result ) . length , 2 , "Retrieving offset on disconnected elements returns offset object (gh-3167)" ) ;
5455} ) ;
5556
5657QUnit . test ( "hidden (display: none) element" , function ( assert ) {
57- assert . expect ( 2 ) ;
58+ assert . expect ( 3 ) ;
5859
5960 var node = jQuery ( "<div style='display: none' />" ) . appendTo ( "#qunit-fixture" ) ,
6061 result = node . offset ( ) ;
@@ -66,6 +67,33 @@ QUnit.test( "hidden (display: none) element", function( assert ) {
6667 // valid input, but will return zeros for back-compat
6768 assert . equal ( result . top , 0 , "Retrieving offset on hidden elements returns zeros (gh-2310)" ) ;
6869 assert . equal ( result . left , 0 , "Retrieving offset on hidden elements returns zeros (gh-2310)" ) ;
70+ assert . equal ( Object . keys ( result ) . length , 2 , "Retrieving offset on hidden elements returns offset object (gh-3167)" ) ;
71+ } ) ;
72+
73+ QUnit . test ( "0 sized element" , function ( assert ) {
74+ assert . expect ( 3 ) ;
75+
76+ var node = jQuery ( "<div style='margin: 5px; width: 0; height: 0' />" ) . appendTo ( "#qunit-fixture" ) ,
77+ result = node . offset ( ) ;
78+
79+ node . remove ( ) ;
80+
81+ assert . notEqual ( result . top , 0 , "Retrieving offset on 0 sized elements (gh-3167)" ) ;
82+ assert . notEqual ( result . left , 0 , "Retrieving offset on 0 sized elements (gh-3167)" ) ;
83+ assert . equal ( Object . keys ( result ) . length , 2 , "Retrieving offset on 0 sized elements returns offset object (gh-3167)" ) ;
84+ } ) ;
85+
86+ QUnit . test ( "hidden (visibility: hidden) element" , function ( assert ) {
87+ assert . expect ( 3 ) ;
88+
89+ var node = jQuery ( "<div style='margin: 5px; visibility: hidden' />" ) . appendTo ( "#qunit-fixture" ) ,
90+ result = node . offset ( ) ;
91+
92+ node . remove ( ) ;
93+
94+ assert . notEqual ( result . top , 0 , "Retrieving offset on visibility:hidden elements (gh-3167)" ) ;
95+ assert . notEqual ( result . left , 0 , "Retrieving offset on visibility:hidden elements (gh-3167)" ) ;
96+ assert . equal ( Object . keys ( result ) . length , 2 , "Retrieving offset on visibility:hidden elements returns offset object (gh-3167)" ) ;
6997} ) ;
7098
7199testIframe ( "absolute" , "offset/absolute.html" , function ( assert , $ , iframe ) {
0 commit comments