/**
  * @covers ::__construct
  * @covers ::createInstance
  *
  * @expectedException \Drupal\Component\Plugin\Exception\PluginNotFoundException
  */
 public function testCreateInstanceWithNonExistingPluginAndOverriddenDiscovery()
 {
     $plugin_manager = $this->getMock(PluginManagerInterface::class);
     $this->decoratedDiscovery = $this->getMock(DiscoveryInterface::class);
     $this->decoratedFactory = $plugin_manager;
     $this->sut = new PluginManagerDecorator($plugin_manager, $this->decoratedDiscovery);
     $plugin_id = $this->randomMachineName();
     $this->decoratedDiscovery->expects($this->once())->method('getDefinitions')->willReturn([]);
     $this->decoratedFactory->expects($this->never())->method('createInstance');
     $this->sut->createInstance($plugin_id);
 }
 /**
  * Tests getHandler() without an override.
  */
 public function testGetHandlerNoOverride()
 {
     $this->setupMockedFactory();
     $item = [];
     $item['table'] = 'test_table';
     $item['field'] = 'test_field';
     $views_data = [];
     $views_data['test_field']['test']['id'] = 'test_id';
     $this->viewsData->expects($this->once())->method('get')->with('test_table')->willReturn($views_data);
     $plugin = $this->getMock('Drupal\\views\\Plugin\\views\\ViewsHandlerInterface');
     $this->factory->expects($this->once())->method('createInstance')->with('test_id')->willReturn($plugin);
     $result = $this->handlerManager->getHandler($item);
     $this->assertSame($plugin, $result);
 }
 /**
  * @covers \Drupal\Core\Menu\LocalActionManager::getActionsForRoute()
  *
  * @dataProvider getActionsForRouteProvider
  */
 public function testGetActionsForRoute($route_appears, array $plugin_definitions, array $expected_actions)
 {
     $this->discovery->expects($this->any())->method('getDefinitions')->will($this->returnValue($plugin_definitions));
     $map = array();
     foreach ($plugin_definitions as $plugin_id => $plugin_definition) {
         $plugin = $this->getMock('Drupal\\Core\\Menu\\LocalActionInterface');
         $plugin->expects($this->any())->method('getRouteName')->will($this->returnValue($plugin_definition['route_name']));
         $plugin->expects($this->any())->method('getRouteParameters')->will($this->returnValue(isset($plugin_definition['route_parameters']) ? $plugin_definition['route_parameters'] : array()));
         $plugin->expects($this->any())->method('getTitle')->will($this->returnValue($plugin_definition['title']));
         $this->controllerResolver->expects($this->any())->method('getArguments')->with($this->request, array($plugin, 'getTitle'))->will($this->returnValue(array()));
         $plugin->expects($this->any())->method('getWeight')->will($this->returnValue($plugin_definition['weight']));
         $this->controllerResolver->expects($this->any())->method('getArguments')->with($this->request, array($plugin, 'getTitle'))->will($this->returnValue(array()));
         $map[] = array($plugin_id, array(), $plugin);
     }
     $this->factory->expects($this->any())->method('createInstance')->will($this->returnValueMap($map));
     $this->assertEquals($expected_actions, $this->localActionManager->getActionsForRoute($route_appears));
 }
 /**
  * Tests the access checking of the getContextualLinksArrayByGroup method.
  *
  * @see \Drupal\Core\Menu\ContextualLinkManager::getContextualLinksArrayByGroup()
  */
 public function testGetContextualLinksArrayByGroupAccessCheck()
 {
     $definitions = array('test_plugin1' => array('id' => 'test_plugin1', 'class' => '\\Drupal\\Core\\Menu\\ContextualLinkDefault', 'title' => 'Plugin 1', 'weight' => 0, 'group' => 'group1', 'route_name' => 'test_route', 'options' => array()), 'test_plugin2' => array('id' => 'test_plugin2', 'class' => '\\Drupal\\Core\\Menu\\ContextualLinkDefault', 'title' => 'Plugin 2', 'weight' => 2, 'group' => 'group1', 'route_name' => 'test_route2', 'options' => array('key' => 'value')));
     $this->pluginDiscovery->expects($this->once())->method('getDefinitions')->will($this->returnValue($definitions));
     $this->accessManager->expects($this->any())->method('checkNamedRoute')->will($this->returnValueMap(array(array('test_route', array('key' => 'value'), $this->account, FALSE, TRUE), array('test_route2', array('key' => 'value'), $this->account, FALSE, FALSE))));
     // Set up mocking of the plugin factory.
     $map = array();
     foreach ($definitions as $plugin_id => $definition) {
         $plugin = $this->getMock('Drupal\\Core\\Menu\\ContextualLinkInterface');
         $plugin->expects($this->any())->method('getRouteName')->will($this->returnValue($definition['route_name']));
         $plugin->expects($this->any())->method('getTitle')->will($this->returnValue($definition['title']));
         $plugin->expects($this->any())->method('getWeight')->will($this->returnValue($definition['weight']));
         $plugin->expects($this->any())->method('getOptions')->will($this->returnValue($definition['options']));
         $map[] = array($plugin_id, array(), $plugin);
     }
     $this->factory->expects($this->any())->method('createInstance')->will($this->returnValueMap($map));
     $result = $this->contextualLinkManager->getContextualLinksArrayByGroup('group1', array('key' => 'value'));
     // Ensure that access checking was respected.
     $this->assertTrue(isset($result['test_plugin1']));
     $this->assertFalse(isset($result['test_plugin2']));
 }