Completed
Push — master ( 00092a...39103d )
by wiese
86:17 queued 21:06
created

ReferrerGeneralizerTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 2
dl 0
loc 37
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testGeneralization() 0 4 1
A urlProvider() 0 13 1
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\Fundraising\Frontend\DonationContext\Tests\Unit\UseCases\AddDonation;
6
7
use WMDE\Fundraising\Frontend\DonationContext\UseCases\AddDonation\ReferrerGeneralizer;
8
use WMDE\Fundraising\Frontend\Tests\Unit\Validation\ValidatorTestCase;
9
10
/**
11
 * @covers \WMDE\Fundraising\Frontend\DonationContext\UseCases\AddDonation\ReferrerGeneralizer
12
 *
13
 * @licence GNU GPL v2+
14
 * @author Kai Nissen < [email protected] >
15
 */
16
class ReferrerGeneralizerTest extends ValidatorTestCase {
17
18
	private $domainMap = [
19
		'wikimedia.de' => 'wikimedia.de',
20
		'www.wikimedia.de' => 'wikimedia.de',
21
		'wikipedia.de' => 'wikipedia.de',
22
		'www.wikipedia.de' => 'wikipedia.de',
23
		'de.wikipedia.org' => 'de.wikipedia.org',
24
		'en.wikipedia.org' => 'en.wikipedia.org',
25
		'ru.wikivoyage.org' => 'ru.wikivoyage.org',
26
	];
27
28
	/**
29
	 * @dataProvider urlProvider
30
	 * @param string $expected
31
	 * @param string $url
32
	 */
33
	public function testGeneralization( string $url, string $expected ): void {
34
		$generalizer = new ReferrerGeneralizer( 'web', $this->domainMap );
35
		$this->assertSame( $expected, $generalizer->generalize( $url ) );
36
	}
37
38
	public function urlProvider(): array {
39
		return [
40
			[ 'http://de.wikipedia.org/wiki/Hauptseite', 'de.wikipedia.org' ],
41
			[ 'https://en.wikipedia.org/wiki/Main_Page', 'en.wikipedia.org' ],
42
			[ 'http://www.wikimedia.de/Mitarbeiter', 'wikimedia.de' ],
43
			[ 'https://wikimedia.de/wiki/Hauptseite', 'wikimedia.de' ],
44
			[ 'https://www.wikipedia.de/', 'wikipedia.de' ],
45
			[ 'http://www.wikipedia.de', 'wikipedia.de' ],
46
			[ 'wikipedia.de', 'web' ],
47
			[ 'https://www.google.com/?q=wikimedia+spenden', 'web' ],
48
			[ 'https://ru.wikivoyage.org/wiki/Молдавия', 'ru.wikivoyage.org' ],
49
		];
50
	}
51
52
}
53