annotate core/modules/taxonomy/tests/src/Kernel/TermValidationTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\taxonomy\Kernel;
Chris@0 4
Chris@0 5 use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
Chris@0 6
Chris@0 7 /**
Chris@0 8 * Tests term validation constraints.
Chris@0 9 *
Chris@0 10 * @group taxonomy
Chris@0 11 */
Chris@0 12 class TermValidationTest extends EntityKernelTestBase {
Chris@0 13
Chris@0 14 /**
Chris@0 15 * Modules to enable.
Chris@0 16 *
Chris@0 17 * @var array
Chris@0 18 */
Chris@0 19 public static $modules = ['taxonomy'];
Chris@0 20
Chris@0 21 /**
Chris@0 22 * {@inheritdoc}
Chris@0 23 */
Chris@0 24 protected function setUp() {
Chris@0 25 parent::setUp();
Chris@0 26 $this->installEntitySchema('taxonomy_term');
Chris@0 27 }
Chris@0 28
Chris@0 29 /**
Chris@0 30 * Tests the term validation constraints.
Chris@0 31 */
Chris@0 32 public function testValidation() {
Chris@0 33 $this->entityManager->getStorage('taxonomy_vocabulary')->create([
Chris@0 34 'vid' => 'tags',
Chris@0 35 'name' => 'Tags',
Chris@0 36 ])->save();
Chris@0 37 $term = $this->entityManager->getStorage('taxonomy_term')->create([
Chris@0 38 'name' => 'test',
Chris@0 39 'vid' => 'tags',
Chris@0 40 ]);
Chris@0 41 $violations = $term->validate();
Chris@0 42 $this->assertEqual(count($violations), 0, 'No violations when validating a default term.');
Chris@0 43
Chris@0 44 $term->set('name', $this->randomString(256));
Chris@0 45 $violations = $term->validate();
Chris@0 46 $this->assertEqual(count($violations), 1, 'Violation found when name is too long.');
Chris@0 47 $this->assertEqual($violations[0]->getPropertyPath(), 'name.0.value');
Chris@0 48 $field_label = $term->get('name')->getFieldDefinition()->getLabel();
Chris@0 49 $this->assertEqual($violations[0]->getMessage(), t('%name: may not be longer than @max characters.', ['%name' => $field_label, '@max' => 255]));
Chris@0 50
Chris@0 51 $term->set('name', NULL);
Chris@0 52 $violations = $term->validate();
Chris@0 53 $this->assertEqual(count($violations), 1, 'Violation found when name is NULL.');
Chris@0 54 $this->assertEqual($violations[0]->getPropertyPath(), 'name');
Chris@0 55 $this->assertEqual($violations[0]->getMessage(), t('This value should not be null.'));
Chris@0 56 $term->set('name', 'test');
Chris@0 57
Chris@0 58 $term->set('parent', 9999);
Chris@0 59 $violations = $term->validate();
Chris@0 60 $this->assertEqual(count($violations), 1, 'Violation found when term parent is invalid.');
Chris@0 61 $this->assertEqual($violations[0]->getMessage(), format_string('The referenced entity (%type: %id) does not exist.', ['%type' => 'taxonomy_term', '%id' => 9999]));
Chris@0 62
Chris@0 63 $term->set('parent', 0);
Chris@0 64 $violations = $term->validate();
Chris@0 65 $this->assertEqual(count($violations), 0, 'No violations for parent id 0.');
Chris@0 66 }
Chris@0 67
Chris@0 68 }