protected $printerName = 'json';
private static function addFormatVersion( $format, $arr ) {
- foreach ( $arr as &$p ) {
- if ( !isset( $p[2] ) ) {
- $p[2] = array( 'formatversion' => $format );
- } else {
- $p[2]['formatversion'] = $format;
+ $ret = [];
+ foreach ( $arr as $val ) {
+ if ( !isset( $val[2] ) ) {
+ $val[2] = [];
+ }
+ $val[2]['formatversion'] = $format;
+ $ret[] = $val;
+ if ( $format === 2 ) {
+ // Add a test for 'latest' as well
+ $val[2]['formatversion'] = 'latest';
+ $ret[] = $val;
}
}
- return $arr;
+ return $ret;
}
public static function provideGeneralEncoding() {
return array_merge(
- self::addFormatVersion( 1, array(
+ self::addFormatVersion( 1, [
// Basic types
- array( array( null ), '[null]' ),
- array( array( true ), '[""]' ),
- array( array( false ), '[]' ),
- array( array( true, ApiResult::META_BC_BOOLS => array( 0 ) ), '[true]' ),
- array( array( false, ApiResult::META_BC_BOOLS => array( 0 ) ), '[false]' ),
- array( array( 42 ), '[42]' ),
- array( array( 42.5 ), '[42.5]' ),
- array( array( 1e42 ), '[1.0e+42]' ),
- array( array( 'foo' ), '["foo"]' ),
- array( array( 'fóo' ), '["f\u00f3o"]' ),
- array( array( 'fóo' ), '["fóo"]', array( 'utf8' => 1 ) ),
+ [ [ null ], '[null]' ],
+ [ [ true ], '[""]' ],
+ [ [ false ], '[]' ],
+ [ [ true, ApiResult::META_BC_BOOLS => [ 0 ] ], '[true]' ],
+ [ [ false, ApiResult::META_BC_BOOLS => [ 0 ] ], '[false]' ],
+ [ [ 42 ], '[42]' ],
+ [ [ 42.5 ], '[42.5]' ],
+ [ [ 1e42 ], '[1.0e+42]' ],
+ [ [ 'foo' ], '["foo"]' ],
+ [ [ 'fóo' ], '["f\u00f3o"]' ],
+ [ [ 'fóo' ], '["fóo"]', [ 'utf8' => 1 ] ],
// Arrays and objects
- array( array( array() ), '[[]]' ),
- array( array( array( 1 ) ), '[[1]]' ),
- array( array( array( 'x' => 1 ) ), '[{"x":1}]' ),
- array( array( array( 2 => 1 ) ), '[{"2":1}]' ),
- array( array( (object)array() ), '[{}]' ),
- array( array( array( 1, ApiResult::META_TYPE => 'assoc' ) ), '[{"0":1}]' ),
- array( array( array( 'x' => 1, ApiResult::META_TYPE => 'array' ) ), '[[1]]' ),
- array( array( array( 'x' => 1, ApiResult::META_TYPE => 'kvp' ) ), '[{"x":1}]' ),
- array(
- array( array(
+ [ [ [] ], '[[]]' ],
+ [ [ [ 1 ] ], '[[1]]' ],
+ [ [ [ 'x' => 1 ] ], '[{"x":1}]' ],
+ [ [ [ 2 => 1 ] ], '[{"2":1}]' ],
+ [ [ (object)[] ], '[{}]' ],
+ [ [ [ 1, ApiResult::META_TYPE => 'assoc' ] ], '[{"0":1}]' ],
+ [ [ [ 'x' => 1, ApiResult::META_TYPE => 'array' ] ], '[[1]]' ],
+ [ [ [ 'x' => 1, ApiResult::META_TYPE => 'kvp' ] ], '[{"x":1}]' ],
+ [
+ [ [
'x' => 1,
ApiResult::META_TYPE => 'BCkvp',
ApiResult::META_KVP_KEY_NAME => 'key'
- ) ),
+ ] ],
'[[{"key":"x","*":1}]]'
- ),
- array( array( array( 'x' => 1, ApiResult::META_TYPE => 'BCarray' ) ), '[{"x":1}]' ),
- array( array( array( 'a', 'b', ApiResult::META_TYPE => 'BCassoc' ) ), '[["a","b"]]' ),
+ ],
+ [ [ [ 'x' => 1, ApiResult::META_TYPE => 'BCarray' ] ], '[{"x":1}]' ],
+ [ [ [ 'a', 'b', ApiResult::META_TYPE => 'BCassoc' ] ], '[["a","b"]]' ],
// Content
- array( array( 'content' => 'foo', ApiResult::META_CONTENT => 'content' ),
- '{"*":"foo"}' ),
+ [ [ 'content' => 'foo', ApiResult::META_CONTENT => 'content' ],
+ '{"*":"foo"}' ],
// BC Subelements
- array( array( 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => array( 'foo' ) ),
- '{"foo":{"*":"foo"}}' ),
+ [ [ 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => [ 'foo' ] ],
+ '{"foo":{"*":"foo"}}' ],
// Callbacks
- array( array( 1 ), '/**/myCallback([1])', array( 'callback' => 'myCallback' ) ),
+ [ [ 1 ], '/**/myCallback([1])', [ 'callback' => 'myCallback' ] ],
// Cross-domain mangling
- array( array( '< Cross-Domain-Policy >' ), '["\u003C Cross-Domain-Policy \u003E"]' ),
- ) ),
- self::addFormatVersion( 2, array(
+ [ [ '< Cross-Domain-Policy >' ], '["\u003C Cross-Domain-Policy >"]' ],
+ ] ),
+ self::addFormatVersion( 2, [
// Basic types
- array( array( null ), '[null]' ),
- array( array( true ), '[true]' ),
- array( array( false ), '[false]' ),
- array( array( true, ApiResult::META_BC_BOOLS => array( 0 ) ), '[true]' ),
- array( array( false, ApiResult::META_BC_BOOLS => array( 0 ) ), '[false]' ),
- array( array( 42 ), '[42]' ),
- array( array( 42.5 ), '[42.5]' ),
- array( array( 1e42 ), '[1.0e+42]' ),
- array( array( 'foo' ), '["foo"]' ),
- array( array( 'fóo' ), '["fóo"]' ),
- array( array( 'fóo' ), '["f\u00f3o"]', array( 'ascii' => 1 ) ),
+ [ [ null ], '[null]' ],
+ [ [ true ], '[true]' ],
+ [ [ false ], '[false]' ],
+ [ [ true, ApiResult::META_BC_BOOLS => [ 0 ] ], '[true]' ],
+ [ [ false, ApiResult::META_BC_BOOLS => [ 0 ] ], '[false]' ],
+ [ [ 42 ], '[42]' ],
+ [ [ 42.5 ], '[42.5]' ],
+ [ [ 1e42 ], '[1.0e+42]' ],
+ [ [ 'foo' ], '["foo"]' ],
+ [ [ 'fóo' ], '["fóo"]' ],
+ [ [ 'fóo' ], '["f\u00f3o"]', [ 'ascii' => 1 ] ],
// Arrays and objects
- array( array( array() ), '[[]]' ),
- array( array( array( 'x' => 1 ) ), '[{"x":1}]' ),
- array( array( array( 2 => 1 ) ), '[{"2":1}]' ),
- array( array( (object)array() ), '[{}]' ),
- array( array( array( 1, ApiResult::META_TYPE => 'assoc' ) ), '[{"0":1}]' ),
- array( array( array( 'x' => 1, ApiResult::META_TYPE => 'array' ) ), '[[1]]' ),
- array( array( array( 'x' => 1, ApiResult::META_TYPE => 'kvp' ) ), '[{"x":1}]' ),
- array(
- array( array(
+ [ [ [] ], '[[]]' ],
+ [ [ [ 'x' => 1 ] ], '[{"x":1}]' ],
+ [ [ [ 2 => 1 ] ], '[{"2":1}]' ],
+ [ [ (object)[] ], '[{}]' ],
+ [ [ [ 1, ApiResult::META_TYPE => 'assoc' ] ], '[{"0":1}]' ],
+ [ [ [ 'x' => 1, ApiResult::META_TYPE => 'array' ] ], '[[1]]' ],
+ [ [ [ 'x' => 1, ApiResult::META_TYPE => 'kvp' ] ], '[{"x":1}]' ],
+ [
+ [ [
'x' => 1,
ApiResult::META_TYPE => 'BCkvp',
ApiResult::META_KVP_KEY_NAME => 'key'
- ) ),
+ ] ],
'[{"x":1}]'
- ),
- array( array( array( 'x' => 1, ApiResult::META_TYPE => 'BCarray' ) ), '[[1]]' ),
- array(
- array( array(
+ ],
+ [ [ [ 'x' => 1, ApiResult::META_TYPE => 'BCarray' ] ], '[[1]]' ],
+ [
+ [ [
'a',
'b',
ApiResult::META_TYPE => 'BCassoc'
- ) ),
+ ] ],
'[{"0":"a","1":"b"}]'
- ),
+ ],
// Content
- array( array( 'content' => 'foo', ApiResult::META_CONTENT => 'content' ),
- '{"content":"foo"}' ),
+ [ [ 'content' => 'foo', ApiResult::META_CONTENT => 'content' ],
+ '{"content":"foo"}' ],
// BC Subelements
- array( array( 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => array( 'foo' ) ),
- '{"foo":"foo"}' ),
+ [ [ 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => [ 'foo' ] ],
+ '{"foo":"foo"}' ],
// Callbacks
- array( array( 1 ), '/**/myCallback([1])', array( 'callback' => 'myCallback' ) ),
+ [ [ 1 ], '/**/myCallback([1])', [ 'callback' => 'myCallback' ] ],
// Cross-domain mangling
- array( array( '< Cross-Domain-Policy >' ), '["\u003C Cross-Domain-Policy \u003E"]' ),
- ) )
+ [ [ '< Cross-Domain-Policy >' ], '["\u003C Cross-Domain-Policy >"]' ],
+ ] )
+ // @todo Test rawfm
);
}