@@ -154,97 +154,94 @@ public function dataSuppressError()
154
154
/**
155
155
* Test suppressing 1 out of 2 errors.
156
156
*
157
+ * @param string $before Annotation to place before the code.
158
+ * @param string $between Annotation to place between the code.
159
+ * @param int $expectedErrors Optional. Number of errors expected.
160
+ * Defaults to 1.
161
+ *
162
+ * @dataProvider dataSuppressSomeErrors
163
+ * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createPositionMap
164
+ *
157
165
* @return void
158
166
*/
159
- public function testSuppressSomeErrors ()
167
+ public function testSuppressSomeErrors ($ before , $ between , $ expectedErrors = 1 )
160
168
{
161
- $ config = new Config ();
162
- $ config ->standards = ['Generic ' ];
163
- $ config ->sniffs = ['Generic.PHP.LowerCaseConstant ' ];
164
-
165
- $ ruleset = new Ruleset ($ config );
166
-
167
- // Process without suppression.
168
- $ content = '<?php ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = TRUE; ' ;
169
- $ file = new DummyFile ($ content , $ ruleset , $ config );
170
- $ file ->process ();
171
-
172
- $ errors = $ file ->getErrors ();
173
- $ numErrors = $ file ->getErrorCount ();
174
- $ this ->assertEquals (2 , $ numErrors );
175
- $ this ->assertCount (2 , $ errors );
176
-
177
- // Process with suppression.
178
- $ content = '<?php ' .PHP_EOL .'// phpcs:disable ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'// phpcs:enable ' .PHP_EOL .'$var = TRUE; ' ;
179
- $ file = new DummyFile ($ content , $ ruleset , $ config );
180
- $ file ->process ();
181
-
182
- $ errors = $ file ->getErrors ();
183
- $ numErrors = $ file ->getErrorCount ();
184
- $ this ->assertEquals (1 , $ numErrors );
185
- $ this ->assertCount (1 , $ errors );
186
-
187
- // Process with @ suppression.
188
- $ content = '<?php ' .PHP_EOL .'// @phpcs:disable ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'// @phpcs:enable ' .PHP_EOL .'$var = TRUE; ' ;
189
- $ file = new DummyFile ($ content , $ ruleset , $ config );
190
- $ file ->process ();
191
-
192
- $ errors = $ file ->getErrors ();
193
- $ numErrors = $ file ->getErrorCount ();
194
- $ this ->assertEquals (1 , $ numErrors );
195
- $ this ->assertCount (1 , $ errors );
169
+ static $ config , $ ruleset ;
196
170
197
- // Process with suppression (hash comment).
198
- $ content = ' <?php ' . PHP_EOL . ' # phpcs:disable ' . PHP_EOL . ' $var = FALSE; ' . PHP_EOL . ' # phpcs:enable ' . PHP_EOL . ' $var = TRUE; ' ;
199
- $ file = new DummyFile ( $ content , $ ruleset , $ config ) ;
200
- $ file -> process () ;
171
+ if ( isset ( $ config , $ ruleset ) === false ) {
172
+ $ config = new Config () ;
173
+ $ config -> standards = [ ' Generic ' ] ;
174
+ $ config -> sniffs = [ ' Generic.PHP.LowerCaseConstant ' ] ;
201
175
202
- $ errors = $ file ->getErrors ();
203
- $ numErrors = $ file ->getErrorCount ();
204
- $ this ->assertEquals (1 , $ numErrors );
205
- $ this ->assertCount (1 , $ errors );
176
+ $ ruleset = new Ruleset ($ config );
177
+ }
206
178
207
- // Process with @ suppression (hash comment).
208
- $ content = '<?php ' .PHP_EOL .'# @phpcs:disable ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'# @phpcs:enable ' .PHP_EOL .'$var = TRUE; ' ;
179
+ $ content = <<<EOD
180
+ <?php
181
+ $ before
182
+ \$var = FALSE;
183
+ $ between
184
+ \$var = TRUE;
185
+ EOD ;
209
186
$ file = new DummyFile ($ content , $ ruleset , $ config );
210
187
$ file ->process ();
211
188
212
- $ errors = $ file ->getErrors ();
213
- $ numErrors = $ file ->getErrorCount ();
214
- $ this ->assertEquals (1 , $ numErrors );
215
- $ this ->assertCount (1 , $ errors );
216
-
217
- // Process with suppression (deprecated syntax).
218
- $ content = '<?php ' .PHP_EOL .'// @codingStandardsIgnoreStart ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'// @codingStandardsIgnoreEnd ' .PHP_EOL .'$var = TRUE; ' ;
219
- $ file = new DummyFile ($ content , $ ruleset , $ config );
220
- $ file ->process ();
189
+ $ this ->assertSame ($ expectedErrors , $ file ->getErrorCount ());
190
+ $ this ->assertCount ($ expectedErrors , $ file ->getErrors ());
221
191
222
- $ errors = $ file ->getErrors ();
223
- $ numErrors = $ file ->getErrorCount ();
224
- $ this ->assertEquals (1 , $ numErrors );
225
- $ this ->assertCount (1 , $ errors );
192
+ }//end testSuppressSomeErrors()
226
193
227
- // Process with a PHPDoc block suppression.
228
- $ content = '<?php ' .PHP_EOL .'/** phpcs:disable */ ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'/** phpcs:enable */ ' .PHP_EOL .'$var = TRUE; ' ;
229
- $ file = new DummyFile ($ content , $ ruleset , $ config );
230
- $ file ->process ();
231
194
232
- $ errors = $ file ->getErrors ();
233
- $ numErrors = $ file ->getErrorCount ();
234
- $ this ->assertEquals (1 , $ numErrors );
235
- $ this ->assertCount (1 , $ errors );
195
+ /**
196
+ * Data provider.
197
+ *
198
+ * @see testSuppressSomeErrors()
199
+ *
200
+ * @return array
201
+ */
202
+ public function dataSuppressSomeErrors ()
203
+ {
204
+ return [
205
+ 'no suppression ' => [
206
+ 'before ' => '' ,
207
+ 'between ' => '' ,
208
+ 'expectedErrors ' => 2 ,
209
+ ],
236
210
237
- // Process with a PHPDoc block suppression (deprecated syntax).
238
- $ content = '<?php ' .PHP_EOL .'/** @codingStandardsIgnoreStart */ ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'/** @codingStandardsIgnoreEnd */ ' .PHP_EOL .'$var = TRUE; ' ;
239
- $ file = new DummyFile ($ content , $ ruleset , $ config );
240
- $ file ->process ();
211
+ // With suppression.
212
+ 'disable/enable: slash comment ' => [
213
+ 'before ' => '// phpcs:disable ' ,
214
+ 'between ' => '// phpcs:enable ' ,
215
+ ],
216
+ 'disable/enable: slash comment, with @ ' => [
217
+ 'before ' => '// @phpcs:disable ' ,
218
+ 'between ' => '// @phpcs:enable ' ,
219
+ ],
220
+ 'disable/enable: hash comment ' => [
221
+ 'before ' => '# phpcs:disable ' ,
222
+ 'between ' => '# phpcs:enable ' ,
223
+ ],
224
+ 'disable/enable: hash comment, with @ ' => [
225
+ 'before ' => '# @phpcs:disable ' ,
226
+ 'between ' => '# @phpcs:enable ' ,
227
+ ],
228
+ 'disable/enable: single line docblock comment ' => [
229
+ 'before ' => '/** phpcs:disable */ ' ,
230
+ 'between ' => '/** phpcs:enable */ ' ,
231
+ ],
241
232
242
- $ errors = $ file ->getErrors ();
243
- $ numErrors = $ file ->getErrorCount ();
244
- $ this ->assertEquals (1 , $ numErrors );
245
- $ this ->assertCount (1 , $ errors );
233
+ // Deprecated syntax.
234
+ 'old style: slash comment ' => [
235
+ 'before ' => '// @codingStandardsIgnoreStart ' ,
236
+ 'between ' => '// @codingStandardsIgnoreEnd ' ,
237
+ ],
238
+ 'old style: single line docblock comment ' => [
239
+ 'before ' => '/** @codingStandardsIgnoreStart */ ' ,
240
+ 'between ' => '/** @codingStandardsIgnoreEnd */ ' ,
241
+ ],
242
+ ];
246
243
247
- }//end testSuppressSomeErrors ()
244
+ }//end dataSuppressSomeErrors ()
248
245
249
246
250
247
/**
0 commit comments