getAuthority();
$this->editPage(
Title::makeTitle( NS_MEDIAWIKI, 'ApiFormatXmlTest.xsl' ),
'',
'Summary',
NS_MAIN,
$performer
);
$this->editPage(
Title::makeTitle( NS_MEDIAWIKI, 'ApiFormatXmlTest' ),
'Bogus',
'Summary',
NS_MAIN,
$performer
);
$this->editPage(
Title::makeTitle( NS_MAIN, 'ApiFormatXmlTest' ),
'Bogus',
'Summary',
NS_MAIN,
$performer
);
}
public static function provideGeneralEncoding() {
return [
// Basic types
[ [ null, 'a' => null ], '<_v _idx="0" />' ],
[ [ true, 'a' => true ], '<_v _idx="0">true' ],
[ [ false, 'a' => false ], '<_v _idx="0">false' ],
[ [ true, 'a' => true, ApiResult::META_BC_BOOLS => [ 0, 'a' ] ],
'<_v _idx="0">1' ],
[ [ false, 'a' => false, ApiResult::META_BC_BOOLS => [ 0, 'a' ] ],
'<_v _idx="0">' ],
[ [ 42, 'a' => 42 ], '<_v _idx="0">42' ],
[ [ 42.5, 'a' => 42.5 ], '<_v _idx="0">42.5' ],
[ [ 1e42, 'a' => 1e42 ], '<_v _idx="0">1.0E+42' ],
[ [ 'foo', 'a' => 'foo' ], '<_v _idx="0">foo' ],
[ [ 'fóo', 'a' => 'fóo' ], '<_v _idx="0">fóo' ],
// Arrays and objects
[ [ [] ], '<_v />' ],
[ [ [ 'x' => 1 ] ], '<_v x="1" />' ],
[ [ [ 2 => 1 ] ], '<_v><_v _idx="2">1' ],
[ [ (object)[] ], '<_v />' ],
[ [ [ 1, ApiResult::META_TYPE => 'assoc' ] ], '<_v><_v _idx="0">1' ],
[ [ [ 'x' => 1, ApiResult::META_TYPE => 'array' ] ], '<_v><_v>1' ],
[ [ [ 'x' => 1, 'y' => [ 'z' => 1 ], ApiResult::META_TYPE => 'kvp' ] ],
'<_v><_v _name="x" xml:space="preserve">1<_v _name="y">1' ],
[ [ [ 'x' => 1, ApiResult::META_TYPE => 'kvp', ApiResult::META_INDEXED_TAG_NAME => 'i', ApiResult::META_KVP_KEY_NAME => 'key' ] ],
'<_v>1' ],
[ [ [ 'x' => 1, ApiResult::META_TYPE => 'BCkvp', ApiResult::META_KVP_KEY_NAME => 'key' ] ],
'<_v><_v key="x" xml:space="preserve">1' ],
[ [ [ 'x' => 1, ApiResult::META_TYPE => 'BCarray' ] ], '<_v x="1" />' ],
[ [ [ 'a', 'b', ApiResult::META_TYPE => 'BCassoc' ] ], '<_v><_v _idx="0">a<_v _idx="1">b' ],
// Content
[ [ 'content' => 'foo', ApiResult::META_CONTENT => 'content' ],
'foo' ],
// Specified element name
[ [ 'foo', 'bar', ApiResult::META_INDEXED_TAG_NAME => 'itn' ],
'foobar' ],
// Subelements
[ [ 'a' => 1, 's' => 1, '_subelements' => [ 's' ] ],
'1' ],
// Content and subelement
[ [ 'a' => 1, 'content' => 'foo', ApiResult::META_CONTENT => 'content' ],
'foo' ],
[ [ 's' => [], 'content' => 'foo', ApiResult::META_CONTENT => 'content' ],
'foo' ],
[
[
's' => 1,
'content' => 'foo',
ApiResult::META_CONTENT => 'content',
ApiResult::META_SUBELEMENTS => [ 's' ]
],
'1foo'
],
// BC Subelements
[ [ 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => [ 'foo' ] ],
'foo' ],
// Name mangling
[ [ 'foo.bar' => 1 ], '' ],
[ [ '' => 1 ], '' ],
[ [ 'foo bar' => 1 ], '' ],
[ [ 'foo:bar' => 1 ], '' ],
[ [ 'foo%.bar' => 1 ], '' ],
[ [ '4foo' => 1, 'foo4' => 1 ], '' ],
[ [ "foo\xe3\x80\x80bar" => 1 ], '' ],
[ [ 'foo:bar' => 1, ApiResult::META_PRESERVE_KEYS => [ 'foo:bar' ] ],
'' ],
[ [ 'a', 'b', ApiResult::META_INDEXED_TAG_NAME => 'foo bar' ],
'<_foo.20.bar>a<_foo.20.bar>b' ],
// includenamespace param
[ [ 'x' => 'foo' ], '',
[ 'includexmlnamespace' => 1 ] ],
// xslt param
[ [], 'Invalid or non-existent stylesheet specified.',
[ 'xslt' => 'DoesNotExist' ] ],
[ [], 'Stylesheet should be in the MediaWiki namespace.',
[ 'xslt' => 'ApiFormatXmlTest' ] ],
[ [], 'Stylesheet should have ".xsl" extension.',
[ 'xslt' => 'MediaWiki:ApiFormatXmlTest' ] ],
[ [],
'getLocalURL( 'action=raw' ) ) .
'" type="text/xsl" ?>',
[ 'xslt' => 'MediaWiki:ApiFormatXmlTest.xsl' ] ],
];
// phpcs:enable
}
}