altcolor-1.0.0-beta1/tests/src/Nightwatch/Tests/ColorSchemeDropdownTest.js

tests/src/Nightwatch/Tests/ColorSchemeDropdownTest.js
/**
 * @file
 * Tests of the Alternative Color module scheme drop down functionality.
 */

const selectors = {
  schemePicker: '#edit-scheme',
  colorFields: {
    base: 'input[type="color"][name="altcolor[colors][base]"]',
    text: 'input[type="color"][name="altcolor[colors][text]"]',
    accent: 'input[type="color"][name="altcolor[colors][accent]"]',
  },
};

const colorSchemes = {
  aqua_depths: {
    base: '#f0f8ff',
    text: '#1e3a5f',
    accent: '#4a90b8',
  },
  arctic_stream: {
    base: '#f8fcff',
    text: '#0f2027',
    accent: '#2c7da0',
  },
};

module.exports = {
  '@tags': ['altcolor'],
  before(browser) {
    browser
      .drupalInstall()
      .drupalInstallModule('altcolor')
      .drupalEnableTheme('test_theme_altcolor1');
  },
  after(browser) {
    browser.drupalUninstall();
  },
  'Theme settings - Color schemes update individual values': (browser) => {
    browser.drupalLoginAsAdmin(() => {
      browser
        .drupalRelativeURL('/admin/appearance/settings/test_theme_altcolor1')
        .waitForElementVisible(selectors.schemePicker)
        // Assert that the first color scheme is selected by default.
        .assert.valueEquals(
          selectors.colorFields.base,
          colorSchemes.aqua_depths.base,
        )
        .assert.valueEquals(
          selectors.colorFields.text,
          colorSchemes.aqua_depths.text,
        )
        .assert.valueEquals(
          selectors.colorFields.accent,
          colorSchemes.aqua_depths.accent,
        )
        // Switch to the second color scheme.
        .click(`${selectors.schemePicker} option[value="arctic_stream"]`)
        .assert.valueEquals(
          selectors.colorFields.base,
          colorSchemes.arctic_stream.base,
        )
        .assert.valueEquals(
          selectors.colorFields.text,
          colorSchemes.arctic_stream.text,
        )
        .assert.valueEquals(
          selectors.colorFields.accent,
          colorSchemes.arctic_stream.accent,
        )
        // Switch back to the first color scheme.
        .click(`${selectors.schemePicker} option[value="aqua_depths"]`)
        .assert.valueEquals(
          selectors.colorFields.base,
          colorSchemes.aqua_depths.base,
        )
        .assert.valueEquals(
          selectors.colorFields.text,
          colorSchemes.aqua_depths.text,
        )
        .assert.valueEquals(
          selectors.colorFields.accent,
          colorSchemes.aqua_depths.accent,
        )
        // Test that switching to custom does not change the values.
        .click(`${selectors.schemePicker} option[value=""]`)
        .assert.valueEquals(
          selectors.colorFields.base,
          colorSchemes.aqua_depths.base,
        )
        .assert.valueEquals(
          selectors.colorFields.text,
          colorSchemes.aqua_depths.text,
        )
        .assert.valueEquals(
          selectors.colorFields.accent,
          colorSchemes.aqua_depths.accent,
        );
    });
  },
  'Theme settings - Changing value unsets scheme': (browser) => {
    browser.drupalLoginAsAdmin(() => {
      browser
        .drupalRelativeURL('/admin/appearance/settings/test_theme_altcolor1')
        .waitForElementVisible(selectors.schemePicker)
        .waitForElementVisible(selectors.colorFields.accent)
        .assert.valueEquals(selectors.schemePicker, 'aqua_depths');
      // The setValue function does not work with color fields. Set it manually.
      browser
        .execute(
          function (selector, value) {
            const element = document.querySelector(selector);
            element.value = value;
            element.dispatchEvent(new Event('input', { bubbles: true }));
            element.dispatchEvent(new Event('change', { bubbles: true }));
          },
          [selectors.colorFields.accent, '#009cde'],
        )
        .pause(1000)
        .waitForElementVisible(selectors.schemePicker)
        .assert.valueEquals(selectors.schemePicker, '');
    });
  },
};

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc