3 namespace Drupal\Tests\system\Unit\Installer;
5 use Drupal\Core\StringTranslation\Translator\FileTranslation;
6 use Drupal\Tests\UnitTestCase;
9 * Tests for installer language support.
13 class InstallTranslationFilePatternTest extends UnitTestCase {
16 * @var \Drupal\Core\StringTranslation\Translator\FileTranslation
18 protected $fileTranslation;
21 * @var \ReflectionMethod
23 protected $filePatternMethod;
28 protected function setup() {
30 $this->fileTranslation = new FileTranslation('filename');
31 $method = new \ReflectionMethod('\Drupal\Core\StringTranslation\Translator\FileTranslation', 'getTranslationFilesPattern');
32 $method->setAccessible(TRUE);
33 $this->filePatternMethod = $method;
37 * @dataProvider providerValidTranslationFiles
39 public function testFilesPatternValid($langcode, $filename) {
40 $pattern = $this->filePatternMethod->invoke($this->fileTranslation, $langcode);
41 $this->assertNotEmpty(preg_match($pattern, $filename));
47 public function providerValidTranslationFiles() {
49 ['hu', 'drupal-8.0.0-alpha1.hu.po'],
50 ['ta', 'drupal-8.10.10-beta12.ta.po'],
51 ['hi', 'drupal-8.0.0.hi.po'],
56 * @dataProvider providerInvalidTranslationFiles
58 public function testFilesPatternInvalid($langcode, $filename) {
59 $pattern = $this->filePatternMethod->invoke($this->fileTranslation, $langcode);
60 $this->assertEmpty(preg_match($pattern, $filename));
66 public function providerInvalidTranslationFiles() {
68 ['hu', 'drupal-alpha1-*-hu.po'],
69 ['ta', 'drupal-beta12.ta'],
70 ['hi', 'drupal-hi.po'],
71 ['de', 'drupal-dummy-de.po'],
72 ['hu', 'drupal-10.0.1.alpha1-hu.po'],