Version 1
[yaffs-website] / web / modules / contrib / paragraphs / tests / src / Kernel / ParagraphsBehaviorPluginsTest.php
diff --git a/web/modules/contrib/paragraphs/tests/src/Kernel/ParagraphsBehaviorPluginsTest.php b/web/modules/contrib/paragraphs/tests/src/Kernel/ParagraphsBehaviorPluginsTest.php
new file mode 100644 (file)
index 0000000..b34321f
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+
+namespace Drupal\Tests\paragraphs\Kernel;
+
+use Drupal\paragraphs\Entity\Paragraph;
+use Drupal\paragraphs\Entity\ParagraphsType;
+use Drupal\KernelTests\KernelTestBase;
+
+/**
+ * Tests the behavior plugins API.
+ *
+ * @group paragraphs
+ */
+class ParagraphsBehaviorPluginsTest extends KernelTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = [
+    'paragraphs',
+    'user',
+    'system',
+    'field',
+    'entity_reference_revisions',
+    'paragraphs_test',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('user');
+    $this->installEntitySchema('paragraph');
+    $this->installSchema('system', ['sequences']);
+    \Drupal::moduleHandler()->loadInclude('paragraphs', 'install');
+  }
+
+  /**
+   * Tests the behavior settings API.
+   */
+  public function testBehaviorSettings() {
+    // Create a paragraph type.
+    $paragraph_type = ParagraphsType::create(array(
+      'label' => 'test_text',
+      'id' => 'test_text',
+      'behavior_plugins' => [
+        'test_text_color' => [
+          'enabled' => TRUE,
+        ]
+      ],
+    ));
+    $paragraph_type->save();
+
+    // Create a paragraph and set its feature settings.
+    $paragraph = Paragraph::create([
+      'type' => 'test_text',
+    ]);
+    $feature_settings = [
+      'test_text_color' => [
+        'text_color' => 'red'
+      ],
+    ];
+    $paragraph->setAllBehaviorSettings($feature_settings);
+    $paragraph->save();
+
+    // Load the paragraph and assert its stored feature settings.
+    $paragraph = Paragraph::load($paragraph->id());
+    $this->assertEquals($paragraph->getAllBehaviorSettings(), $feature_settings);
+
+    // Check the text color plugin settings summary.
+    $plugin = $paragraph->getParagraphType()->getBehaviorPlugins()->getEnabled();
+    $this->assertEquals($plugin['test_text_color']->settingsSummary($paragraph)[0], 'Text color: red');
+
+    // Update the value of an specific plugin.
+    $paragraph->setBehaviorSettings('test_text_color', ['text_color' => 'blue']);
+    $paragraph->save();
+
+    // Assert the values have been updated.
+    $paragraph = Paragraph::load($paragraph->id());
+    $this->assertEquals($paragraph->getBehaviorSetting('test_text_color', 'text_color'), 'blue');
+
+    // Check the text color plugin settings summary.
+    $plugin = $paragraph->getParagraphType()->getBehaviorPlugins()->getEnabled();
+    $this->assertEquals($plugin['test_text_color']->settingsSummary($paragraph)[0], 'Text color: blue');
+
+  }
+
+}