3 namespace Drupal\Tests\system\Functional\Form;
5 use Drupal\Tests\BrowserTestBase;
8 * Tests functionality of \Drupal\Core\Form\FormBuilderInterface::rebuildForm().
12 class RebuildTest extends BrowserTestBase {
19 public static $modules = ['node', 'form_test'];
24 * @var \Drupal\user\UserInterface
28 protected function setUp() {
31 $this->drupalCreateContentType(['type' => 'page', 'name' => 'Basic page']);
33 $this->webUser = $this->drupalCreateUser(['access content']);
34 $this->drupalLogin($this->webUser);
38 * Tests preservation of values.
40 public function testRebuildPreservesValues() {
42 'checkbox_1_default_off' => TRUE,
43 'checkbox_1_default_on' => FALSE,
46 $this->drupalPostForm('form-test/form-rebuild-preserve-values', $edit, 'Add more');
48 $assert_session = $this->assertSession();
50 // Verify that initial elements retained their submitted values.
51 $assert_session->checkboxChecked('edit-checkbox-1-default-off');
52 $assert_session->checkboxNotChecked('edit-checkbox-1-default-on');
53 $assert_session->fieldValueEquals('edit-text-1', 'foo');
55 // Verify that newly added elements were initialized with their default values.
56 $assert_session->checkboxChecked('edit-checkbox-2-default-on');
57 $assert_session->checkboxNotChecked('edit-checkbox-2-default-off');
58 $assert_session->fieldValueEquals('edit-text-2', 'DEFAULT 2');