Mercurial > hg > cmmr2012-drupal-site
comparison core/modules/comment/tests/src/Kernel/CommentBundlesTest.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c75dbcec494b |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Tests\comment\Kernel; | |
4 | |
5 use Drupal\comment\Entity\CommentType; | |
6 use Drupal\KernelTests\KernelTestBase; | |
7 | |
8 /** | |
9 * Tests that comment bundles behave as expected. | |
10 * | |
11 * @group comment | |
12 */ | |
13 class CommentBundlesTest extends KernelTestBase { | |
14 | |
15 /** | |
16 * {@inheritdoc} | |
17 */ | |
18 public static $modules = ['comment', 'node', 'taxonomy', 'user']; | |
19 | |
20 /** | |
21 * Entity type ids to use for target_entity_type_id on comment bundles. | |
22 * | |
23 * @var array | |
24 */ | |
25 protected $targetEntityTypes; | |
26 | |
27 /** | |
28 * @var \Drupal\Core\Entity\EntityFieldManagerInterface | |
29 */ | |
30 protected $entityFieldManager; | |
31 | |
32 /** | |
33 * {@inheritdoc} | |
34 */ | |
35 protected function setUp() { | |
36 parent::setUp(); | |
37 | |
38 $this->entityFieldManager = $this->container->get('entity_field.manager'); | |
39 | |
40 $this->installEntitySchema('comment'); | |
41 | |
42 // Create multiple comment bundles, | |
43 // each of which has a different target entity type. | |
44 $this->targetEntityTypes = [ | |
45 'comment' => 'Comment', | |
46 'node' => 'Node', | |
47 'taxonomy_term' => 'Taxonomy Term', | |
48 ]; | |
49 foreach ($this->targetEntityTypes as $id => $label) { | |
50 CommentType::create([ | |
51 'id' => 'comment_on_' . $id, | |
52 'label' => 'Comment on ' . $label, | |
53 'target_entity_type_id' => $id, | |
54 ])->save(); | |
55 } | |
56 } | |
57 | |
58 /** | |
59 * Test that the entity_id field is set correctly for each comment bundle. | |
60 */ | |
61 public function testEntityIdField() { | |
62 $field_definitions = []; | |
63 | |
64 foreach (array_keys($this->targetEntityTypes) as $id) { | |
65 $bundle = 'comment_on_' . $id; | |
66 $field_definitions[$bundle] = $this->entityFieldManager | |
67 ->getFieldDefinitions('comment', $bundle); | |
68 } | |
69 // Test that the value of the entity_id field for each bundle is correct. | |
70 foreach ($field_definitions as $bundle => $definition) { | |
71 $entity_type_id = str_replace('comment_on_', '', $bundle); | |
72 $target_type = $definition['entity_id']->getSetting('target_type'); | |
73 $this->assertEquals($entity_type_id, $target_type); | |
74 | |
75 // Verify that the target type remains correct | |
76 // in the deeply-nested object properties. | |
77 $nested_target_type = $definition['entity_id']->getItemDefinition()->getFieldDefinition()->getSetting('target_type'); | |
78 $this->assertEquals($entity_type_id, $nested_target_type); | |
79 } | |
80 | |
81 } | |
82 | |
83 } |