Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 29
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
MentorChangeLogFormatter
0.00% covered (danger)
0.00%
0 / 29
0.00% covered (danger)
0.00%
0 / 3
110
0.00% covered (danger)
0.00%
0 / 1
 extractParameters
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
30
 getMessageParameters
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 getPreloadTitles
0.00% covered (danger)
0.00%
0 / 12
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3namespace GrowthExperiments\Mentorship;
4
5use LogFormatter;
6use MediaWiki\Title\Title;
7
8class MentorChangeLogFormatter extends LogFormatter {
9
10    /**
11     * @inheritDoc
12     */
13    protected function extractParameters() {
14        $params = parent::extractParameters();
15        switch ( $this->entry->getSubtype() ) {
16            case 'claimmentee':
17                // logentry-growthexperiments-claimmentee
18                // @phan-suppress-next-line SecurityCheck-XSS
19                $params[4] = $this->formatParameterValue( 'user-link', $params[3] );
20                // no break here
21            case 'claimmentee-no-previous-mentor':
22                // logentry-growthexperiments-claimmentee-no-previous-mentor
23                $params[5] = $this->formatParameterValue( 'user', $this->entry->getTarget()->getText() );
24                break;
25            case 'setmentor':
26                // logentry-growthexperiments-setmentor
27                // @phan-suppress-next-line SecurityCheck-XSS
28                $params[7] = $this->formatParameterValue( 'user-link', $params[3] );
29                // no break here
30            case 'setmentor-no-previous-mentor':
31                // logentry-growthexperiments-setmentor-no-previous-mentor
32                $params[5] = $this->formatParameterValue( 'user', $this->entry->getTarget()->getText() );
33                // @phan-suppress-next-line SecurityCheck-XSS
34                $params[6] = $this->formatParameterValue( 'user-link', $params[4] );
35                break;
36        }
37        return $params;
38    }
39
40    /**
41     * @inheritDoc
42     */
43    protected function getMessageParameters() {
44        $params = parent::getMessageParameters();
45        // remove "User:" prefix
46        $params[2] = $this->formatParameterValue( 'user-link', $this->entry->getTarget()->getText() );
47        return $params;
48    }
49
50    /**
51     * @inheritDoc
52     */
53    public function getPreloadTitles() {
54        // Add the mentee's and mentors' user pages to LinkBatch
55        $params = parent::getMessageParameters();
56        $links = [];
57        switch ( $this->entry->getSubtype() ) {
58            case 'claimmentee':
59                $links[] = Title::makeTitle( NS_USER, $params[3] );
60                break;
61            case 'setmentor':
62                $links[] = Title::makeTitle( NS_USER, $params[3] );
63                // no break here
64            case 'setmentor-no-previous-mentor':
65                $links[] = Title::makeTitle( NS_USER, $params[4] );
66                break;
67        }
68        return $links;
69    }
70
71}