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