|
2 | 2 | QUnit.module( "offset" );
|
3 | 3 |
|
4 | 4 | QUnit.test( ".offset()", function( assert ) {
|
5 |
| - assert.expect( 12 ); |
| 5 | + assert.expect( 20 ); |
6 | 6 |
|
7 | 7 | var bogus = { top: 0, left: 0 };
|
8 | 8 |
|
@@ -38,10 +38,39 @@ QUnit.test( ".offset()", function( assert ) {
|
38 | 38 | );
|
39 | 39 | } );
|
40 | 40 |
|
| 41 | + expectWarning( assert, ".offset() as setter on disconnected node", 2, |
| 42 | + function() { |
| 43 | + var $elemInitial = jQuery( "<div />" ) |
| 44 | + .css( "position", "fixed" ), |
| 45 | + $elem = $elemInitial |
| 46 | + .offset( { top: 42, left: 99 } ); |
| 47 | + |
| 48 | + assert.strictEqual( $elem[ 0 ], $elemInitial[ 0 ], |
| 49 | + ".offset() returns a proper jQuery object" ); |
| 50 | + |
| 51 | + $elem.appendTo( "#qunit-fixture" ); |
| 52 | + assert.deepEqual( $elem.offset(), { top: 42, left: 99 } ); |
| 53 | + } ); |
| 54 | + |
| 55 | + expectWarning( assert, ".offset() on empty set", 2, function() { |
| 56 | + var $empty = jQuery(); |
| 57 | + |
| 58 | + assert.strictEqual( $empty.offset(), undefined, ".offset() returns undefined" ); |
| 59 | + assert.strictEqual( $empty.offset( { top: 42, left: 99 } ), $empty, |
| 60 | + ".offset( coords ) returns the jQuery object" ); |
| 61 | + } ); |
| 62 | + |
41 | 63 | expectWarning( assert, ".offset() on plain object", function() {
|
42 | 64 | assert.strictEqual(
|
43 | 65 | jQuery( { space: "junk", zero: 0 } ).offset(),
|
44 | 66 | undefined, "plain object undefined"
|
45 | 67 | );
|
46 | 68 | } );
|
| 69 | + |
| 70 | + expectNoWarning( assert, ".offset() on documentElement", function() { |
| 71 | + assert.deepEqual( |
| 72 | + jQuery( document.documentElement ).offset(), |
| 73 | + { top: 0, left: 0 }, "no crash" |
| 74 | + ); |
| 75 | + } ); |
47 | 76 | } );
|
0 commit comments