Completed
Push — php70 ( 4ff9ba...992172 )
by Wim
02:29
created

testDeprecatedPregReplace()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 40
Code Lines 36

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 1
Metric Value
cc 1
eloc 36
c 3
b 0
f 1
nc 1
nop 0
dl 0
loc 40
rs 8.8571
1
<?php
2
/**
3
 * preg_replace() /e modifier sniff test file
4
 *
5
 * @package PHPCompatibility
6
 */
7
8
9
/**
10
 * preg_replace() /e modifier sniff tests
11
 *
12
 * @uses BaseSniffTest
13
 * @package PHPCompatibility
14
 * @author Jansen Price <[email protected]>
15
 */
16
class PregReplaceEModifierSniffTest extends BaseSniffTest
17
{
18
    /**
19
     * Sniffed file
20
     *
21
     * @var PHP_CodeSniffer_File
22
     */
23
    protected $_sniffFile;
24
25
    /**
26
     * setUp
27
     *
28
     * @return void
29
     */
30
    public function setUp()
31
    {
32
        parent::setUp();
33
    }
34
35
    /**
36
     * testNonDeprecatedPregReplace
37
     *
38
     * @return void
39
     */
40
    public function testNonDeprecatedPregReplace()
41
    {
42
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '5.4');
43
        $this->assertNoViolation($this->_sniffFile, 9);
44
        $this->assertNoViolation($this->_sniffFile, 10);
45
        $this->assertNoViolation($this->_sniffFile, 13);
46
        $this->assertNoViolation($this->_sniffFile, 14);
47
        $this->assertNoViolation($this->_sniffFile, 17);
48
        $this->assertNoViolation($this->_sniffFile, 18);
49
        $this->assertNoViolation($this->_sniffFile, 21);
50
        $this->assertNoViolation($this->_sniffFile, 24);
51
        $this->assertNoViolation($this->_sniffFile, 39);
52
        $this->assertNoViolation($this->_sniffFile, 45);
53
54
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '5.5');
55
        $this->assertNoViolation($this->_sniffFile, 9);
56
        $this->assertNoViolation($this->_sniffFile, 10);
57
        $this->assertNoViolation($this->_sniffFile, 13);
58
        $this->assertNoViolation($this->_sniffFile, 14);
59
        $this->assertNoViolation($this->_sniffFile, 17);
60
        $this->assertNoViolation($this->_sniffFile, 18);
61
        $this->assertNoViolation($this->_sniffFile, 21);
62
        $this->assertNoViolation($this->_sniffFile, 24);
63
        $this->assertNoViolation($this->_sniffFile, 39);
64
        $this->assertNoViolation($this->_sniffFile, 45);
65
    
66
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '7.0');
67
        $this->assertNoViolation($this->_sniffFile, 9);
68
        $this->assertNoViolation($this->_sniffFile, 10);
69
        $this->assertNoViolation($this->_sniffFile, 13);
70
        $this->assertNoViolation($this->_sniffFile, 14);
71
        $this->assertNoViolation($this->_sniffFile, 17);
72
        $this->assertNoViolation($this->_sniffFile, 18);
73
        $this->assertNoViolation($this->_sniffFile, 21);
74
        $this->assertNoViolation($this->_sniffFile, 24);
75
        $this->assertNoViolation($this->_sniffFile, 39);
76
        $this->assertNoViolation($this->_sniffFile, 45);
77
    }
78
79
    /**
80
     * testDeprecatedPregReplace
81
     *
82
     * @return void
83
     */
84
    public function testDeprecatedPregReplace()
85
    {
86
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '5.4');
87
        $this->assertNoViolation($this->_sniffFile, 50);
88
        $this->assertNoViolation($this->_sniffFile, 51);
89
        $this->assertNoViolation($this->_sniffFile, 54);
90
        $this->assertNoViolation($this->_sniffFile, 55);
91
        $this->assertNoViolation($this->_sniffFile, 58);
92
        $this->assertNoViolation($this->_sniffFile, 59);
93
        $this->assertNoViolation($this->_sniffFile, 60);
94
        $this->assertNoViolation($this->_sniffFile, 63);
