}
- public static function disableInterwikis( $prefix, &$data ) {
- return false;
- }
-
/**
* Don't throw a warning if $function is deprecated and called later
*
* the values given in the order of the columns in the $fields parameter.
* Note that the rows are sorted by the columns given in $fields.
*
+ * @since 1.20
+ *
* @param $table String|Array the table(s) to query
* @param $fields String|Array the columns to include in the result (and to sort by)
* @param $condition String|Array "where" condition(s)
$this->assertFalse( $r, "found extra row (after #$i)" );
}
+ /**
+ * Utility method taking an array of elements and wrapping
+ * each element in it's own array. Useful for data providers
+ * that only return a single argument.
+ *
+ * @since 1.20
+ *
+ * @param array $elements
+ *
+ * @return array
+ */
+ protected function arrayWrap( array $elements ) {
+ return array_map(
+ function( $element ) {
+ return array( $element );
+ },
+ $elements
+ );
+ }
+
/**
* Assert that two arrays are equal. By default this means that both arrays need to hold
* the same set of values. Using additional arguments, order and associated key can also
* @param boolean $named If the keys should match
*/
protected function assertArrayEquals( array $expected, array $actual, $ordered = false, $named = false ) {
+ if ( !$ordered ) {
+ $this->objectAssociativeSort( $expected );
+ $this->objectAssociativeSort( $actual );
+ }
+
if ( !$named ) {
$expected = array_values( $expected );
$actual = array_values( $actual );
}
- if ( !$ordered ) {
- asort( $expected );
- asort( $actual );
- }
-
call_user_func_array(
array( $this, 'assertEquals' ),
array_merge( array( $expected, $actual ), array_slice( func_get_args(), 4 ) )
);
}
+ /**
+ * Does an associative sort that works for objects.
+ *
+ * @since 1.20
+ *
+ * @param array $array
+ */
+ protected function objectAssociativeSort( array &$array ) {
+ uasort(
+ $array,
+ function( $a, $b ) {
+ return serialize( $a ) > serialize( $b ) ? 1 : -1;
+ }
+ );
+ }
+
/**
* Utility function for eliminating all string keys from an array.
* Useful to turn a database result row as returned by fetchRow() into
* a pure indexed array.
*
- * @static
+ * @since 1.20
+ *
* @param $r mixed the array to remove string keys from.
*/
protected static function stripStringKeys( &$r ) {
- if ( !is_array( $r ) ) return;
+ if ( !is_array( $r ) ) {
+ return;
+ }
foreach ( $r as $k => $v ) {
- if ( is_string( $k ) ) unset( $r[$k] );
+ if ( is_string( $k ) ) {
+ unset( $r[$k] );
+ }
}
}
+
}