6 class ApiMessageTest
extends MediaWikiTestCase
{
8 private function compareMessages( $msg, $msg2 ) {
9 $this->assertSame( $msg->getKey(), $msg2->getKey(), 'getKey' );
10 $this->assertSame( $msg->getKeysToTry(), $msg2->getKeysToTry(), 'getKeysToTry' );
11 $this->assertSame( $msg->getParams(), $msg2->getParams(), 'getParams' );
12 $this->assertSame( $msg->getFormat(), $msg2->getFormat(), 'getFormat' );
13 $this->assertSame( $msg->getLanguage(), $msg2->getLanguage(), 'getLanguage' );
15 $msg = TestingAccessWrapper
::newFromObject( $msg );
16 $msg2 = TestingAccessWrapper
::newFromObject( $msg2 );
17 foreach ( array( 'interface', 'useDatabase', 'title' ) as $key ) {
18 $this->assertSame( $msg->$key, $msg2->$key, $key );
25 public function testApiMessage() {
26 $msg = new Message( array( 'foo', 'bar' ), array( 'baz' ) );
27 $msg->inLanguage( 'de' )->title( Title
::newMainPage() );
28 $msg2 = new ApiMessage( $msg, 'code', array( 'data' ) );
29 $this->compareMessages( $msg, $msg2 );
30 $this->assertEquals( 'code', $msg2->getApiCode() );
31 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
33 $msg = new Message( array( 'foo', 'bar' ), array( 'baz' ) );
34 $msg2 = new ApiMessage( array( array( 'foo', 'bar' ), 'baz' ), 'code', array( 'data' ) );
35 $this->compareMessages( $msg, $msg2 );
36 $this->assertEquals( 'code', $msg2->getApiCode() );
37 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
39 $msg = new Message( 'foo' );
40 $msg2 = new ApiMessage( 'foo' );
41 $this->compareMessages( $msg, $msg2 );
42 $this->assertEquals( 'foo', $msg2->getApiCode() );
43 $this->assertEquals( array(), $msg2->getApiData() );
45 $msg2->setApiCode( 'code', array( 'data' ) );
46 $this->assertEquals( 'code', $msg2->getApiCode() );
47 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
48 $msg2->setApiCode( null );
49 $this->assertEquals( 'foo', $msg2->getApiCode() );
50 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
51 $msg2->setApiData( array( 'data2' ) );
52 $this->assertEquals( array( 'data2' ), $msg2->getApiData() );
56 * @covers ApiRawMessage
58 public function testApiRawMessage() {
59 $msg = new RawMessage( 'foo', array( 'baz' ) );
60 $msg->inLanguage( 'de' )->title( Title
::newMainPage() );
61 $msg2 = new ApiRawMessage( $msg, 'code', array( 'data' ) );
62 $this->compareMessages( $msg, $msg2 );
63 $this->assertEquals( 'code', $msg2->getApiCode() );
64 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
66 $msg = new RawMessage( 'foo', array( 'baz' ) );
67 $msg2 = new ApiRawMessage( array( 'foo', 'baz' ), 'code', array( 'data' ) );
68 $this->compareMessages( $msg, $msg2 );
69 $this->assertEquals( 'code', $msg2->getApiCode() );
70 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
72 $msg = new RawMessage( 'foo' );
73 $msg2 = new ApiRawMessage( 'foo', 'code', array( 'data' ) );
74 $this->compareMessages( $msg, $msg2 );
75 $this->assertEquals( 'code', $msg2->getApiCode() );
76 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
78 $msg2->setApiCode( 'code', array( 'data' ) );
79 $this->assertEquals( 'code', $msg2->getApiCode() );
80 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
81 $msg2->setApiCode( null );
82 $this->assertEquals( 'foo', $msg2->getApiCode() );
83 $this->assertEquals( array( 'data' ), $msg2->getApiData() );
84 $msg2->setApiData( array( 'data2' ) );
85 $this->assertEquals( array( 'data2' ), $msg2->getApiData() );
89 * @covers ApiMessage::create
91 public function testApiMessageCreate() {
92 $this->assertInstanceOf( 'ApiMessage', ApiMessage
::create( new Message( 'mainpage' ) ) );
93 $this->assertInstanceOf( 'ApiRawMessage', ApiMessage
::create( new RawMessage( 'mainpage' ) ) );
94 $this->assertInstanceOf( 'ApiMessage', ApiMessage
::create( 'mainpage' ) );
96 $msg = new ApiMessage( 'mainpage' );
97 $this->assertSame( $msg, ApiMessage
::create( $msg ) );
99 $msg = new ApiRawMessage( 'mainpage' );
100 $this->assertSame( $msg, ApiMessage
::create( $msg ) );