paragraphs-8.x-1.11/tests/src/Kernel/ParagraphsIsChangedTest.php
tests/src/Kernel/ParagraphsIsChangedTest.php
<?php namespace Drupal\Tests\paragraphs\Kernel; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; use Drupal\KernelTests\KernelTestBase; use Drupal\paragraphs\Entity\Paragraph; use Drupal\paragraphs\Entity\ParagraphsType; /** * Tests \Drupal\Paragraphs\Entity\Paragraph::isChanged(). * * @group paragraphs */ class ParagraphsIsChangedTest extends KernelTestBase { /** * {@inheritdoc} */ protected static $modules = [ 'paragraphs', 'user', 'system', 'field', 'entity_reference_revisions', 'file', ]; /** * {@inheritdoc} */ protected function setUp(): void { parent::setUp(); $this->installEntitySchema('user'); $this->installEntitySchema('paragraph'); $this->installSchema('system', ['sequences']); \Drupal::moduleHandler()->loadInclude('paragraphs', 'install'); // Create a text paragraph type. $paragraph_type = ParagraphsType::create([ 'label' => 'text_paragraph', 'id' => 'text_paragraph', ]); $paragraph_type->save(); $this->addParagraphsField('text_paragraph', 'text', 'string'); } /** * Tests the functionality of the isChanged() function. */ public function testIsChanged() { // Create a paragraph. $paragraph = Paragraph::create([ 'title' => 'Paragraph', 'type' => 'text_paragraph', 'text' => 'Text Paragraph', ]); $this->assertTrue($paragraph->isChanged(), 'The paragraph is a new entity.'); // Save the paragraph and assert no changes. $paragraph->save(); $this->assertFalse($paragraph->isChanged(), 'Paragraph::isChanged() found no changes after the entity has been saved.'); $paragraph->set('text', 'New text'); $this->assertTrue($paragraph->isChanged(), 'Paragraph::isChanged() found changes after updating text field.'); } /** * Adds a field to a given paragraph type. * * @param string $paragraph_type_name * Paragraph type name to be used. * @param string $field_name * Paragraphs field name to be used. * @param string $field_type * Type of the field. * @param array $field_edit * Edit settings for the field. */ protected function addParagraphsField($paragraph_type_name, $field_name, $field_type, array $field_edit = []) { // Add a paragraphs field. $field_storage = FieldStorageConfig::create([ 'field_name' => $field_name, 'entity_type' => 'paragraph', 'type' => $field_type, 'cardinality' => '-1', 'settings' => $field_edit, ]); $field_storage->save(); $field = FieldConfig::create([ 'field_storage' => $field_storage, 'bundle' => $paragraph_type_name, 'settings' => [ 'handler' => 'default:paragraph', 'handler_settings' => ['target_bundles' => NULL], ], ]); $field->save(); } }