diff --git a/core/tests/Drupal/Nightwatch/Commands/drupalInstall.js b/core/tests/Drupal/Nightwatch/Commands/drupalInstall.js index 45c2a384631..b61db62c099 100644 --- a/core/tests/Drupal/Nightwatch/Commands/drupalInstall.js +++ b/core/tests/Drupal/Nightwatch/Commands/drupalInstall.js @@ -5,27 +5,36 @@ import { commandAsWebserver } from '../globals'; /** * Installs a Drupal test site. * - * @param {oject} [settings={}] + * @param {object} [settings={}] * Settings object * @param {string} [settings.setupFile=''] * Setup file used by TestSiteApplicationTest + * @param {string} [settings.installProfile=''] + * The install profile to use. + * @param {string} [settings.langcode=''] + * The language to install the site in. * @param {function} callback * A callback which will be called, when the installation is finished. * @return {object} * The 'browser' object. */ -exports.command = function drupalInstall({ setupFile = '' } = {}, callback) { +exports.command = function drupalInstall( + { setupFile = '', installProfile = 'nightwatch_testing', langcode = '' } = {}, + callback, +) { const self = this; try { setupFile = setupFile ? `--setup-file "${setupFile}"` : ''; + installProfile = `--install-profile "${installProfile}"`; + const langcodeOption = langcode ? `--langcode "${langcode}"` : ''; const dbOption = process.env.DRUPAL_TEST_DB_URL.length > 0 ? `--db-url ${process.env.DRUPAL_TEST_DB_URL}` : ''; const install = execSync( commandAsWebserver( - `php ./scripts/test-site.php install ${setupFile} --install-profile nightwatch_testing --base-url ${process.env.DRUPAL_TEST_BASE_URL} ${dbOption} --json`, + `php ./scripts/test-site.php install ${setupFile} ${installProfile} ${langcodeOption} --base-url ${process.env.DRUPAL_TEST_BASE_URL} ${dbOption} --json`, ), ); const installData = JSON.parse(install.toString()); diff --git a/core/tests/Drupal/Nightwatch/Tests/installProfileTest.js b/core/tests/Drupal/Nightwatch/Tests/installProfileTest.js new file mode 100644 index 00000000000..d7b1d24c1ac --- /dev/null +++ b/core/tests/Drupal/Nightwatch/Tests/installProfileTest.js @@ -0,0 +1,19 @@ +module.exports = { + '@tags': ['core'], + before(browser) { + browser.drupalInstall({ + setupFile: 'core/tests/Drupal/TestSite/TestSiteInstallTestScript.php', + installProfile: 'demo_umami', + }); + }, + after(browser) { + browser.drupalUninstall(); + }, + 'Test umami profile': browser => { + browser + .drupalRelativeURL('/test-page') + .waitForElementVisible('body', 1000) + .assert.elementPresent('#block-umami-branding') + .drupalLogAndEnd({ onlyOnError: false }); + }, +}; diff --git a/core/tests/Drupal/Nightwatch/Tests/langcodeTest.js b/core/tests/Drupal/Nightwatch/Tests/langcodeTest.js new file mode 100644 index 00000000000..7248f2a8a3d --- /dev/null +++ b/core/tests/Drupal/Nightwatch/Tests/langcodeTest.js @@ -0,0 +1,18 @@ +module.exports = { + '@tags': ['core'], + before(browser) { + browser.drupalInstall({ + setupFile: 'core/tests/Drupal/TestSite/TestSiteInstallTestScript.php', + langcode: 'fr', + }); + }, + after(browser) { + browser.drupalUninstall(); + }, + 'Test page with langcode': browser => { + browser + .drupalRelativeURL('/test-page') + .assert.attributeEquals('html', 'lang', 'fr') + .drupalLogAndEnd({ onlyOnError: false }); + }, +};