Merge "Chinese Conversion Table Update 2017-6"
[lhc/web/wiklou.git] / tests / phpunit / includes / api / ApiOpenSearchTest.php
1 <?php
2
3 /**
4 * @covers ApiOpenSearch
5 */
6 class ApiOpenSearchTest extends MediaWikiTestCase {
7 public function testGetAllowedParams() {
8 $config = $this->replaceSearchEngineConfig();
9 $config->expects( $this->any() )
10 ->method( 'getSearchTypes' )
11 ->will( $this->returnValue( [ 'the one ring' ] ) );
12
13 $api = $this->createApi();
14 $engine = $this->replaceSearchEngine();
15 $engine->expects( $this->any() )
16 ->method( 'getProfiles' )
17 ->will( $this->returnValueMap( [
18 [ SearchEngine::COMPLETION_PROFILE_TYPE, $api->getUser(), [
19 [
20 'name' => 'normal',
21 'desc-message' => 'normal-message',
22 'default' => true,
23 ],
24 [
25 'name' => 'strict',
26 'desc-message' => 'strict-message',
27 ],
28 ] ],
29 ] ) );
30
31 $params = $api->getAllowedParams();
32
33 $this->assertArrayNotHasKey( 'offset', $params );
34 $this->assertArrayHasKey( 'profile', $params, print_r( $params, true ) );
35 $this->assertEquals( 'normal', $params['profile'][ApiBase::PARAM_DFLT] );
36 }
37
38 private function replaceSearchEngineConfig() {
39 $config = $this->getMockBuilder( 'SearchEngineConfig' )
40 ->disableOriginalConstructor()
41 ->getMock();
42 $this->setService( 'SearchEngineConfig', $config );
43
44 return $config;
45 }
46
47 private function replaceSearchEngine() {
48 $engine = $this->getMockBuilder( 'SearchEngine' )
49 ->disableOriginalConstructor()
50 ->getMock();
51 $engineFactory = $this->getMockBuilder( 'SearchEngineFactory' )
52 ->disableOriginalConstructor()
53 ->getMock();
54 $engineFactory->expects( $this->any() )
55 ->method( 'create' )
56 ->will( $this->returnValue( $engine ) );
57 $this->setService( 'SearchEngineFactory', $engineFactory );
58
59 return $engine;
60 }
61
62 private function createApi() {
63 $ctx = new RequestContext();
64 $apiMain = new ApiMain( $ctx );
65 return new ApiOpenSearch( $apiMain, 'opensearch', '' );
66 }
67 }