Chris@0: save(); Chris@0: $this->config('system.site')->set('default_langcode', 'fr')->save(); Chris@0: Chris@0: $this->drupalLogin($this->rootUser); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests that there are no circular dependencies. Chris@0: */ Chris@0: public function testCircularDependency() { Chris@0: // Ensure that we can enable early_translation_test on a non-english site. Chris@0: $this->drupalPostForm('admin/modules', ['modules[early_translation_test][enable]' => TRUE], t('Install')); Chris@0: $this->assertResponse(200); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Test language fallback defaults. Chris@0: */ Chris@0: public function testLanguageFallbackDefaults() { Chris@0: $this->drupalGet(''); Chris@0: // Ensure state of fallback languages persisted by Chris@0: // locale_test_language_fallback_candidates_locale_lookup_alter() is empty. Chris@0: $this->assertEqual(\Drupal::state()->get('locale.test_language_fallback_candidates_locale_lookup_alter_candidates'), []); Chris@0: // Make sure there is enough information provided for alter hooks. Chris@0: $context = \Drupal::state()->get('locale.test_language_fallback_candidates_locale_lookup_alter_context'); Chris@0: $this->assertEqual($context['langcode'], 'fr'); Chris@0: $this->assertEqual($context['operation'], 'locale_lookup'); Chris@0: } Chris@0: Chris@12: /** Chris@12: * Test old plural style @count[number] fix. Chris@12: * Chris@12: * @dataProvider providerTestFixOldPluralStyle Chris@12: */ Chris@12: public function testFixOldPluralStyle($translation_value, $expected) { Chris@12: $string_storage = \Drupal::service('locale.storage'); Chris@12: $string = $string_storage->findString(['source' => 'Member for', 'context' => '']); Chris@12: $lid = $string->getId(); Chris@12: $string_storage->createTranslation([ Chris@12: 'lid' => $lid, Chris@12: 'language' => 'fr', Chris@12: 'translation' => $translation_value, Chris@12: ])->save(); Chris@12: _locale_refresh_translations(['fr'], [$lid]); Chris@12: Chris@12: // Check that 'count[2]' was fixed for render value. Chris@12: $this->drupalGet(''); Chris@12: $this->assertSession()->pageTextContains($expected); Chris@12: Chris@12: // Check that 'count[2]' was saved for source value. Chris@12: $translation = $string_storage->findTranslation(['language' => 'fr', 'lid' => $lid])->translation; Chris@12: $this->assertSame($translation_value, $translation, 'Source value not changed'); Chris@12: $this->assertNotFalse(strpos($translation, '@count[2]'), 'Source value contains @count[2]'); Chris@12: } Chris@12: Chris@12: /** Chris@12: * Provides data for testFixOldPluralStyle(). Chris@12: * Chris@12: * @return array Chris@12: * An array of test data: Chris@12: * - translation value Chris@12: * - expected result Chris@12: */ Chris@12: public function providerTestFixOldPluralStyle() { Chris@12: return [ Chris@12: 'non-plural translation' => ['@count[2] non-plural test', '@count[2] non-plural test'], Chris@18: 'plural translation' => ['@count[2] plural test' . PoItem::DELIMITER, '@count plural test'], Chris@12: ]; Chris@12: } Chris@12: Chris@0: }