updated core to 8.6.3
This commit is contained in:
@@ -2,7 +2,9 @@
|
||||
|
||||
namespace Drupal\Tests\language\Functional;
|
||||
|
||||
use Drupal\Core\Cache\Cache;
|
||||
use Drupal\Core\Url;
|
||||
use Drupal\file\Entity\File;
|
||||
use Drupal\language\Entity\ConfigurableLanguage;
|
||||
use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationBrowser;
|
||||
use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationSelected;
|
||||
@@ -39,6 +41,13 @@ use Drupal\block\Entity\Block;
|
||||
*/
|
||||
class LanguageUILanguageNegotiationTest extends BrowserTestBase {
|
||||
|
||||
/**
|
||||
* The admin user for testing.
|
||||
*
|
||||
* @var \Drupal\user\Entity\User
|
||||
*/
|
||||
protected $adminUser;
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
@@ -53,8 +62,8 @@ class LanguageUILanguageNegotiationTest extends BrowserTestBase {
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
$admin_user = $this->drupalCreateUser(['administer languages', 'translate interface', 'access administration pages', 'administer blocks']);
|
||||
$this->drupalLogin($admin_user);
|
||||
$this->adminUser = $this->drupalCreateUser(['administer languages', 'translate interface', 'access administration pages', 'administer blocks']);
|
||||
$this->drupalLogin($this->adminUser);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -73,6 +82,17 @@ class LanguageUILanguageNegotiationTest extends BrowserTestBase {
|
||||
// For setting browser language preference to some unknown.
|
||||
$http_header_blah = ["Accept-Language" => "blah;q=1"];
|
||||
|
||||
// Create a private file for testing accessible by the admin user.
|
||||
drupal_mkdir($this->privateFilesDirectory . '/test');
|
||||
$filepath = 'private://test/private-file-test.txt';
|
||||
$contents = "file_put_contents() doesn't seem to appreciate empty strings so let's put in some data.";
|
||||
file_put_contents($filepath, $contents);
|
||||
$file = File::create([
|
||||
'uri' => $filepath,
|
||||
'uid' => $this->adminUser->id(),
|
||||
]);
|
||||
$file->save();
|
||||
|
||||
// Setup the site languages by installing two languages.
|
||||
// Set the default language in order for the translated string to be registered
|
||||
// into database when seen by t(). Without doing this, our target string
|
||||
@@ -242,6 +262,21 @@ class LanguageUILanguageNegotiationTest extends BrowserTestBase {
|
||||
];
|
||||
$this->doRunTest($test);
|
||||
|
||||
// Set preferred langcode for user to default langcode.
|
||||
$account = $this->loggedInUser;
|
||||
$account->preferred_langcode = $default_language->getId();
|
||||
$account->save();
|
||||
|
||||
$test = [
|
||||
'language_negotiation' => [LanguageNegotiationUser::METHOD_ID, LanguageNegotiationUrl::METHOD_ID],
|
||||
'path' => "$langcode/admin/config",
|
||||
'expect' => $default_string,
|
||||
'expected_method_id' => LanguageNegotiationUser::METHOD_ID,
|
||||
'http_header' => [],
|
||||
'message' => 'USER > URL: User has default language as preferred user language setting, the UI language is default',
|
||||
];
|
||||
$this->doRunTest($test);
|
||||
|
||||
// Set preferred langcode for user to unknown language.
|
||||
$account = $this->loggedInUser;
|
||||
$account->preferred_langcode = $langcode_unknown;
|
||||
@@ -359,6 +394,13 @@ class LanguageUILanguageNegotiationTest extends BrowserTestBase {
|
||||
$this->drupalGet($test['path'], $test['path_options'], $test['http_header']);
|
||||
$this->assertText($test['expect'], $test['message']);
|
||||
$this->assertText(t('Language negotiation method: @name', ['@name' => $test['expected_method_id']]));
|
||||
|
||||
// Get the private file and ensure it is a 200. It is important to
|
||||
// invalidate the router cache to ensure the routing system runs a full
|
||||
// match.
|
||||
Cache::invalidateTags(['route_match']);
|
||||
$this->drupalGet('system/files/test/private-file-test.txt');
|
||||
$this->assertResponse(200);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
@@ -25,6 +25,7 @@ class MigrateLanguageContentSettingsTest extends MigrateDrupal6TestBase {
|
||||
parent::setUp();
|
||||
|
||||
$this->installConfig(['node']);
|
||||
$this->installEntitySchema('node');
|
||||
$this->executeMigrations(['d6_node_type', 'd6_language_content_settings']);
|
||||
}
|
||||
|
||||
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\language\Kernel\Migrate\d6;
|
||||
|
||||
use Drupal\language\Entity\ContentLanguageSettings;
|
||||
use Drupal\Core\Language\LanguageInterface;
|
||||
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
|
||||
|
||||
/**
|
||||
* Tests migration of i18ntaxonomy vocabulary settings.
|
||||
*
|
||||
* @group migrate_drupal_6
|
||||
*/
|
||||
class MigrateLanguageContentTaxonomyVocabularySettingsTest extends MigrateDrupal6TestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = [
|
||||
'language',
|
||||
'content_translation',
|
||||
'taxonomy',
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$this->installEntitySchema('taxonomy_term');
|
||||
$this->executeMigrations([
|
||||
'language',
|
||||
'd6_taxonomy_vocabulary',
|
||||
'd6_language_content_taxonomy_vocabulary_settings',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests migration of 18ntaxonomy vocabulary settings.
|
||||
*/
|
||||
public function testLanguageContentTaxonomy() {
|
||||
$target_entity = 'taxonomy_term';
|
||||
// Per Language.
|
||||
$this->assertLanguageContentSettings($target_entity, 'vocabulary_1_i_0_', LanguageInterface::LANGCODE_SITE_DEFAULT, TRUE, ['enabled' => FALSE]);
|
||||
// Set language to vocabulary.
|
||||
$this->assertLanguageContentSettings($target_entity, 'vocabulary_2_i_1_', 'fr', FALSE, ['enabled' => FALSE]);
|
||||
// Localize terms.
|
||||
$this->assertLanguageContentSettings($target_entity, 'vocabulary_3_i_2_', LanguageInterface::LANGCODE_SITE_DEFAULT, TRUE, ['enabled' => TRUE]);
|
||||
// None translation enabled.
|
||||
$this->assertLanguageContentSettings($target_entity, 'vocabulary_name_much_longer_than', LanguageInterface::LANGCODE_SITE_DEFAULT, FALSE, ['enabled' => FALSE]);
|
||||
$this->assertLanguageContentSettings($target_entity, 'tags', LanguageInterface::LANGCODE_SITE_DEFAULT, FALSE, ['enabled' => FALSE]);
|
||||
$this->assertLanguageContentSettings($target_entity, 'forums', LanguageInterface::LANGCODE_SITE_DEFAULT, FALSE, ['enabled' => FALSE]);
|
||||
$this->assertLanguageContentSettings($target_entity, 'type', LanguageInterface::LANGCODE_SITE_DEFAULT, FALSE, ['enabled' => FALSE]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts a content language settings configuration.
|
||||
*
|
||||
* @param string $target_entity
|
||||
* The expected target entity type.
|
||||
* @param string $bundle
|
||||
* The expected bundle.
|
||||
* @param string $default_langcode
|
||||
* The default language code.
|
||||
* @param bool $language_alterable
|
||||
* The expected state of language alterable.
|
||||
* @param array $third_party_settings
|
||||
* The content translation setting.
|
||||
*/
|
||||
public function assertLanguageContentSettings($target_entity, $bundle, $default_langcode, $language_alterable, array $third_party_settings) {
|
||||
$config = ContentLanguageSettings::load($target_entity . "." . $bundle);
|
||||
$this->assertInstanceOf(ContentLanguageSettings::class, $config);
|
||||
$this->assertSame($target_entity, $config->getTargetEntityTypeId());
|
||||
$this->assertSame($bundle, $config->getTargetBundle());
|
||||
$this->assertSame($default_langcode, $config->getDefaultLangcode());
|
||||
$this->assertSame($language_alterable, $config->isLanguageAlterable());
|
||||
$this->assertSame($third_party_settings, $config->getThirdPartySettings('content_translation'));
|
||||
}
|
||||
|
||||
}
|
||||
+1
@@ -25,6 +25,7 @@ class MigrateLanguageContentSettingsTest extends MigrateDrupal7TestBase {
|
||||
parent::setUp();
|
||||
|
||||
$this->installConfig(['node']);
|
||||
$this->installEntitySchema('node');
|
||||
$this->executeMigrations(['d7_node_type', 'd7_language_content_settings']);
|
||||
}
|
||||
|
||||
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\language\Kernel\Plugin\migrate\source\d6;
|
||||
|
||||
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
|
||||
|
||||
/**
|
||||
* Tests i18ntaxonomy vocabulary setting source plugin.
|
||||
*
|
||||
* @covers \Drupal\language\Plugin\migrate\source\d6\LanguageContentSettingsTaxonomyVocabulary
|
||||
*
|
||||
* @group language
|
||||
*/
|
||||
class LanguageContentTaxonomyVocabularySettingsTest extends MigrateSqlSourceTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['taxonomy', 'language', 'migrate_drupal'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function providerSource() {
|
||||
$tests = [];
|
||||
|
||||
// The source data.
|
||||
$tests[0]['source_data']['vocabulary'] = [
|
||||
[
|
||||
'vid' => 1,
|
||||
'name' => 'Tags',
|
||||
'description' => 'Tags description.',
|
||||
'help' => 1,
|
||||
'relations' => 0,
|
||||
'hierarchy' => 0,
|
||||
'multiple' => 0,
|
||||
'required' => 0,
|
||||
'tags' => 1,
|
||||
'module' => 'taxonomy',
|
||||
'weight' => 0,
|
||||
'language' => '',
|
||||
],
|
||||
[
|
||||
'vid' => 2,
|
||||
'name' => 'Categories',
|
||||
'description' => 'Categories description.',
|
||||
'help' => 1,
|
||||
'relations' => 1,
|
||||
'hierarchy' => 1,
|
||||
'multiple' => 0,
|
||||
'required' => 1,
|
||||
'tags' => 0,
|
||||
'module' => 'taxonomy',
|
||||
'weight' => 0,
|
||||
'language' => 'zu',
|
||||
],
|
||||
];
|
||||
$tests[0]['source_data']['variable'] = [
|
||||
[
|
||||
'name' => 'i18ntaxonomy_vocabulary',
|
||||
'value' => 'a:4:{i:1;s:1:"3";i:2;s:1:"2";i:3;s:1:"3";i:5;s:1:"1";}',
|
||||
],
|
||||
];
|
||||
|
||||
$tests[0]['expected_data'] = [
|
||||
[
|
||||
'vid' => 1,
|
||||
'language' => '',
|
||||
'state' => 3,
|
||||
],
|
||||
[
|
||||
'vid' => 2,
|
||||
'language' => 'zu',
|
||||
'state' => 2,
|
||||
],
|
||||
];
|
||||
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user