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' ) ),
);
}
}