
| Current Path : /var/www/html/rocksensor1/web/core/tests/Drupal/Nightwatch/Tests/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/rocksensor1/web/core/tests/Drupal/Nightwatch/Tests/machineNameTransliterationTest.js |
// cSpell:disable
const MachineNameTestArray = [
{
machineName: 'Bob',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'bob',
},
{
machineName: 'Äwesome',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'awesome',
},
{
machineName: 'B?!"@\\/-ob@e',
replacePattern: '[^a-zA-Z0-9_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'b_ob_e',
},
{
machineName: 'Bob@e\\0',
replacePattern: '[^a-zA-Z0-9_.~@]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'bob@e_0',
},
{
machineName: 'Bobby',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'bobby',
},
{
machineName: 'ǍǎǏ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'aai',
},
// The expected machine name are modified because we don't have
// the removeDiacritics() function present in PhpTranliteration.php.
{
machineName: 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'aaaaaaaeceeeeiiii',
},
{
machineName: 'ÐÑÒÓÔÕÖרÙÚÛÜÝÞß',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'dnoooooxouuuuuthss',
},
{
machineName: 'àáâãäåæçèéêëìíîï',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'aaaaaaaeceeeeiiii',
},
{
machineName: 'ðñòóôõö÷øùúûüýþÿ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'dnooooo_ouuuuythy',
},
{
machineName: 'ĀāĂ㥹ĆćĈĉĊċČčĎď',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'aaaaaaccccccccdd',
},
{
machineName: 'ĐđĒēĔĕĖėĘęĚěĜĝĞğ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'ddeeeeeeeeeegggg',
},
{
machineName: 'ĠġĢģĤĥĦħĨĩĪīĬĭĮį',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'gggghhhhiiiiiiii',
},
{
machineName: 'İıIJijĴĵĶķĸĹĺĻļĽľĿ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'iiijijjjkkklllllll',
},
{
machineName: 'ŀŁłŃńŅņŇňʼnŊŋŌōŎŏ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'lllnnnnnn_nngngoooo',
},
{
machineName: 'ŐőŒœŔŕŖŗŘřŚśŜŝŞş',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'oooeoerrrrrrssssss',
},
{
machineName: 'ŠšŢţŤťŦŧŨũŪūŬŭŮů',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'ssttttttuuuuuuuu',
},
{
machineName: 'ŰűŲųŴŵŶŷŸŹźŻżŽž',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'uuuuwwyyyzzzzzz',
},
{
machineName: 'ǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'ioouuuuuuuuuu_aa',
},
{
machineName: 'ǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'aaaeaeggggkkoooozhzh',
},
{
machineName: 'ǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'jdzddzgghvwnnaaaeaeoo',
},
{
machineName: 'ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'aaaaeeeeiiiioooo',
},
{
machineName: 'ȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'rrrruuuussttyyhh',
},
{
machineName: 'ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'ndououzzaaeeoooooo',
},
{
machineName: 'ȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'ooyylntjdbqpacclts',
},
{
machineName: 'ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏ',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'z_buveejjqqrryy',
},
// Test for maximum length of machine-name
{
machineName: 'This is the test for max length',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 20,
expectedMachineName: 'this_is_the_test_for',
},
{
machineName: 'Ma@Chi!~',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '_',
maxlength: 5,
expectedMachineName: 'ma_ch',
},
{
machineName: 'Test for custom replace character',
replacePattern: '[^a-zA-Z0-9-_.~]+',
replaceChar: '-',
maxlength: 64,
expectedMachineName: 'test-for-custom-replace-character',
},
{
machineName: 'Test for unusual replace pattern',
replacePattern: '([^a-z0-9_]+)|(^custom$)',
replaceChar: '_',
maxlength: 64,
expectedMachineName: 'test_for_unusual_replace_pattern',
},
{
machineName: 'custom',
replacePattern: '([^a-z0-9_]+)|(^custom$)',
replaceChar: '_',
maxlength: 64,
expectedMachineName: '_',
},
// cSpell:enable
];
module.exports = {
before(browser) {
browser.drupalInstall().drupalLoginAsAdmin(() => {
browser
.drupalRelativeURL('/admin/modules')
.setValue('input[type="search"]', 'FormAPI')
.waitForElementVisible('input[name="modules[form_test][enable]"]', 1000)
.click('input[name="modules[form_test][enable]"]')
.click('input[type="submit"]') // Submit module form.
.click('input[type="submit"]'); // Confirm installation of dependencies.
});
},
after(browser) {
browser.drupalUninstall();
},
'Machine name generation test': (browser) => {
browser.drupalRelativeURL('/form-test/machine-name');
MachineNameTestArray.forEach((iteration) => {
browser.execute(
// eslint-disable-next-line func-names, prefer-arrow-callback, no-shadow
function (object) {
return Drupal.behaviors.machineName.transliterate(
object.machineName,
{
replace_pattern: object.replacePattern,
replace: object.replaceChar,
maxlength: object.maxlength,
},
);
},
[iteration],
(result) => {
browser.assert.equal(result.value, iteration.expectedMachineName);
},
);
});
},
};