diff --git a/core/modules/system/src/Tests/Form/RebuildTest.php b/core/modules/system/src/Tests/Form/RebuildTest.php
index e993b49..3c1d854 100644
--- a/core/modules/system/src/Tests/Form/RebuildTest.php
+++ b/core/modules/system/src/Tests/Form/RebuildTest.php
@@ -115,4 +115,41 @@ function testPreserveFormActionAfterAJAX() {
     $forms = $this->xpath('//form[contains(@class, "node-page-form")]');
     $this->assert(count($forms) == 1 && $forms[0]['action'] == Url::fromRoute('node.add', ['node_type' => 'page'])->toString(), 'Re-rendered form contains the correct action value.');
   }
+
+  /**
+   * Tests generating instances of required fields per ajax.
+   *
+   * The user should be able to generate more than one item at once of a field
+   * which is marked as required, without filling each of the field items out.
+   */
+  function testGeneratingMultipleRequiredFieldItemsPerAjax() {
+    // Create a multi-valued field for 'page' nodes to use for Ajax testing.
+    $field_name = 'field_ajax_test';
+    entity_create('field_storage_config', array(
+      'field_name' => $field_name,
+      'entity_type' => 'node',
+      'type' => 'text',
+      'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
+    ))->save();
+    entity_create('field_config', array(
+      'field_name' => $field_name,
+      'entity_type' => 'node',
+      'bundle' => 'page',
+      'required' => TRUE,
+    ))->save();
+    entity_get_form_display('node', 'page', 'default')
+      ->setComponent($field_name, array('type' => 'text_textfield'))
+      ->save();
+
+    // Log in a user who can create 'page' nodes.
+    $this->webUser = $this->drupalCreateUser(array('create page content'));
+    $this->drupalLogin($this->webUser);
+
+    // Get the form for adding a 'page' node. Submit an "add another item" Ajax
+    // submission and verify it worked by ensuring the updated page has two text
+    // field items in the field for which we just added an item.
+    $this->drupalGet('node/add/page');
+    $this->drupalPostAjaxForm(NULL, array(), array('field_ajax_test_add_more' => t('Add another item')), 'system/ajax', array(), array(), 'node-page-form');
+    $this->assert(count($this->xpath('//div[contains(@class, "field-name-field-ajax-test")]//input[@type="text"]')) == 2, 'AJAX submission of required field succeeded.');
+  }
 }
