Skip to content
Snippets Groups Projects
Verified Commit f88d58b0 authored by Théodore Biadala's avatar Théodore Biadala
Browse files

Issue #2944089 by msankhala, smustgrave, lauriii, Ada Hernandez, TanujJain-TJ,...

Issue #2944089 by msankhala, smustgrave, lauriii, Ada Hernandez, TanujJain-TJ, mrinalini9, Abhisheksingh27, alexpott, longwave: Test Drupal.behaviors.copyFieldValue javascript
parent 13123747
No related branches found
No related tags found
26 merge requests!12227Issue #3181946 by jonmcl, mglaman,!54479.5.x SF update,!5014Issue #3071143: Table Render Array Example Is Incorrect,!4868Issue #1428520: Improve menu parent link selection,!4289Issue #1344552 by marcingy, Niklas Fiekas, Ravi.J, aleevas, Eduardo Morales...,!4114Issue #2707291: Disable body-level scrolling when a dialog is open as a modal,!4100Issue #3249600: Add support for PHP 8.1 Enums as allowed values for list_* data types,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2334Issue #3228209: Add hasRole() method to AccountInterface,!2062Issue #3246454: Add weekly granularity to views date sort,!1591Issue #3199697: Add JSON:API Translation experimental module,!1484Exposed filters get values from URL when Ajax is on,!1255Issue #3238922: Refactor (if feasible) uses of the jQuery serialize function to use vanillaJS,!1162Issue #3100350: Unable to save '/' root path alias,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!925Issue #2339235: Remove taxonomy hard dependency on node module,!877Issue #2708101: Default value for link text is not saved,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links,!844Resolve #3036010 "Updaters",!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493,!485Sets the autocomplete attribute for username/password input field on login form.,!30Issue #3182188: Updates composer usage to point at ./vendor/bin/composer
<?php
namespace Drupal\system_test\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
/**
* Provides a form to test Drupal.behaviors.copyFieldValue.
*/
class CopyFieldValueTestForm extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'copy_field_value_test_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$form['#attached']['library'][] = 'system/drupal.system';
$form['#attached']['drupalSettings']['copyFieldValue']['edit-source-field'] = ['edit-target-field'];
$form['source_field'] = [
'#type' => 'textfield',
'#title' => $this->t('Source Field'),
'#default_value' => '',
'#description' => $this->t('Source input field to provide text value.'),
'#required' => TRUE,
];
$form['target_field'] = [
'#type' => 'textfield',
'#title' => $this->t('Target Field'),
'#default_value' => '',
'#description' => $this->t('Target input field to get value from source field.'),
'#required' => TRUE,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
// We are only testing the JavaScript part of form. We are not submitting
// form.
}
}
......@@ -213,6 +213,14 @@ system_test.custom_cache_control:
requirements:
_access: 'TRUE'
system_test.copy_field_value:
path: '/system-test/copy-field-value-test-form'
defaults:
_form: '\Drupal\system_test\Form\CopyFieldValueTestForm'
_title: 'Copy Field Value Test Form'
requirements:
_access: 'TRUE'
system_test.install_profile:
path: '/system-test/get-install-profile'
defaults:
......
<?php
namespace Drupal\Tests\system\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
/**
* Tests copy field value functionality.
*
* @see Drupal.behaviors.copyFieldValue.
*
* @group system
*/
class CopyFieldValueTest extends WebDriverTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = ['system_test'];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'starterkit_theme';
/**
* Tests copy field value JavaScript functionality.
*/
public function testCopyFieldValue() {
$this->drupalGet('/system-test/copy-field-value-test-form');
$page = $this->getSession()->getPage();
$source_field_selector = 'edit-source-field';
$target_field = $page->find('css', '#edit-target-field');
$random_string = $this->randomString();
// Ensure that after source field has been filled, target field is filled
// with the same value.
$page->fillField($source_field_selector, $random_string);
$target_field->focus();
$this->assertEquals($target_field->getValue(), $random_string);
// Ensure that the target value doesn't change after it has been focused.
$page->fillField($source_field_selector, '');
$target_field->focus();
$this->assertEquals($target_field->getValue(), $random_string);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment