function ContextHandlerTest::providerTestFilterPluginDefinitionsByContexts
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/Plugin/ContextHandlerTest.php \Drupal\Tests\Core\Plugin\ContextHandlerTest::providerTestFilterPluginDefinitionsByContexts()
- 8.9.x core/tests/Drupal/Tests/Core/Plugin/ContextHandlerTest.php \Drupal\Tests\Core\Plugin\ContextHandlerTest::providerTestFilterPluginDefinitionsByContexts()
- 11.x core/tests/Drupal/Tests/Core/Plugin/ContextHandlerTest.php \Drupal\Tests\Core\Plugin\ContextHandlerTest::providerTestFilterPluginDefinitionsByContexts()
Provides data for testFilterPluginDefinitionsByContexts().
File
-
core/
tests/ Drupal/ Tests/ Core/ Plugin/ ContextHandlerTest.php, line 194
Class
- ContextHandlerTest
- @coversDefaultClass \Drupal\Core\Plugin\Context\ContextHandler @group Plugin
Namespace
Drupal\Tests\Core\PluginCode
public static function providerTestFilterPluginDefinitionsByContexts() {
$data = [];
$plugins = [];
// No context and no plugins, no plugins available.
$data[] = [
FALSE,
$plugins,
[],
];
$plugins = [
'expected_array_plugin' => [],
'expected_object_plugin' => new ContextAwarePluginDefinition(),
];
// No context, all plugins available.
$data[] = [
FALSE,
$plugins,
$plugins,
];
$plugins = [
'expected_array_plugin' => [
'context_definitions' => [],
],
'expected_object_plugin' => new ContextAwarePluginDefinition(),
];
// No context, all plugins available.
$data[] = [
FALSE,
$plugins,
$plugins,
];
$plugins = [
'expected_array_plugin' => [
'context_definitions' => [
'context1' => new ContextDefinition('string'),
],
],
'expected_object_plugin' => (new ContextAwarePluginDefinition())->addContextDefinition('context1', new ContextDefinition('string')),
];
// Missing context, no plugins available.
$data[] = [
FALSE,
$plugins,
[],
];
// Satisfied context, all plugins available.
$data[] = [
TRUE,
$plugins,
$plugins,
];
$mismatched_context_definition = (new ContextDefinition('expected_data_type'))->setConstraints([
'mismatched_constraint_name' => 'mismatched_constraint_value',
]);
$plugins = [
'expected_array_plugin' => [
'context_definitions' => [
'context1' => $mismatched_context_definition,
],
],
'expected_object_plugin' => (new ContextAwarePluginDefinition())->addContextDefinition('context1', $mismatched_context_definition),
];
// Mismatched constraints, no plugins available.
$data[] = [
TRUE,
$plugins,
[],
];
$optional_mismatched_context_definition = clone $mismatched_context_definition;
$optional_mismatched_context_definition->setRequired(FALSE);
$plugins = [
'expected_array_plugin' => [
'context_definitions' => [
'context1' => $optional_mismatched_context_definition,
],
],
'expected_object_plugin' => (new ContextAwarePluginDefinition())->addContextDefinition('context1', $optional_mismatched_context_definition),
];
// Optional mismatched constraint, all plugins available.
$data[] = [
FALSE,
$plugins,
$plugins,
];
$expected_context_definition = (new ContextDefinition('string'))->setConstraints([
'Blank' => [],
]);
$plugins = [
'expected_array_plugin' => [
'context_definitions' => [
'context1' => $expected_context_definition,
],
],
'expected_object_plugin' => (new ContextAwarePluginDefinition())->addContextDefinition('context1', $expected_context_definition),
];
// Satisfied context with constraint, all plugins available.
$data[] = [
TRUE,
$plugins,
$plugins,
];
$optional_expected_context_definition = clone $expected_context_definition;
$optional_expected_context_definition->setRequired(FALSE);
$plugins = [
'expected_array_plugin' => [
'context_definitions' => [
'context1' => $optional_expected_context_definition,
],
],
'expected_object_plugin' => (new ContextAwarePluginDefinition())->addContextDefinition('context1', $optional_expected_context_definition),
];
// Optional unsatisfied context, all plugins available.
$data[] = [
FALSE,
$plugins,
$plugins,
];
$unexpected_context_definition = (new ContextDefinition('unexpected_data_type'))->setConstraints([
'mismatched_constraint_name' => 'mismatched_constraint_value',
]);
$plugins = [
'unexpected_array_plugin' => [
'context_definitions' => [
'context1' => $unexpected_context_definition,
],
],
'expected_array_plugin' => [
'context_definitions' => [
'context2' => new ContextDefinition('string'),
],
],
'unexpected_object_plugin' => (new ContextAwarePluginDefinition())->addContextDefinition('context1', $unexpected_context_definition),
'expected_object_plugin' => (new ContextAwarePluginDefinition())->addContextDefinition('context2', new ContextDefinition('string')),
];
// Context only satisfies two plugins.
$data[] = [
TRUE,
$plugins,
[
'expected_array_plugin' => $plugins['expected_array_plugin'],
'expected_object_plugin' => $plugins['expected_object_plugin'],
],
];
return $data;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.