Initial Drupal 11 with DDEV setup
This commit is contained in:
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Drupal\FunctionalJavascriptTests\MachineName;
|
||||
|
||||
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
|
||||
|
||||
use Drupal\language\Entity\ConfigurableLanguage;
|
||||
|
||||
/**
|
||||
* Tests the machine name transliteration functionality.
|
||||
*
|
||||
* @group javascript
|
||||
* @group #slow
|
||||
*/
|
||||
class MachineNameTransliterationTest extends WebDriverTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected static $modules = [
|
||||
'language',
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $defaultTheme = 'stark';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
$admin_user = $this->drupalCreateUser([
|
||||
'administer site configuration',
|
||||
'administer languages',
|
||||
'access administration pages',
|
||||
'administer permissions',
|
||||
]);
|
||||
$this->drupalLogin($admin_user);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for machine name transliteration functionality.
|
||||
*
|
||||
* @dataProvider machineNameInputOutput
|
||||
*/
|
||||
public function testMachineNameTransliterations($langcode, $input, $output): void {
|
||||
$page = $this->getSession()->getPage();
|
||||
if ($langcode !== 'en') {
|
||||
ConfigurableLanguage::createFromLangcode($langcode)->save();
|
||||
}
|
||||
$this->config('system.site')->set('default_langcode', $langcode)->save();
|
||||
$this->rebuildContainer();
|
||||
|
||||
$this->drupalGet("/admin/people/roles/add");
|
||||
$page->find('css', '[data-drupal-selector="edit-label"]')->setValue($input);
|
||||
$this->assertSession()->elementTextEquals('css', 'span.machine-name-value', $output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data for the testMachineNameTransliterations.
|
||||
*
|
||||
* @return array
|
||||
* An array of arrays, where each sub-array contains a language code,
|
||||
* input string, and the expected transliterated output string.
|
||||
*/
|
||||
public static function machineNameInputOutput(): array {
|
||||
return [
|
||||
// cSpell:disable
|
||||
['en', 'Bob', 'bob'],
|
||||
['en', 'Äwesome', 'awesome'],
|
||||
['de', 'Äwesome', 'aewesome'],
|
||||
['da', 'äöüåøhello', 'aouaaoehello'],
|
||||
['fr', 'ц', 'c'],
|
||||
['fr', 'ᐑ', 'wii'],
|
||||
// This test is not working with chromedriver as '𐌰𐌸' chars are not
|
||||
// accepted.
|
||||
// ['en', '𐌰𐌸', '__'],
|
||||
['en', 'Ä Ö Ü Å Ø äöüåøhello', 'a_o_u_a_o_aouaohello'],
|
||||
['de', 'Ä Ö Ü Å Ø äöüåøhello', 'ae_oe_ue_a_o_aeoeueaohello'],
|
||||
['de', ']URY&m_G^;', 'ury_m_g'],
|
||||
['da', 'Ä Ö Ü Å Ø äöüåøhello', 'a_o_u_aa_oe_aouaaoehello'],
|
||||
['kg', 'ц', 'ts'],
|
||||
['en', ' Hello Abventor! ', 'hello_abventor'],
|
||||
// cSpell:enable
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user