mirror of
https://github.com/jquery/jquery.git
synced 2025-01-10 18:24:24 +00:00
Tests: Account for array-like objects in jQuery.grep
Cherry-picked from 67b76f5986
Closes gh-2605
This commit is contained in:
parent
8cac6da55d
commit
6e466af010
@ -975,16 +975,83 @@ QUnit.test( "jQuery.grep()", function( assert ) {
|
|||||||
assert.deepEqual( jQuery.grep( [], searchCriterion ), [], "Empty array" );
|
assert.deepEqual( jQuery.grep( [], searchCriterion ), [], "Empty array" );
|
||||||
assert.deepEqual( jQuery.grep( new Array( 4 ), searchCriterion ), [], "Sparse array" );
|
assert.deepEqual( jQuery.grep( new Array( 4 ), searchCriterion ), [], "Sparse array" );
|
||||||
|
|
||||||
assert.deepEqual( jQuery.grep( [ 1, 2, 3, 4, 5, 6 ], searchCriterion ), [ 2, 4, 6 ], "Satisfying elements present" );
|
assert.deepEqual(
|
||||||
assert.deepEqual( jQuery.grep( [ 1, 3, 5, 7 ], searchCriterion ), [], "Satisfying elements absent" );
|
jQuery.grep( [ 1, 2, 3, 4, 5, 6 ], searchCriterion ),
|
||||||
|
[ 2, 4, 6 ],
|
||||||
|
"Satisfying elements present"
|
||||||
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( [ 1, 3, 5, 7 ], searchCriterion ),
|
||||||
|
[],
|
||||||
|
"Satisfying elements absent"
|
||||||
|
);
|
||||||
|
|
||||||
assert.deepEqual( jQuery.grep( [ 1, 2, 3, 4, 5, 6 ], searchCriterion, true ), [ 1, 3, 5 ], "Satisfying elements present and grep inverted" );
|
assert.deepEqual(
|
||||||
assert.deepEqual( jQuery.grep( [ 1, 3, 5, 7 ], searchCriterion, true ), [ 1, 3, 5, 7 ], "Satisfying elements absent and grep inverted" );
|
jQuery.grep( [ 1, 2, 3, 4, 5, 6 ], searchCriterion, true ),
|
||||||
|
[ 1, 3, 5 ],
|
||||||
|
"Satisfying elements present and grep inverted"
|
||||||
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( [ 1, 3, 5, 7 ], searchCriterion, true ),
|
||||||
|
[ 1, 3, 5, 7 ],
|
||||||
|
"Satisfying elements absent and grep inverted"
|
||||||
|
);
|
||||||
|
|
||||||
assert.deepEqual( jQuery.grep( [ 1, 2, 3, 4, 5, 6 ], searchCriterion, false ), [ 2, 4, 6 ], "Satisfying elements present but grep explicitly uninverted" );
|
assert.deepEqual(
|
||||||
assert.deepEqual( jQuery.grep( [ 1, 3, 5, 7 ], searchCriterion, false ), [], "Satisfying elements absent and grep explicitly uninverted" );
|
jQuery.grep( [ 1, 2, 3, 4, 5, 6 ], searchCriterion, false ),
|
||||||
|
[ 2, 4, 6 ],
|
||||||
|
"Satisfying elements present but grep explicitly uninverted"
|
||||||
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( [ 1, 3, 5, 7 ], searchCriterion, false ),
|
||||||
|
[],
|
||||||
|
"Satisfying elements absent and grep explicitly uninverted"
|
||||||
|
);
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
QUnit.test( "jQuery.grep(Array-like)", function( assert ) {
|
||||||
|
assert.expect( 7 );
|
||||||
|
|
||||||
|
var searchCriterion = function( value ) {
|
||||||
|
return value % 2 === 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
assert.deepEqual( jQuery.grep( { length: 0 }, searchCriterion ), [], "Empty array-like" );
|
||||||
|
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, length: 6 }, searchCriterion ),
|
||||||
|
[ 2, 4, 6 ],
|
||||||
|
"Satisfying elements present and array-like object used"
|
||||||
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( { 0: 1, 1: 3, 2: 5, 3: 7, length: 4 }, searchCriterion ),
|
||||||
|
[],
|
||||||
|
"Satisfying elements absent and Array-like object used"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, length: 6 }, searchCriterion, true ),
|
||||||
|
[ 1, 3, 5 ],
|
||||||
|
"Satisfying elements present, array-like object used, and grep inverted"
|
||||||
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( { 0: 1, 1: 3, 2: 5, 3: 7, length: 4 }, searchCriterion, true ),
|
||||||
|
[ 1, 3, 5, 7 ],
|
||||||
|
"Satisfying elements absent, array-like object used, and grep inverted"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, length: 6 }, searchCriterion, false ),
|
||||||
|
[ 2, 4, 6 ],
|
||||||
|
"Satisfying elements present, Array-like object used, but grep explicitly uninverted"
|
||||||
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
jQuery.grep( { 0: 1, 1: 3, 2: 5, 3: 7, length: 4 }, searchCriterion, false ),
|
||||||
|
[],
|
||||||
|
"Satisfying elements absent, Array-like object used, and grep explicitly uninverted"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
QUnit.test( "jQuery.extend(Object, Object)", function( assert ) {
|
QUnit.test( "jQuery.extend(Object, Object)", function( assert ) {
|
||||||
assert.expect( 28 );
|
assert.expect( 28 );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user