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