Loading src/Plugin/Block/PatternkitBlock.php +17 −1 Original line number Diff line number Diff line Loading @@ -292,8 +292,24 @@ class PatternkitBlock extends BlockBase implements ContainerFactoryPluginInterfa // Fall back to the plugin pattern definition if necessary. if (!$pattern) { $pattern = is_array($plugin['pattern']) ? $this->patternStorage->create($plugin['pattern']) : $plugin['pattern']; if (is_array($plugin['pattern'])) { $pattern = $this->patternStorage->create($plugin['pattern']); } elseif ($plugin['pattern'] instanceof PatternInterface) { $pattern = $plugin['pattern']; } else { $pattern_id = DerivativePatternkitBlock::derivativeToAssetId($this->getDerivativeId()); $pattern = $this->patternRepository->getPattern($pattern_id, TRUE); } // Since this wasn't loaded from a targeted revision, ensure the bundled // schema is loaded. if (!$pattern->isBundled()) { $pattern = $this->patternRepository->getPattern($pattern->getAssetId(), TRUE); } } $pattern_id = $pattern->getAssetId(); } catch (\Exception $exception) { Loading tests/src/Functional/SchemaUpdateTest.php +11 −5 Original line number Diff line number Diff line Loading @@ -63,6 +63,8 @@ class SchemaUpdateTest extends PatternkitBrowserTestBase { $assert = $this->assertSession(); $page = $this->getSession()->getPage(); $pattern_name = '[Patternkit] Example with Reference'; $account = $this->drupalCreateUser([ 'access administration pages', 'configure any layout', Loading @@ -73,16 +75,20 @@ class SchemaUpdateTest extends PatternkitBrowserTestBase { // Override the Node layout and place a patternkit block. $this->drupalGet('node/1/layout'); $page->clickLink('Add block'); $assert->linkExists('[Patternkit] Example'); $page->clickLink('[Patternkit] Example'); $assert->linkExists($pattern_name); $page->clickLink($pattern_name); // Confirm the block doesn't initially prompt for updating. $assert->pageTextNotContains('Update pattern schema and template from'); // Fill in the hidden fields manually since fillField() won't find hidden // fields. $page->find('css', '#schema_instance_config') ->setValue(json_encode([ 'text' => 'Pattern block title', 'nested_reference' => [ 'formatted_text' => 'Pattern block body', 'image_url' => '', 'hidden' => 'Hidden text', ], ])); $page->pressButton('Add block'); $page->pressButton('Save layout'); Loading Loading
src/Plugin/Block/PatternkitBlock.php +17 −1 Original line number Diff line number Diff line Loading @@ -292,8 +292,24 @@ class PatternkitBlock extends BlockBase implements ContainerFactoryPluginInterfa // Fall back to the plugin pattern definition if necessary. if (!$pattern) { $pattern = is_array($plugin['pattern']) ? $this->patternStorage->create($plugin['pattern']) : $plugin['pattern']; if (is_array($plugin['pattern'])) { $pattern = $this->patternStorage->create($plugin['pattern']); } elseif ($plugin['pattern'] instanceof PatternInterface) { $pattern = $plugin['pattern']; } else { $pattern_id = DerivativePatternkitBlock::derivativeToAssetId($this->getDerivativeId()); $pattern = $this->patternRepository->getPattern($pattern_id, TRUE); } // Since this wasn't loaded from a targeted revision, ensure the bundled // schema is loaded. if (!$pattern->isBundled()) { $pattern = $this->patternRepository->getPattern($pattern->getAssetId(), TRUE); } } $pattern_id = $pattern->getAssetId(); } catch (\Exception $exception) { Loading
tests/src/Functional/SchemaUpdateTest.php +11 −5 Original line number Diff line number Diff line Loading @@ -63,6 +63,8 @@ class SchemaUpdateTest extends PatternkitBrowserTestBase { $assert = $this->assertSession(); $page = $this->getSession()->getPage(); $pattern_name = '[Patternkit] Example with Reference'; $account = $this->drupalCreateUser([ 'access administration pages', 'configure any layout', Loading @@ -73,16 +75,20 @@ class SchemaUpdateTest extends PatternkitBrowserTestBase { // Override the Node layout and place a patternkit block. $this->drupalGet('node/1/layout'); $page->clickLink('Add block'); $assert->linkExists('[Patternkit] Example'); $page->clickLink('[Patternkit] Example'); $assert->linkExists($pattern_name); $page->clickLink($pattern_name); // Confirm the block doesn't initially prompt for updating. $assert->pageTextNotContains('Update pattern schema and template from'); // Fill in the hidden fields manually since fillField() won't find hidden // fields. $page->find('css', '#schema_instance_config') ->setValue(json_encode([ 'text' => 'Pattern block title', 'nested_reference' => [ 'formatted_text' => 'Pattern block body', 'image_url' => '', 'hidden' => 'Hidden text', ], ])); $page->pressButton('Add block'); $page->pressButton('Save layout'); Loading