Completed
Push — master ( 9e1461...cdd4b1 )
by
unknown
13:17
created

testModifyLanguageLinkForNoTextEntry()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 25
rs 9.52
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace SIL\Tests;
4
5
use SIL\SiteLanguageLinkModifier;
6
use SIL\InterlanguageLink;
7
8
use SMW\DIWikiPage;
9
use SMWDIBlob as DIBlob;
10
11
use Title;
12
13
/**
14
 * @covers \SIL\SiteLanguageLinkModifier
15
 *
16
 * @group semantic-interlanguage-links
17
 *
18
 * @license GNU GPL v2+
19
 * @since 1.0
20
 *
21
 * @author mwjames
22
 */
23
class SiteLanguageLinkModifierTest extends \PHPUnit_Framework_TestCase {
24
25
	public function testCanConstruct() {
26
27
		$titleForExternalLanguageLink = $this->getMockBuilder( '\Title' )
28
			->disableOriginalConstructor()
29
			->getMock();
30
31
		$titleToTargetLink = $this->getMockBuilder( '\Title' )
32
			->disableOriginalConstructor()
33
			->getMock();
34
35
		$this->assertInstanceOf(
36
			'\SIL\SiteLanguageLinkModifier',
37
			new SiteLanguageLinkModifier( $titleForExternalLanguageLink, $titleToTargetLink )
38
		);
39
	}
40
41
	public function testModifyLanguageLinkForNoTextEntry() {
42
43
		$titleForExternalLanguageLink = $this->getMockBuilder( '\Title' )
44
			->disableOriginalConstructor()
45
			->getMock();
46
47
		$titleToTargetLink = $this->getMockBuilder( '\Title' )
48
			->disableOriginalConstructor()
49
			->getMock();
50
51
		$languageLink = array();
52
53
		$instance = new SiteLanguageLinkModifier(
54
			$titleForExternalLanguageLink,
55
			$titleToTargetLink
56
		);
57
58
		$this->assertFalse(
59
			$instance->modifyLanguageLink( $languageLink )
60
		);
61
62
		$this->assertEmpty(
63
			$languageLink
64
		);
65
	}
66
67
	/**
68
	 * @dataProvider invalidLanguageLinkProvider
69
	 */
70
	public function testModifyLanguageLinkForInvalidSilEntry( $languageLink, $expected ) {
71
72
		$titleForExternalLanguageLink = $this->getMockBuilder( '\Title' )
73
			->disableOriginalConstructor()
74
			->getMock();
75
76
		$titleToTargetLink = $this->getMockBuilder( '\Title' )
77
			->disableOriginalConstructor()
78
			->getMock();
79
80
		$instance = new SiteLanguageLinkModifier(
81
			$titleForExternalLanguageLink,
82
			$titleToTargetLink
83
		);
84
85
		$this->assertFalse(
86
			$instance->modifyLanguageLink( $languageLink )
87
		);
88
89
		$this->assertEquals(
90
			$expected,
91
			$languageLink
92
		);
93
	}
94
95
	/**
96
	 * @dataProvider validLanguageLinkProvider
97
	 */
98
	public function testModifyLanguageLinkForValidSilEntry( $languageLink, $expected ) {
99
100
		$titleForExternalLanguageLink = $this->getMockBuilder( '\Title' )
101
			->disableOriginalConstructor()
102
			->getMock();
103
104
		$titleToTargetLink = $this->getMockBuilder( '\Title' )
105
			->disableOriginalConstructor()
106
			->getMock();
107
108
		$instance = new SiteLanguageLinkModifier(
109
			$titleForExternalLanguageLink,
110
			$titleToTargetLink
111
		);
112
113
		$this->assertTrue(
114
			$instance->modifyLanguageLink( $languageLink )
115
		);
116
117
		$this->assertContains(
118
			$expected,
119
			$languageLink
120
		);
121
	}
122
123
	public function invalidLanguageLinkProvider() {
124
125
		$provider = array();
126
127
		$provider[] = array(
128
			array( 'text' => 'no:sil:entry' ),
129
			array( 'text' => 'no:sil:entry' )
130
		);
131
132
		$provider[] = array(
133
			array( 'text' => 'Foo' ),
134
			array( 'text' => 'Foo' )
135
		);
136
137
		return $provider;
138
	}
139
140
	public function validLanguageLinkProvider() {
141
142
		$provider = array();
143
144
		$provider[] = array(
145
			array( 'text' => 'sil:en:Foo' ),
146
			'English'
147
		);
148
149
		$provider[] = array(
150
			array( 'text' => 'sil:en:vi:Foo' ),
151
			'English'
152
		);
153
154
		$provider[] = array(
155
			array( 'text' => 'sil:ja:ja:ノート:Foo' ),
156
			'日本語'
157
		);
158
159
		return $provider;
160
	}
161
162
}
163