--- /dev/null
+<?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');
+
+ }
+
+}