]>
Commit | Line | Data |
---|---|---|
1 | <?php | |
2 | ||
3 | namespace Tests\Wallabag\CoreBundle\Tools; | |
4 | ||
5 | use PHPUnit\Framework\TestCase; | |
6 | use Symfony\Component\Finder\Finder; | |
7 | use Wallabag\CoreBundle\Tools\Utils; | |
8 | ||
9 | class UtilsTest extends TestCase | |
10 | { | |
11 | /** | |
12 | * @dataProvider examples | |
13 | */ | |
14 | public function testCorrectWordsCountForDifferentLanguages($filename, $text, $expectedCount) | |
15 | { | |
16 | static::assertSame((float) $expectedCount, Utils::getReadingTime($text), 'Reading time for: ' . $filename); | |
17 | } | |
18 | ||
19 | public function examples() | |
20 | { | |
21 | $examples = []; | |
22 | $finder = (new Finder())->in(__DIR__ . '/samples'); | |
23 | foreach ($finder->getIterator() as $file) { | |
24 | preg_match('/-----CONTENT-----\s*(.*?)\s*-----READING_TIME-----\s*(.*)/sx', $file->getContents(), $match); | |
25 | ||
26 | if (3 !== \count($match)) { | |
27 | throw new \Exception('Sample file "' . $file->getRelativePathname() . '" as wrong definition, see README.'); | |
28 | } | |
29 | ||
30 | $examples[] = [ | |
31 | $file->getRelativePathname(), | |
32 | $match[1], // content | |
33 | $match[2], // reading time | |
34 | ]; | |
35 | } | |
36 | ||
37 | return $examples; | |
38 | } | |
39 | } |