diff --git a/core/lib/Drupal/Core/Field/FieldConfigInterface.php b/core/lib/Drupal/Core/Field/FieldConfigInterface.php index 11da0df..13ac848 100644 --- a/core/lib/Drupal/Core/Field/FieldConfigInterface.php +++ b/core/lib/Drupal/Core/Field/FieldConfigInterface.php @@ -178,7 +178,7 @@ public function addPropertyConstraints($name, array $constraints); * @code * // Add a constraint to the 'field_username' FieldItemList. * // e.g. $node->field_username - * $fields['field_username']->addConstraint('UserNameUnique', []); + * $fields['field_username']->addConstraint('UniqueField', []); * @endcode * * If you wish to apply a constraint to a \Drupal\Core\Field\FieldItem instead diff --git a/core/modules/aggregator/src/Entity/Feed.php b/core/modules/aggregator/src/Entity/Feed.php index a5ed081..a442005 100644 --- a/core/modules/aggregator/src/Entity/Feed.php +++ b/core/modules/aggregator/src/Entity/Feed.php @@ -151,7 +151,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { 'weight' => -5, )) ->setDisplayConfigurable('form', TRUE) - ->addConstraint('FeedTitle', []); + ->addConstraint('UniqueField', ['message' => 'A feed named %value already exists. Enter a unique title.']); $fields['langcode'] = BaseFieldDefinition::create('language') ->setLabel(t('Language code')) @@ -173,7 +173,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { 'weight' => -3, )) ->setDisplayConfigurable('form', TRUE) - ->addConstraint('FeedUrl', []); + ->addConstraint('UniqueField', ['message' => 'A feed with this URL %value already exists. Enter a unique URL.']); $intervals = array(900, 1800, 3600, 7200, 10800, 21600, 32400, 43200, 64800, 86400, 172800, 259200, 604800, 1209600, 2419200); $period = array_map(array(\Drupal::service('date.formatter'), 'formatInterval'), array_combine($intervals, $intervals)); diff --git a/core/modules/aggregator/src/Plugin/Validation/Constraint/FeedTitleConstraint.php b/core/modules/aggregator/src/Plugin/Validation/Constraint/FeedTitleConstraint.php deleted file mode 100644 index 774d4e3..0000000 --- a/core/modules/aggregator/src/Plugin/Validation/Constraint/FeedTitleConstraint.php +++ /dev/null @@ -1,24 +0,0 @@ - -5, )) ->setDisplayConfigurable('form', TRUE) - ->addConstraint('BlockContentDescription', []); + ->addConstraint('UniqueField', ['message' => 'A block with description %value already exists.']); $fields['type'] = BaseFieldDefinition::create('entity_reference') ->setLabel(t('Block type')) diff --git a/core/modules/block_content/src/Plugin/Validation/Constraint/BlockContentDescriptionConstraint.php b/core/modules/block_content/src/Plugin/Validation/Constraint/BlockContentDescriptionConstraint.php deleted file mode 100644 index 322bda6..0000000 --- a/core/modules/block_content/src/Plugin/Validation/Constraint/BlockContentDescriptionConstraint.php +++ /dev/null @@ -1,24 +0,0 @@ - array(), - 'UserNameUnique' => array(), + 'UniqueField' => array('message' => 'The username %value is already taken.'), )); $fields['pass'] = BaseFieldDefinition::create('password') @@ -477,7 +477,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { ->setLabel(t('Email')) ->setDescription(t('The email of this user.')) ->setDefaultValue('') - ->addConstraint('UserMailUnique') + ->addConstraint('UniqueField', ['message' => 'The email address %value is already taken.']) ->addConstraint('UserMailRequired') ->addConstraint('ProtectedUserField'); diff --git a/core/modules/user/src/Plugin/Validation/Constraint/UserMailUnique.php b/core/modules/user/src/Plugin/Validation/Constraint/UserMailUnique.php deleted file mode 100644 index b72e058..0000000 --- a/core/modules/user/src/Plugin/Validation/Constraint/UserMailUnique.php +++ /dev/null @@ -1,24 +0,0 @@ -assertEqual($user->isActive(), 'User is not blocked'); } } + + /** + * Tests the unique user email constraint. + */ + public function testDuplicateUserEmail() { + $user1 = $this->drupalCreateUser(); + $user1->setEmail('test_email@example.com')->save(); + $violations = $user1->validate(); + $this->assertEqual(0, $violations->count()); + + $user2 = $this->drupalCreateUser(); + $user2->setEmail('test_email@example.com'); + $violations = $user2->validate(); + $this->assertEqual(1, $violations->count()); + $this->assertEqual('The email address test_email@example.com is already taken.', $violations->get(0)->getMessage()); + $this->assertEqual('mail', $violations->get(0)->getPropertyPath()); + } + }