Chris@16: container->get('module_handler'); Chris@16: $moduleHandler->loadInclude('locale', 'inc', 'locale.batch'); Chris@16: ConfigurableLanguage::createFromLangcode('de')->save(); Chris@16: Chris@16: // Let the translations:// stream wrapper point to a virtual file system to Chris@16: // make it independent from the test environment. Chris@16: $this->translationsStream = vfsStream::setup('translations'); Chris@16: \Drupal::configFactory()->getEditable('locale.settings') Chris@16: ->set('translation.path', $this->translationsStream->url()) Chris@16: ->save(); Chris@16: } Chris@16: Chris@16: /** Chris@16: * Tests translation download from remote sources. Chris@16: */ Chris@16: public function testUpdateImportSourceRemote() { Chris@16: Chris@16: // Provide remote and 'previously' downloaded translation file. Chris@16: $this->setTranslationFiles(); Chris@16: vfsStream::create([ Chris@16: 'contrib_module_one-8.x-1.1.de._po' => '__old_content__', Chris@16: ], $this->translationsStream); Chris@16: Chris@16: $url = \Drupal::service('url_generator')->generateFromRoute('', [], ['absolute' => TRUE]); Chris@16: $uri = $url . PublicStream::basePath() . '/remote/8.x/contrib_module_one/contrib_module_one-8.x-1.1.de._po'; Chris@16: $source_file = (object) [ Chris@16: 'uri' => $uri, Chris@16: ]; Chris@16: Chris@16: $result = locale_translation_download_source($source_file, 'translations://'); Chris@16: Chris@16: $this->assertEquals('translations://contrib_module_one-8.x-1.1.de._po', $result->uri); Chris@16: $this->assertFalse(file_exists('translations://contrib_module_one-8.x-1.1.de_0._po')); Chris@16: $this->assertTrue(file_exists('translations://contrib_module_one-8.x-1.1.de._po')); Chris@16: $this->assertNotContains('__old_content__', file_get_contents('translations://contrib_module_one-8.x-1.1.de._po')); Chris@16: } Chris@16: Chris@16: }