Skip to content
Snippets Groups Projects
Commit fb076854 authored by jrockowitz's avatar jrockowitz
Browse files

Issue #3448906: Improve roles support

parent d70d5402
No related branches found
No related tags found
No related merge requests found
Pipeline #179057 passed with warnings
...@@ -117,6 +117,12 @@ class SchemaDotOrgEntityReferenceOverrideManager implements SchemaDotOrgEntityRe ...@@ -117,6 +117,12 @@ class SchemaDotOrgEntityReferenceOverrideManager implements SchemaDotOrgEntityRe
$element['override']['#' . $key] = $value; $element['override']['#' . $key] = $value;
} }
} }
// Ensure that #options includes the #default_value to #options.
if (isset($element['override']['#options'])
&& !empty($element['override']['#default_value'])) {
$element['override']['#options'][$element['override']['#default_value']] = $element['override']['#default_value'];
}
} }
/** /**
......
...@@ -4,6 +4,7 @@ declare(strict_types=1); ...@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Drupal\Tests\schemadotorg_entity_reference_override\Functional; namespace Drupal\Tests\schemadotorg_entity_reference_override\Functional;
use Drupal\node\Entity\Node;
use Drupal\Tests\schemadotorg\Functional\SchemaDotOrgBrowserTestBase; use Drupal\Tests\schemadotorg\Functional\SchemaDotOrgBrowserTestBase;
/** /**
...@@ -54,15 +55,41 @@ class SchemaDotOrgEntityReferenceOverrideTest extends SchemaDotOrgBrowserTestBas ...@@ -54,15 +55,41 @@ class SchemaDotOrgEntityReferenceOverrideTest extends SchemaDotOrgBrowserTestBas
$this->createSchemaEntity('node', 'Person'); $this->createSchemaEntity('node', 'Person');
$this->createSchemaEntity('node', 'Organization'); $this->createSchemaEntity('node', 'Organization');
$person_node = Node::create([
'type' => 'person',
'title' => 'John Smith',
]);
$person_node->save();
$organization_node = Node::create([
'type' => 'organization',
'title' => 'Organization',
'schema_member' => [
[
'target_id' => $person_node->id(),
'override' => 'President',
],
],
]);
$organization_node->save();
$this->drupalLogin($this->rootUser); $this->drupalLogin($this->rootUser);
/* ********************************************************************** */ /* ********************************************************************** */
// Check the the entity reference override text field is a select menu. // Check that the entity reference override text field is a select menu.
$this->drupalGet('node/add/organization'); $this->drupalGet('node/add/organization');
$assert->selectExists('schema_member[0][override]'); $assert->selectExists('schema_member[0][override]');
$assert->optionExists('schema_member[0][override]', 'Employee'); $assert->optionExists('schema_member[0][override]', 'Employee');
$assert->optionExists('schema_member[0][override]', 'Manager'); $assert->optionExists('schema_member[0][override]', 'Manager');
// Check that #options includes the #default_value to #options.
$this->drupalGet('node/' . $organization_node->id() . '/edit');
$assert->selectExists('schema_member[0][override]');
$assert->optionExists('schema_member[0][override]', 'Employee');
$assert->optionExists('schema_member[0][override]', 'Manager');
$assert->optionExists('schema_member[0][override]', 'President');
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment