diff --git a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityChangedConstraintValidator.php b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityChangedConstraintValidator.php index 71825bd..edfdeed 100644 --- a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityChangedConstraintValidator.php +++ b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityChangedConstraintValidator.php @@ -22,7 +22,6 @@ class EntityChangedConstraintValidator extends ConstraintValidator { public function validate($entity, Constraint $constraint) { // Non-entities can be passed and should not be validated. if (isset($entity) && $entity instanceof EntityInterface) { - /** @var \Drupal\Core\Entity\EntityInterface $entity */ if (!$entity->isNew()) { $saved_entity = \Drupal::entityManager()->getStorage($entity->getEntityTypeId())->loadUnchanged($entity->id()); // A change to any other translation must add a violation to the current diff --git a/core/lib/Drupal/Core/Plugin/Plugin/DataType/DataTypeWrapper.php b/core/lib/Drupal/Core/Plugin/Plugin/DataType/DataTypeWrapper.php index 3c11f61..171bed6 100644 --- a/core/lib/Drupal/Core/Plugin/Plugin/DataType/DataTypeWrapper.php +++ b/core/lib/Drupal/Core/Plugin/Plugin/DataType/DataTypeWrapper.php @@ -1,7 +1,7 @@ setConstraints(['Bundle' => [0 => 'page', 1 => 'article']]); - $data = []; - $data[] = [[], [], TRUE]; - $data[] = [[], [$requirement_any], FALSE]; - $data[] = [[], [$requirement_optional], TRUE]; - $data[] = [[], [$requirement_any, $requirement_optional], FALSE]; - $data[] = [[$context_any], [$requirement_any], TRUE]; - $data[] = [[$context_constraint_mismatch], [$requirement_specific], FALSE]; - $data[] = [[$context_datatype_mismatch], [$requirement_specific], FALSE]; - $data[] = [[$context_specific], [$requirement_specific], TRUE]; - $data[] = [[$context_specific], [$requirement_complex], TRUE]; - $data[] = [[$context_constraint_mismatch], [$requirement_complex], TRUE]; + $data = array(); + $data[] = array(array(), array(), TRUE); + $data[] = array(array(), array($requirement_any), FALSE); + $data[] = array(array(), array($requirement_optional), TRUE); + $data[] = array(array(), array($requirement_any, $requirement_optional), FALSE); + $data[] = array(array($context_any), array($requirement_any), TRUE); + $data[] = array(array($context_constraint_mismatch), array($requirement_specific), FALSE); + $data[] = array(array($context_datatype_mismatch), array($requirement_specific), FALSE); + $data[] = array(array($context_specific), array($requirement_specific), TRUE); + $data[] = array(array($context_specific), array($requirement_complex), TRUE); + $data[] = array(array($context_constraint_mismatch), array($requirement_complex), TRUE); return $data; } @@ -136,11 +136,17 @@ public function providerTestGetMatchingContexts() { $context_specific = new Context($context_definition_specific); $data = []; - $data[] = [[], $requirement_any]; - $data[] = [[$context_any], $requirement_any]; - $data[] = [[$context_specific], $requirement_specific]; - $data[] = [[$context_constraint_mismatch], $requirement_specific, []]; - $data[] = [[$context_datatype_mismatch], $requirement_specific, []]; + // No context will return no valid contexts. + $data[] = array(array(), $requirement_any); + // A context with a generic matching requirement is valid. + $data[] = array(array($context_any), $requirement_any); + // A context with a specific matching requirement is valid. + $data[] = array(array($context_specific), $requirement_specific); + + // A context with a mismatched constraint is invalid. + $data[] = array(array($context_constraint_mismatch), $requirement_specific, array()); + // A context with a mismatched datatype is invalid. + $data[] = array(array($context_datatype_mismatch), $requirement_specific, array()); return $data; } @@ -196,12 +202,23 @@ public function providerTestFilterPluginDefinitionsByContexts() { 'no_context_1' => [], 'no_context_2' => [], ]; - // No context and no plugins, no plugins available. + // No context, plugins without contextual requirements available. $data[] = [[], $plugins, ['no_context_1' => $plugins['no_context_1'], 'no_context_2' => $plugins['no_context_2']]]; + // Node context, plugins without contextual requirements and node specific + // contexts available. $data[] = [['node' => new Context($node)], $plugins, ['needs_node' => $plugins['needs_node'], 'needs_page' => $plugins['needs_page'], 'needs_article' => $plugins['needs_article'], 'needs_page_or_article' => $plugins['needs_page_or_article'], 'no_context_1' => $plugins['no_context_1'], 'no_context_2' => $plugins['no_context_2']]]; + // Node of bundle page contexts, plugins without contextual requirements and + // node or page specific bundle contexts available. $data[] = [['page' => new Context($page)], $plugins, ['needs_node' => $plugins['needs_node'], 'needs_page' => $plugins['needs_page'], 'needs_page_or_article' => $plugins['needs_page_or_article'], 'no_context_1' => $plugins['no_context_1'], 'no_context_2' => $plugins['no_context_2']]]; + // Node of bundle article contexts, plugins without contextual requirements + // and node or article specific bundle contexts available. $data[] = [['article' => new Context($article)], $plugins, ['needs_node' => $plugins['needs_node'], 'needs_article' => $plugins['needs_article'], 'needs_page_or_article' => $plugins['needs_page_or_article'], 'no_context_1' => $plugins['no_context_1'], 'no_context_2' => $plugins['no_context_2']]]; + // Nodes of bundles page and article contexts, plugins without contextual + // requirements and node, page or article specific bundle contexts + // available. $data[] = [['page' => new Context($page), 'article' => new Context($article)], $plugins, ['needs_node' => $plugins['needs_node'], 'needs_page' => $plugins['needs_page'], 'needs_article' => $plugins['needs_article'], 'needs_page_or_article' => $plugins['needs_page_or_article'], 'no_context_1' => $plugins['no_context_1'], 'no_context_2' => $plugins['no_context_2']]]; + // User context, plugins without contextual requirements and user specific + // contexts available. $data[] = [['user' => new Context($user)], $plugins, ['needs_user' => $plugins['needs_user'], 'no_context_1' => $plugins['no_context_1'], 'no_context_2' => $plugins['no_context_2']]]; return $data; }