Unit Tests: The assertEqualSets()
helper was returning true for some sets that were not equal. assertEqualSets()
now behaves correctly, and the new assertEqualSetsWithIndex()
helper also checks that the array indexes are the same.
Fixes #30522. git-svn-id: https://develop.svn.wordpress.org/trunk@30687 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
fe4b0c7f14
commit
897b1645bb
@ -262,8 +262,15 @@ class WP_UnitTestCase extends PHPUnit_Framework_TestCase {
|
||||
}
|
||||
|
||||
function assertEqualSets( $expected, $actual ) {
|
||||
$this->assertEquals( array(), array_diff( $expected, $actual ) );
|
||||
$this->assertEquals( array(), array_diff( $actual, $expected ) );
|
||||
sort( $expected );
|
||||
sort( $actual );
|
||||
$this->assertEquals( $expected, $actual );
|
||||
}
|
||||
|
||||
function assertEqualSetsWithIndex( $expected, $actual ) {
|
||||
ksort( $expected );
|
||||
ksort( $actual );
|
||||
$this->assertEquals( $expected, $actual );
|
||||
}
|
||||
|
||||
function go_to( $url ) {
|
||||
|
162
tests/phpunit/tests/includes/helpers.php
Executable file
162
tests/phpunit/tests/includes/helpers.php
Executable file
@ -0,0 +1,162 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @group phpunit
|
||||
*/
|
||||
class Tests_TestHelpers extends WP_UnitTestCase {
|
||||
/**
|
||||
* @ticket 30522
|
||||
*/
|
||||
function data_assertEqualSets() {
|
||||
return array(
|
||||
array(
|
||||
array( 1, 2, 3 ), // test expected
|
||||
array( 1, 2, 3 ), // test actual
|
||||
false // exception expected
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 2, 3, 1 ),
|
||||
false
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 1, 2, 3, 4 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3, 4 ),
|
||||
array( 1, 2, 3 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 3, 4, 2, 1 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 1, 2, 3, 3 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 2, 3, 1, 3 ),
|
||||
true
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider data_assertEqualSets
|
||||
* @ticket 30522
|
||||
*/
|
||||
function test_assertEqualSets( $expected, $actual, $exception ) {
|
||||
if ( $exception ) {
|
||||
try {
|
||||
$this->assertEqualSets( $expected, $actual );
|
||||
} catch ( PHPUnit_Framework_ExpectationFailedException $ex ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->fail();
|
||||
} else {
|
||||
$this->assertEqualSets( $expected, $actual );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 30522
|
||||
*/
|
||||
function data_assertEqualSetsWithIndex() {
|
||||
return array(
|
||||
array(
|
||||
array( 1, 2, 3 ), // test expected
|
||||
array( 1, 2, 3 ), // test actual
|
||||
false // exception expected
|
||||
),
|
||||
array(
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3 ),
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3 ),
|
||||
false
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 2, 3, 1 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3 ),
|
||||
array( 'b' => 2, 'c' => 3, 'a' => 1 ),
|
||||
false
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 1, 2, 3, 4 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3, 4 ),
|
||||
array( 1, 2, 3 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3 ),
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4 ),
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 3, 4, 2, 1 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3 ),
|
||||
array( 'c' => 3, 'b' => 2, 'd' => 4, 'a' => 1 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 1, 2, 3, 3 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3 ),
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 3 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 1, 2, 3 ),
|
||||
array( 2, 3, 1, 3 ),
|
||||
true
|
||||
),
|
||||
array(
|
||||
array( 'a' => 1, 'b' => 2, 'c' => 3 ),
|
||||
array( 'c' => 3, 'b' => 2, 'd' => 3, 'a' => 1 ),
|
||||
true
|
||||
),
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @dataProvider data_assertEqualSetsWithIndex
|
||||
* @ticket 30522
|
||||
*/
|
||||
function test_assertEqualSetsWithIndex( $expected, $actual, $exception ) {
|
||||
if ( $exception ) {
|
||||
try {
|
||||
$this->assertEqualSetsWithIndex( $expected, $actual );
|
||||
} catch ( PHPUnit_Framework_ExpectationFailedException $ex ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->fail();
|
||||
} else {
|
||||
$this->assertEqualSetsWithIndex( $expected, $actual );
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user