doEditContent( new WikitextContent( '' ), 'Summary' ); // phpcs:enable $page = WikiPage::factory( Title::newFromText( 'MediaWiki:ApiFormatXmlTest' ) ); $page->doEditContent( new WikitextContent( 'Bogus' ), 'Summary' ); $page = WikiPage::factory( Title::newFromText( 'ApiFormatXmlTest' ) ); $page->doEditContent( new WikitextContent( 'Bogus' ), 'Summary' ); } public static function provideGeneralEncoding() { // phpcs:disable Generic.Files.LineLength 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 } }