@@ -331,150 +331,95 @@ public function dataSuppressWarning()
331
331
/**
332
332
* Test suppressing a single error using a single line ignore.
333
333
*
334
+ * @param string $before Annotation to place before the code.
335
+ * @param string $after Optional. Annotation to place after the code.
336
+ * Defaults to an empty string.
337
+ * @param int $expectedErrors Optional. Number of errors expected.
338
+ * Defaults to 1.
339
+ *
340
+ * @dataProvider dataSuppressLine
341
+ * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createPositionMap
342
+ *
334
343
* @return void
335
344
*/
336
- public function testSuppressLine ()
345
+ public function testSuppressLine ($ before , $ after = '' , $ expectedErrors = 1 )
337
346
{
338
- $ config = new Config ();
339
- $ config ->standards = ['Generic ' ];
340
- $ config ->sniffs = [
341
- 'Generic.PHP.LowerCaseConstant ' ,
342
- 'Generic.Files.LineLength ' ,
343
- ];
344
-
345
- $ ruleset = new Ruleset ($ config );
346
-
347
- // Process without suppression.
348
- $ content = '<?php ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = FALSE; ' ;
349
- $ file = new DummyFile ($ content , $ ruleset , $ config );
350
- $ file ->process ();
351
-
352
- $ errors = $ file ->getErrors ();
353
- $ numErrors = $ file ->getErrorCount ();
354
- $ this ->assertEquals (2 , $ numErrors );
355
- $ this ->assertCount (2 , $ errors );
356
-
357
- // Process with suppression on line before.
358
- $ content = '<?php ' .PHP_EOL .'// phpcs:ignore ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = FALSE; ' ;
359
- $ file = new DummyFile ($ content , $ ruleset , $ config );
360
- $ file ->process ();
361
-
362
- $ errors = $ file ->getErrors ();
363
- $ numErrors = $ file ->getErrorCount ();
364
- $ this ->assertEquals (1 , $ numErrors );
365
- $ this ->assertCount (1 , $ errors );
366
-
367
- // Process with @ suppression on line before.
368
- $ content = '<?php ' .PHP_EOL .'// @phpcs:ignore ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = FALSE; ' ;
369
- $ file = new DummyFile ($ content , $ ruleset , $ config );
370
- $ file ->process ();
371
-
372
- $ errors = $ file ->getErrors ();
373
- $ numErrors = $ file ->getErrorCount ();
374
- $ this ->assertEquals (1 , $ numErrors );
375
- $ this ->assertCount (1 , $ errors );
376
-
377
- // Process with suppression on line before (hash comment).
378
- $ content = '<?php ' .PHP_EOL .'# phpcs:ignore ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = FALSE; ' ;
379
- $ file = new DummyFile ($ content , $ ruleset , $ config );
380
- $ file ->process ();
381
-
382
- $ errors = $ file ->getErrors ();
383
- $ numErrors = $ file ->getErrorCount ();
384
- $ this ->assertEquals (1 , $ numErrors );
385
- $ this ->assertCount (1 , $ errors );
386
-
387
- // Process with @ suppression on line before (hash comment).
388
- $ content = '<?php ' .PHP_EOL .'# @phpcs:ignore ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = FALSE; ' ;
389
- $ file = new DummyFile ($ content , $ ruleset , $ config );
390
- $ file ->process ();
391
-
392
- $ errors = $ file ->getErrors ();
393
- $ numErrors = $ file ->getErrorCount ();
394
- $ this ->assertEquals (1 , $ numErrors );
395
- $ this ->assertCount (1 , $ errors );
396
-
397
- // Process with suppression on line before.
398
- $ content = '<?php ' .PHP_EOL .'/* phpcs:ignore */ ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = FALSE; ' ;
399
- $ file = new DummyFile ($ content , $ ruleset , $ config );
400
- $ file ->process ();
401
-
402
- $ errors = $ file ->getErrors ();
403
- $ numErrors = $ file ->getErrorCount ();
404
- $ this ->assertEquals (1 , $ numErrors );
405
- $ this ->assertCount (1 , $ errors );
406
-
407
- // Process with @ suppression on line before.
408
- $ content = '<?php ' .PHP_EOL .'/* @phpcs:ignore */ ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = FALSE; ' ;
409
- $ file = new DummyFile ($ content , $ ruleset , $ config );
410
- $ file ->process ();
411
-
412
- $ errors = $ file ->getErrors ();
413
- $ numErrors = $ file ->getErrorCount ();
414
- $ this ->assertEquals (1 , $ numErrors );
415
- $ this ->assertCount (1 , $ errors );
416
-
417
- // Process with suppression on line before (deprecated syntax).
418
- $ content = '<?php ' .PHP_EOL .'// @codingStandardsIgnoreLine ' .PHP_EOL .'$var = FALSE; ' .PHP_EOL .'$var = FALSE; ' ;
419
- $ file = new DummyFile ($ content , $ ruleset , $ config );
420
- $ file ->process ();
421
-
422
- $ errors = $ file ->getErrors ();
423
- $ numErrors = $ file ->getErrorCount ();
424
- $ this ->assertEquals (1 , $ numErrors );
425
- $ this ->assertCount (1 , $ errors );
347
+ static $ config , $ ruleset ;
426
348
427
- // Process with suppression on same line.
428
- $ content = ' <?php ' . PHP_EOL . ' $var = FALSE; // phpcs:ignore ' . PHP_EOL . ' $var = FALSE; ' ;
429
- $ file = new DummyFile ( $ content , $ ruleset , $ config ) ;
430
- $ file -> process () ;
349
+ if ( isset ( $ config , $ ruleset ) === false ) {
350
+ $ config = new Config () ;
351
+ $ config -> standards = [ ' Generic ' ] ;
352
+ $ config -> sniffs = [ ' Generic.PHP.LowerCaseConstant ' ] ;
431
353
432
- $ errors = $ file ->getErrors ();
433
- $ numErrors = $ file ->getErrorCount ();
434
- $ this ->assertEquals (1 , $ numErrors );
435
- $ this ->assertCount (1 , $ errors );
354
+ $ ruleset = new Ruleset ($ config );
355
+ }
436
356
437
- // Process with @ suppression on same line.
438
- $ content = '<?php ' .PHP_EOL .'$var = FALSE; // @phpcs:ignore ' .PHP_EOL .'$var = FALSE; ' ;
357
+ $ content = <<<EOD
358
+ <?php
359
+ $ before
360
+ \$var = FALSE; $ after
361
+ \$var = FALSE;
362
+ EOD ;
439
363
$ file = new DummyFile ($ content , $ ruleset , $ config );
440
364
$ file ->process ();
441
365
442
- $ errors = $ file ->getErrors ();
443
- $ numErrors = $ file ->getErrorCount ();
444
- $ this ->assertEquals (1 , $ numErrors );
445
- $ this ->assertCount (1 , $ errors );
446
-
447
- // Process with suppression on same line (hash comment).
448
- $ content = '<?php ' .PHP_EOL .'$var = FALSE; # phpcs:ignore ' .PHP_EOL .'$var = FALSE; ' ;
449
- $ file = new DummyFile ($ content , $ ruleset , $ config );
450
- $ file ->process ();
366
+ $ this ->assertSame ($ expectedErrors , $ file ->getErrorCount ());
367
+ $ this ->assertCount ($ expectedErrors , $ file ->getErrors ());
451
368
452
- $ errors = $ file ->getErrors ();
453
- $ numErrors = $ file ->getErrorCount ();
454
- $ this ->assertEquals (1 , $ numErrors );
455
- $ this ->assertCount (1 , $ errors );
369
+ }//end testSuppressLine()
456
370
457
- // Process with @ suppression on same line (hash comment).
458
- $ content = '<?php ' .PHP_EOL .'$var = FALSE; # @phpcs:ignore ' .PHP_EOL .'$var = FALSE; ' ;
459
- $ file = new DummyFile ($ content , $ ruleset , $ config );
460
- $ file ->process ();
461
371
462
- $ errors = $ file ->getErrors ();
463
- $ numErrors = $ file ->getErrorCount ();
464
- $ this ->assertEquals (1 , $ numErrors );
465
- $ this ->assertCount (1 , $ errors );
372
+ /**
373
+ * Data provider.
374
+ *
375
+ * @see testSuppressLine()
376
+ *
377
+ * @return array
378
+ */
379
+ public function dataSuppressLine ()
380
+ {
381
+ return [
382
+ 'no suppression ' => [
383
+ 'before ' => '' ,
384
+ 'after ' => '' ,
385
+ 'expectedErrors ' => 2 ,
386
+ ],
466
387
467
- // Process with suppression on same line (deprecated syntax).
468
- $ content = '<?php ' .PHP_EOL .'$var = FALSE; // @codingStandardsIgnoreLine ' .PHP_EOL .'$var = FALSE; ' ;
469
- $ file = new DummyFile ($ content , $ ruleset , $ config );
470
- $ file ->process ();
388
+ // With suppression on line before.
389
+ 'ignore: line before, slash comment ' => ['before ' => '// phpcs:ignore ' ],
390
+ 'ignore: line before, slash comment, with @ ' => ['before ' => '// @phpcs:ignore ' ],
391
+ 'ignore: line before, hash comment ' => ['before ' => '# phpcs:ignore ' ],
392
+ 'ignore: line before, hash comment, with @ ' => ['before ' => '# @phpcs:ignore ' ],
393
+ 'ignore: line before, star comment ' => ['before ' => '/* phpcs:ignore */ ' ],
394
+ 'ignore: line before, star comment, with @ ' => ['before ' => '/* @phpcs:ignore */ ' ],
395
+
396
+ // With suppression as trailing comment on code line.
397
+ 'ignore: end of line, slash comment ' => [
398
+ 'before ' => '' ,
399
+ 'after ' => ' // phpcs:ignore ' ,
400
+ ],
401
+ 'ignore: end of line, slash comment, with @ ' => [
402
+ 'before ' => '' ,
403
+ 'after ' => ' // @phpcs:ignore ' ,
404
+ ],
405
+ 'ignore: end of line, hash comment ' => [
406
+ 'before ' => '' ,
407
+ 'after ' => ' # phpcs:ignore ' ,
408
+ ],
409
+ 'ignore: end of line, hash comment, with @ ' => [
410
+ 'before ' => '' ,
411
+ 'after ' => ' # @phpcs:ignore ' ,
412
+ ],
471
413
472
- $ errors = $ file ->getErrors ();
473
- $ numErrors = $ file ->getErrorCount ();
474
- $ this ->assertEquals (1 , $ numErrors );
475
- $ this ->assertCount (1 , $ errors );
414
+ // Deprecated syntax.
415
+ 'old style: line before, slash comment ' => ['before ' => '// @codingStandardsIgnoreLine ' ],
416
+ 'old style: end of line, slash comment ' => [
417
+ 'before ' => '' ,
418
+ 'after ' => ' // @codingStandardsIgnoreLine ' ,
419
+ ],
420
+ ];
476
421
477
- }//end testSuppressLine ()
422
+ }//end dataSuppressLine ()
478
423
479
424
480
425
/**
0 commit comments