public function testViewWithoutBatchForm() { $this->parameterResolver->expects($this->once())->method('resolveApi')->will($this->returnValue(false)); $event = $this->createViewEventMock(); $event->expects($this->once())->method('getView')->will($this->returnValue($view = $this->createViewMock())); $view->expects($this->once())->method('getData')->will($this->returnValue(['grid' => $gridView = $this->createGridViewMock()])); $this->formFactory->expects($this->once())->method('create')->with($this->identicalTo(GridBatchType::class), $this->isNull(), $this->identicalTo(['grid' => $gridView]))->will($this->returnValue($batchForm = $this->createFormMock())); $batchForm->expects($this->once())->method('createView')->will($this->returnValue($batchFormView = $this->createFormViewMock())); $gridView->expects($this->once())->method('setBatchForm')->with($this->identicalTo($batchFormView)); $view->expects($this->once())->method('setTemplateVar')->with($this->identicalTo('grid'))->will($this->returnSelf()); $view->expects($this->once())->method('setData')->with($this->identicalTo($gridView)); $this->subscriber->onView($event); }
/** * @param ViewEvent $event */ public function onView(ViewEvent $event) { if ($this->getParameterResolver()->resolveApi()) { return; } $view = $event->getView(); $data = $grid = $view->getData(); if (is_array($data) && isset($data['grid']) && $data['grid'] instanceof GridViewInterface) { $grid = $data['grid']; } if (!$grid instanceof GridViewInterface) { return; } if ($grid->getBatchForm() === null) { $batchForm = !isset($data['batch_form']) || !$data['batch_form'] instanceof FormInterface ? $this->formFactory->create(GridBatchType::class, null, ['grid' => $grid]) : $data['batch_form']; $grid->setBatchForm($batchForm->createView()); } $themes = $this->getParameterResolver()->resolveThemes(); if (!empty($themes)) { $this->formRenderer->setTheme($grid->getForm(), $themes); $this->formRenderer->setTheme($grid->getBatchForm(), $themes); } $view->setTemplateVar('grid')->setData($grid); }