Don't check namespace in SpecialWantedtemplates
[lhc/web/wiklou.git] / tests / phpunit / includes / api / ApiMessageTest.php
1 <?php
2
3 /**
4 * @group API
5 */
6 class ApiMessageTest extends MediaWikiTestCase {
7
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' );
14
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 );
19 }
20 }
21
22 /**
23 * @covers ApiMessage
24 */
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() );
32
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() );
38
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() );
44
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() );
53 }
54
55 /**
56 * @covers ApiRawMessage
57 */
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() );
65
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() );
71
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() );
77
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() );
86 }
87
88 /**
89 * @covers ApiMessage::create
90 */
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' ) );
95
96 $msg = new ApiMessage( 'mainpage' );
97 $this->assertSame( $msg, ApiMessage::create( $msg ) );
98
99 $msg = new ApiRawMessage( 'mainpage' );
100 $this->assertSame( $msg, ApiMessage::create( $msg ) );
101 }
102
103 }