[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/inc/Subscriptions/ -> SubscriberRegexBuilderTest.php (source)

   1  <?php
   2  
   3  namespace tests\inc\Subscriptions;
   4  
   5  use dokuwiki\Subscriptions\SubscriberRegexBuilder;
   6  use DokuWikiTest;
   7  
   8  class SubscriberRegexBuilderTest extends DokuWikiTest
   9  {
  10  
  11      public function regexTestdataProvider()
  12      {
  13          return [
  14              ['Cold Fusion', null, null, 1],
  15              ['casper', null, null, 1],
  16              ['nope', null, null, 0],
  17              ['lights', null, null, 0],
  18              [['Cold Fusion', 'casper', 'nope'], null, null, 2],
  19              [null, 'list', null, 1],
  20              [null, 'every', null, 2],
  21              [null, 'digest', null, 3],
  22              [null, ['list', 'every'], null, 3],
  23              ['casper', 'digest', null, 0],
  24              ['casper', ['digest', 'every'], null, 1],
  25              ['zioth', 'list', '1344691369', 1],
  26              ['zioth', null, '1344691369', 1],
  27              ['zioth', 'digest', '1344691369', 0],
  28          ];
  29      }
  30  
  31      /**
  32       * @dataProvider regexTestdataProvider
  33       */
  34      public function testRegexp($user, $style, $inputData, $expectedNumResults)
  35      {
  36          // data to test against
  37          $data = [
  38              "casper every\n",
  39              "Andreas digest 1344689733",
  40              "Cold%20Fusion every",
  41              "zioth list 1344691369\n",
  42              "nlights digest",
  43              "rikblok\tdigest  \t 1344716803",
  44          ];
  45  
  46          $sub = new SubscriberRegexBuilder();
  47          $re = $sub->buildRegex($user, $style, $inputData);
  48          $this->assertFalse(empty($re));
  49          $result = preg_grep($re, $data);
  50          $this->assertEquals($expectedNumResults, count($result));
  51      }
  52  }