/** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->controllerResolver = $this->getMock('Drupal\\Core\\Controller\\ControllerResolverInterface'); $this->themeManager = $this->getMock('Drupal\\Core\\Theme\\ThemeManagerInterface'); $this->elementInfo = $this->getMock('Drupal\\Core\\Render\\ElementInfoManagerInterface'); $this->elementInfo->expects($this->any())->method('getInfo')->willReturnCallback(function ($type) { switch ($type) { case 'details': $info = ['#theme_wrappers' => ['details']]; break; case 'link': $info = ['#theme' => 'link']; break; case 'markup': $info = ['#pre_render' => [[Markup::class, 'ensureMarkupIsSafe']]]; break; default: $info = []; } $info['#defaults_loaded'] = TRUE; return $info; }); $this->requestStack = new RequestStack(); $request = new Request(); $request->server->set('REQUEST_TIME', $_SERVER['REQUEST_TIME']); $this->requestStack->push($request); $this->cacheFactory = $this->getMock('Drupal\\Core\\Cache\\CacheFactoryInterface'); $this->cacheContextsManager = $this->getMockBuilder('Drupal\\Core\\Cache\\Context\\CacheContextsManager')->disableOriginalConstructor()->getMock(); $current_user_role =& $this->currentUserRole; $this->cacheContextsManager->expects($this->any())->method('convertTokensToKeys')->willReturnCallback(function ($context_tokens) use(&$current_user_role) { $keys = []; foreach ($context_tokens as $context_id) { switch ($context_id) { case 'user.roles': $keys[] = 'r.' . $current_user_role; break; case 'languages:language_interface': $keys[] = 'en'; break; case 'theme': $keys[] = 'stark'; break; default: $keys[] = $context_id; } } return new ContextCacheKeys($keys, new CacheableMetadata()); }); $this->renderCache = new RenderCache($this->requestStack, $this->cacheFactory, $this->cacheContextsManager); $this->renderer = new Renderer($this->controllerResolver, $this->themeManager, $this->elementInfo, $this->renderCache, $this->requestStack, $this->rendererConfig); $container = new ContainerBuilder(); $container->set('cache_contexts_manager', $this->cacheContextsManager); $container->set('render_cache', $this->renderCache); $container->set('renderer', $this->renderer); \Drupal::setContainer($container); }
/** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->moduleHandler = $this->getMock('Drupal\\Core\\Extension\\ModuleHandlerInterface'); $this->formCache = $this->getMock('Drupal\\Core\\Form\\FormCacheInterface'); $this->cache = $this->getMock('Drupal\\Core\\Cache\\CacheBackendInterface'); $this->urlGenerator = $this->getMock('Drupal\\Core\\Routing\\UrlGeneratorInterface'); $this->classResolver = $this->getClassResolverStub(); $this->elementInfo = $this->getMockBuilder('\\Drupal\\Core\\Render\\ElementInfoManagerInterface')->disableOriginalConstructor()->getMock(); $this->elementInfo->expects($this->any())->method('getInfo')->will($this->returnCallback(array($this, 'getInfo'))); $this->csrfToken = $this->getMockBuilder('Drupal\\Core\\Access\\CsrfTokenGenerator')->disableOriginalConstructor()->getMock(); $this->kernel = $this->getMockBuilder('\\Drupal\\Core\\DrupalKernel')->disableOriginalConstructor()->getMock(); $this->account = $this->getMock('Drupal\\Core\\Session\\AccountInterface'); $this->themeManager = $this->getMock('Drupal\\Core\\Theme\\ThemeManagerInterface'); $this->request = new Request(); $this->eventDispatcher = $this->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface'); $this->requestStack = new RequestStack(); $this->requestStack->push($this->request); $this->logger = $this->getMock('Drupal\\Core\\Logger\\LoggerChannelInterface'); $form_error_handler = $this->getMock('Drupal\\Core\\Form\\FormErrorHandlerInterface'); $this->formValidator = $this->getMockBuilder('Drupal\\Core\\Form\\FormValidator')->setConstructorArgs([$this->requestStack, $this->getStringTranslationStub(), $this->csrfToken, $this->logger, $form_error_handler])->setMethods(NULL)->getMock(); $this->formSubmitter = $this->getMockBuilder('Drupal\\Core\\Form\\FormSubmitter')->setConstructorArgs(array($this->requestStack, $this->urlGenerator))->setMethods(array('batchGet', 'drupalInstallationAttempted'))->getMock(); $this->root = dirname(dirname(substr(__DIR__, 0, -strlen(__NAMESPACE__)))); $this->formBuilder = new FormBuilder($this->formValidator, $this->formSubmitter, $this->formCache, $this->moduleHandler, $this->eventDispatcher, $this->requestStack, $this->classResolver, $this->elementInfo, $this->themeManager, $this->csrfToken); }