Completed
Push — master ( f835ba...dee201 )
by mw
47:53 queued 08:25
created

InTextAnnotationSanitizerTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 81
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testStrip() 0 12 1
A stripTextWithAnnotationProvider() 0 61 1
1
<?php
2
3
namespace SMW\Tests;
4
5
use SMW\InTextAnnotationSanitizer;
6
7
/**
8
 * @covers \SMW\InTextAnnotationSanitizer
9
 * @group semantic-mediawiki
10
 *
11
 * @license GNU GPL v2+
12
 * @since 2.5
13
 *
14
 * @author mwjames
15
 */
16
class InTextAnnotationSanitizerTest extends \PHPUnit_Framework_TestCase {
17
18
	/**
19
	 * @dataProvider stripTextWithAnnotationProvider
20
	 */
21
	public function testStrip( $text, $expectedRemoval, $expectedObscuration ) {
22
23
		$this->assertEquals(
24
			$expectedRemoval,
25
			InTextAnnotationSanitizer::removeAnnotation( $text )
26
		);
27
28
		$this->assertEquals(
29
			$expectedObscuration,
30
			InTextAnnotationSanitizer::obscureAnnotation( $text )
31
		);
32
	}
33
34
	public function stripTextWithAnnotationProvider() {
35
36
		$provider = array();
37
38
		$provider[] = array(
39
			'Suspendisse [[Bar::tincidunt semper|abc]] facilisi',
40
			'Suspendisse abc facilisi',
41
			'Suspendisse &#x005B;&#x005B;Bar::tincidunt semper|abc]] facilisi'
42
		);
43
44
		$provider[] = array(
45
			'Suspendisse [[Bar::tincidunt semper]] facilisi',
46
			'Suspendisse tincidunt semper facilisi',
47
			'Suspendisse &#x005B;&#x005B;Bar::tincidunt semper]] facilisi'
48
		);
49
50
		$provider[] = array(
51
			'Suspendisse [[:Tincidunt semper|tincidunt semper]]',
52
			'Suspendisse [[:Tincidunt semper|tincidunt semper]]',
53
			'Suspendisse [[:Tincidunt semper|tincidunt semper]]'
54
		);
55
56
		$provider[] = array(
57
			'[[Foo::Foobar::テスト]] [[Bar:::ABC|DEF]] [[Foo:::0049 30 12345678/::Foo]]',
58
			'Foobar::テスト DEF :0049 30 12345678/::Foo',
59
			'&#x005B;&#x005B;Foo::Foobar::テスト]] &#x005B;&#x005B;Bar:::ABC|DEF]] &#x005B;&#x005B;Foo:::0049 30 12345678/::Foo]]'
60
		);
61
62
		$provider[] = array(
63
			'%5B%5BFoo%20Bar::foobaz%5D%5D',
64
			'foobaz',
65
			'&#x005B;&#x005B;Foo%20Bar::foobaz]]'
66
		);
67
68
		$provider[] = array(
69
			'Suspendisse tincidunt semper facilisi',
70
			'Suspendisse tincidunt semper facilisi',
71
			'Suspendisse tincidunt semper facilisi'
72
		);
73
74
		// #1747
75
		$provider[] = array(
76
			'[[Foo|Bar::Foobar]] [[File:Example.png|alt=Bar::Foobar|Caption]] [[File:Example.png|Bar::Foobar|link=Foo]]',
77
			'[[Foo|Bar::Foobar]] [[File:Example.png|alt=Bar::Foobar|Caption]] [[File:Example.png|Bar::Foobar|link=Foo]]',
78
			'&#x005B;&#x005B;Foo|Bar::Foobar]] &#x005B;&#x005B;File:Example.png|alt=Bar::Foobar|Caption]] &#x005B;&#x005B;File:Example.png|Bar::Foobar|link=Foo]]'
79
		);
80
81
		$provider[] = array(
82
			'[[Foo::@@@]] [[Bar::@@@|123]]',
83
			' 123',
84
			'&#x005B;&#x005B;Foo::@@@]] &#x005B;&#x005B;Bar::@@@|123]]'
85
		);
86
87
		$provider[] = array(
88
			'Suspendisse [[SMW::off]][[Bar::tincidunt semper|abc]] facilisi[[SMW::on]] [[Bar:::ABC|DEF]]',
89
			'Suspendisse abc facilisi DEF',
90
			'Suspendisse &#x005B;&#x005B;SMW::off]]&#x005B;&#x005B;Bar::tincidunt semper|abc]] facilisi&#x005B;&#x005B;SMW::on]] &#x005B;&#x005B;Bar:::ABC|DEF]]'
91
		);
92
93
		return $provider;
94
	}
95
96
}
97