3 namespace Drupal\Tests\field\Unit;
5 use Drupal\simpletest\AssertHelperTrait;
6 use Drupal\Tests\UnitTestCase;
9 * @coversDefaultClass \Drupal\field\FieldUninstallValidator
12 class FieldUninstallValidatorTest extends UnitTestCase {
14 use AssertHelperTrait;
17 * @var \Drupal\field\FieldUninstallValidator|\PHPUnit_Framework_MockObject_MockObject
19 protected $fieldUninstallValidator;
22 * The mock field type plugin manager;
24 * @var \Drupal\Core\Field\FieldTypePluginManagerInterface|\PHPUnit_Framework_MockObject_MockObject
26 protected $fieldTypePluginManager;
31 protected function setUp() {
33 $this->fieldUninstallValidator = $this->getMockBuilder('Drupal\field\FieldUninstallValidator')
34 ->disableOriginalConstructor()
35 ->setMethods(['getFieldStoragesByModule', 'getFieldTypeLabel'])
37 $this->fieldUninstallValidator->setStringTranslation($this->getStringTranslationStub());
43 public function testValidateNoStorages() {
44 $this->fieldUninstallValidator->expects($this->once())
45 ->method('getFieldStoragesByModule')
48 $module = $this->randomMachineName();
50 $reasons = $this->fieldUninstallValidator->validate($module);
51 $this->assertSame($expected, $this->castSafeStrings($reasons));
57 public function testValidateDeleted() {
58 $field_storage = $this->getMockBuilder('Drupal\field\Entity\FieldStorageConfig')
59 ->disableOriginalConstructor()
61 $field_storage->expects($this->once())
64 $this->fieldUninstallValidator->expects($this->once())
65 ->method('getFieldStoragesByModule')
66 ->willReturn([$field_storage]);
68 $module = $this->randomMachineName();
69 $expected = ['Fields pending deletion'];
70 $reasons = $this->fieldUninstallValidator->validate($module);
71 $this->assertSame($expected, $this->castSafeStrings($reasons));
77 public function testValidateNoDeleted() {
78 $field_storage = $this->getMockBuilder('Drupal\field\Entity\FieldStorageConfig')
79 ->disableOriginalConstructor()
81 $field_storage->expects($this->once())
84 $field_type = $this->randomMachineName();
85 $field_storage->expects($this->once())
87 ->willReturn($field_type);
88 $field_name = $this->randomMachineName();
89 $field_storage->expects($this->once())
91 ->willReturn($field_name);
92 $this->fieldUninstallValidator->expects($this->once())
93 ->method('getFieldStoragesByModule')
94 ->willReturn([$field_storage]);
95 $field_type_label = $this->randomMachineName();
96 $this->fieldUninstallValidator->expects($this->once())
97 ->method('getFieldTypeLabel')
98 ->willReturn($field_type_label);
100 $module = $this->randomMachineName();
101 $expected = ["The <em class=\"placeholder\">$field_type_label</em> field type is used in the following field: $field_name"];
102 $reasons = $this->fieldUninstallValidator->validate($module);
103 $this->assertSame($expected, $this->castSafeStrings($reasons));