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'); } }