Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
4 / 4
CRAP
100.00% covered (success)
100.00%
1 / 1
UriParamSearchProfileOverride
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
4 / 4
4
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 getOverriddenName
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 priority
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 explain
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace CirrusSearch\Profile;
4
5use MediaWiki\Request\WebRequest;
6
7class UriParamSearchProfileOverride implements SearchProfileOverride {
8
9    /**
10     * @var WebRequest
11     */
12    private $request;
13
14    /**
15     * @var string
16     */
17    private $uriParam;
18
19    /**
20     * @var int
21     */
22    private $priority;
23
24    /**
25     * @param WebRequest $request
26     * @param string $uriParam
27     * @param int $priority
28     */
29    public function __construct( WebRequest $request, $uriParam, $priority = SearchProfileOverride::URI_PARAM_PRIO ) {
30        $this->request = $request;
31        $this->uriParam = $uriParam;
32        $this->priority = $priority;
33    }
34
35    /**
36     * Get the overridden name or null if it cannot be overridden.
37     * @param string[] $contextParams
38     * @return string|null
39     */
40    public function getOverriddenName( array $contextParams ) {
41        return $this->request->getVal( $this->uriParam );
42    }
43
44    /**
45     * The priority of this override, lower wins
46     * @return int
47     */
48    public function priority() {
49        return $this->priority;
50    }
51
52    /**
53     * @return array
54     */
55    public function explain(): array {
56        return [
57            'type' => 'uriParam',
58            'priority' => $this->priority(),
59            'uriParam' => $this->uriParam
60        ];
61    }
62}