95
        $this->assertNoViolation($this->_sniffFile, 78);
96
        $this->assertNoViolation($this->_sniffFile, 84);
97
        
98
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '5.5');
99
        $error = "preg_replace() - /e modifier is deprecated in PHP 5.5";
100
        $this->assertError($this->_sniffFile, 50, $error);
101
        $this->assertError($this->_sniffFile, 51, $error);
102
        $this->assertError($this->_sniffFile, 54, $error);
103
        $this->assertError($this->_sniffFile, 55, $error);
104
        $this->assertError($this->_sniffFile, 58, $error);
105
        $this->assertError($this->_sniffFile, 59, $error);
106
        $this->assertError($this->_sniffFile, 60, $error);
107
        $this->assertError($this->_sniffFile, 63, $error);
108
        $this->assertError($this->_sniffFile, 78, $error);
109
        $this->assertError($this->_sniffFile, 84, $error);
110
111
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '7.0');
112
        $error = "preg_replace() - /e modifier is forbidden in PHP 7.0";
113
        $this->assertError($this->_sniffFile, 50, $error);
114
        $this->assertError($this->_sniffFile, 51, $error);
115
        $this->assertError($this->_sniffFile, 54, $error);
116
        $this->assertError($this->_sniffFile, 55, $error);
117
        $this->assertError($this->_sniffFile, 58, $error);
118
        $this->assertError($this->_sniffFile, 59, $error);
119
        $this->assertError($this->_sniffFile, 60, $error);
120
        $this->assertError($this->_sniffFile, 63, $error);
121
        $this->assertError($this->_sniffFile, 78, $error);
122
        $this->assertError($this->_sniffFile, 84, $error);
123
    }
124
125
    /**
126
     * testUntestablePregReplace
127
     *
128
     * @return void
129
     */
130
    public function testUntestablePregReplace()
131
    {
132
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '5.4');
133
        $this->assertNoViolation($this->_sniffFile, 94);
134
        $this->assertNoViolation($this->_sniffFile, 95);
135
        $this->assertNoViolation($this->_sniffFile, 96);
136
        
137
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '5.5');
138
        $this->assertNoViolation($this->_sniffFile, 94);
139
        $this->assertNoViolation($this->_sniffFile, 95);
140
        $this->assertNoViolation($this->_sniffFile, 96);
141
        
142
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '7.0');
143
        $this->assertNoViolation($this->_sniffFile, 94);
144
        $this->assertNoViolation($this->_sniffFile, 95);
145
        $this->assertNoViolation($this->_sniffFile, 96);
146
    }
147
148
    /**
149
     * @throws Exception
150
     */
151
    public function testUsingBracketDelimitersPregReplace()
152
    {
153
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '5.4');
154
        $this->assertNoViolation($this->_sniffFile, 99);
155
        $this->assertNoViolation($this->_sniffFile, 100);
156
        $this->assertNoViolation($this->_sniffFile, 101);
157
        $this->assertNoViolation($this->_sniffFile, 102);
158
        $this->assertNoViolation($this->_sniffFile, 103);
159
        
160
        
161
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '5.5');
162
        $error = "preg_replace() - /e modifier is deprecated in PHP 5.5";
163
        $this->assertError($this->_sniffFile, 99, $error);
164
        $this->assertError($this->_sniffFile, 100, $error);
165
        $this->assertNoViolation($this->_sniffFile, 101);
166
        $this->assertNoViolation($this->_sniffFile, 102);
167
        $this->assertNoViolation($this->_sniffFile, 103);
168
        
169
        $this->_sniffFile = $this->sniffFile('sniff-examples/preg_replace_e_modifier.php', '7.0');
170
        $error = "preg_replace() - /e modifier is forbidden in PHP 7.0";
171
        $this->assertError($this->_sniffFile, 99, $error);
172
        $this->assertError($this->_sniffFile, 100, $error);
173
        $this->assertNoViolation($this->_sniffFile, 101);
174
        $this->assertNoViolation($this->_sniffFile, 102);
175
        $this->assertNoViolation($this->_sniffFile, 103);
176
    }
177
178
}
179