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

ReferrerGeneralizerTest::urlProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 13
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 11
nc 1
nop 0
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