executeMigrations([ 'language', 'd6_language_negotiation_settings', 'language_prefixes_and_domains', 'd6_language_types', ]); $config = $this->config('language.negotiation'); $this->assertSame($config->get('session.parameter'), 'language'); $this->assertSame($config->get('url.source'), LanguageNegotiationUrl::CONFIG_PATH_PREFIX); $this->assertSame($config->get('selected_langcode'), 'site_default'); $expected_prefixes = [ 'en' => '', 'fr' => 'fr', 'zu' => 'zu', ]; $this->assertSame($config->get('url.prefixes'), $expected_prefixes); $config = $this->config('language.types'); $this->assertSame($config->get('all'), ['language_interface', 'language_content', 'language_url']); $this->assertSame($config->get('configurable'), ['language_interface']); $this->assertSame($config->get('negotiation.language_content.enabled'), ['language-interface' => 0]); $this->assertSame($config->get('negotiation.language_url.enabled'), ['language-url' => 0, 'language-url-fallback' => 1]); $expected_language_interface = [ 'language-url' => 0, 'language-selected' => 1, ]; $this->assertSame($config->get('negotiation.language_interface.enabled'), $expected_language_interface); } /** * Tests the migration with LANGUAGE_NEGOTIATION_NONE. */ public function testLanguageNegotiationWithNoNegotiation() { $this->sourceDatabase->update('variable') ->fields(['value' => serialize(0)]) ->condition('name', 'language_negotiation') ->execute(); $this->executeMigrations([ 'language', 'd6_language_negotiation_settings', 'language_prefixes_and_domains', 'd6_language_types', ]); $config = $this->config('language.negotiation'); $this->assertSame($config->get('session.parameter'), 'language'); $this->assertSame($config->get('url.source'), LanguageNegotiationUrl::CONFIG_PATH_PREFIX); $this->assertSame($config->get('selected_langcode'), 'site_default'); $config = $this->config('language.types'); $this->assertSame($config->get('all'), ['language_interface', 'language_content', 'language_url']); $this->assertSame($config->get('configurable'), ['language_interface']); $this->assertSame($config->get('negotiation.language_content.enabled'), ['language-interface' => 0]); $this->assertSame($config->get('negotiation.language_url.enabled'), ['language-url' => 0, 'language-url-fallback' => 1]); $expected_language_interface = [ 'language-selected' => 0, ]; $this->assertSame($config->get('negotiation.language_interface.enabled'), $expected_language_interface); } /** * Tests the migration with LANGUAGE_NEGOTIATION_PATH. */ public function testLanguageNegotiationWithPathPrefix() { $this->sourceDatabase->update('variable') ->fields(['value' => serialize(2)]) ->condition('name', 'language_negotiation') ->execute(); $this->executeMigrations([ 'language', 'd6_language_negotiation_settings', 'language_prefixes_and_domains', 'd6_language_types', ]); $config = $this->config('language.negotiation'); $this->assertSame($config->get('session.parameter'), 'language'); $this->assertSame($config->get('url.source'), LanguageNegotiationUrl::CONFIG_PATH_PREFIX); $this->assertSame($config->get('selected_langcode'), 'site_default'); $expected_prefixes = [ 'en' => '', 'fr' => 'fr', 'zu' => 'zu', ]; $this->assertSame($config->get('url.prefixes'), $expected_prefixes); $config = $this->config('language.types'); $this->assertSame($config->get('all'), ['language_interface', 'language_content', 'language_url']); $this->assertSame($config->get('configurable'), ['language_interface']); $this->assertSame($config->get('negotiation.language_content.enabled'), ['language-interface' => 0]); $this->assertSame($config->get('negotiation.language_url.enabled'), ['language-url' => 0, 'language-url-fallback' => 1]); $expected_language_interface = [ 'language-url' => 0, 'language-user' => 1, 'language-browser' => 2, 'language-selected' => 3, ]; $this->assertSame($config->get('negotiation.language_interface.enabled'), $expected_language_interface); } /** * Tests the migration with LANGUAGE_NEGOTIATION_DOMAIN. */ public function testLanguageNegotiationWithDomain() { $this->sourceDatabase->update('variable') ->fields(['value' => serialize(3)]) ->condition('name', 'language_negotiation') ->execute(); $this->executeMigrations([ 'language', 'd6_language_negotiation_settings', 'language_prefixes_and_domains', 'd6_language_types', ]); global $base_url; $config = $this->config('language.negotiation'); $this->assertSame($config->get('session.parameter'), 'language'); $this->assertSame($config->get('url.source'), LanguageNegotiationUrl::CONFIG_DOMAIN); $this->assertSame($config->get('selected_langcode'), 'site_default'); $expected_domains = [ 'en' => parse_url($base_url, PHP_URL_HOST), 'fr' => 'fr.drupal.org', 'zu' => 'zu.drupal.org', ]; $this->assertSame($config->get('url.domains'), $expected_domains); $config = $this->config('language.types'); $this->assertSame($config->get('all'), ['language_interface', 'language_content', 'language_url']); $this->assertSame($config->get('configurable'), ['language_interface']); $this->assertSame($config->get('negotiation.language_content.enabled'), ['language-interface' => 0]); $this->assertSame($config->get('negotiation.language_url.enabled'), ['language-url' => 0, 'language-url-fallback' => 1]); $expected_language_interface = [ 'language-url' => 0, 'language-selected' => 1, ]; $this->assertSame($config->get('negotiation.language_interface.enabled'), $expected_language_interface); } }