Skip to content
Permalink
Browse files

Ref #14313: Further code and test improvements

  • Loading branch information
gibson042 committed Sep 3, 2013
1 parent c75c9a8 commit f66d53c85643e703a8e37d9ca9375dd386a60cda
Showing with 57 additions and 19 deletions.
  1. +5 −7 src/core.js
  2. +52 −12 test/unit/core.js
@@ -552,14 +552,12 @@ jQuery.extend({
},

merge: function( first, second ) {
var l = +second.length,
i = first.length,
j = 0;
var len = +second.length,
j = 0,
i = first.length;

if ( l ) {
for ( ; j < l; j++ ) {
first[ i++ ] = second[ j ];
}
for ( ; j < len; j++ ) {
first[ i++ ] = second[ j ];
}

first.length = i;
@@ -903,25 +903,65 @@ test("jQuery.map", function() {
});

test("jQuery.merge()", function() {
expect(8);
expect( 10 );

deepEqual( jQuery.merge([],[]), [], "Empty arrays" );
deepEqual(
jQuery.merge( [], [] ),
[],
"Empty arrays"
);

deepEqual( jQuery.merge([ 1 ],[ 2 ]), [ 1, 2 ], "Basic" );
deepEqual( jQuery.merge([ 1, 2 ], [ 3, 4 ]), [ 1, 2, 3, 4 ], "Basic" );
deepEqual(
jQuery.merge( [ 1 ], [ 2 ] ),
[ 1, 2 ],
"Basic (single-element)"
);
deepEqual(
jQuery.merge( [ 1, 2 ], [ 3, 4 ] ),
[ 1, 2, 3, 4 ],
"Basic (multiple-element)"
);

deepEqual( jQuery.merge([ 1, 2 ],[]), [ 1, 2 ], "Second empty" );
deepEqual( jQuery.merge([],[ 1, 2 ]), [ 1, 2 ], "First empty" );
deepEqual(
jQuery.merge( [ 1, 2 ], [] ),
[ 1, 2 ],
"Second empty"
);
deepEqual(
jQuery.merge( [], [ 1, 2 ] ),
[ 1, 2 ],
"First empty"
);

// Fixed at [5998], #3641
deepEqual( jQuery.merge([ -2, -1 ], [ 0, 1, 2 ]), [ -2, -1 , 0, 1, 2 ],
"Second array including a zero (falsy)");
deepEqual(
jQuery.merge( [ -2, -1 ], [ 0, 1, 2 ] ),
[ -2, -1 , 0, 1, 2 ],
"Second array including a zero (falsy)"
);

// After fixing #5527
deepEqual( jQuery.merge([], [ null, undefined ]), [ null, undefined ],
"Second array including null and undefined values");
deepEqual( jQuery.merge({ length: 0 }, [ 1, 2 ] ), { length: 2, 0: 1, 1: 2},
"First array like");
deepEqual(
jQuery.merge( [], [ null, undefined ] ),
[ null, undefined ],
"Second array including null and undefined values"
);
deepEqual(
jQuery.merge( { length: 0 }, [ 1, 2 ] ),
{ length: 2, 0: 1, 1: 2 },
"First array like"
);
deepEqual(
jQuery.merge( [ 1, 2 ], { length: 1, 0: 3 } ),
[ 1, 2, 3 ],
"Second array like"
);

deepEqual(
jQuery.merge( [], document.getElementById("lengthtest").getElementsByTagName("input") ),
[ document.getElementById("length"), document.getElementById("idTest") ],
"Second NodeList"
);
});

test("jQuery.extend(Object, Object)", function() {

0 comments on commit f66d53c

Please sign in to comment.
You can’t perform that action at this time.