requestHandler = $request_handler; $this->generate = $submission_generate; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('webform.request'), $container->get('webform_submission.generate') ); } /** * Returns a webform to add a new test submission to a webform. * * @param \Symfony\Component\HttpFoundation\Request $request * The current request. * * @return array * The webform submission webform. */ public function testForm(Request $request) { /** @var \Drupal\webform\WebformInterface $webform */ /** @var \Drupal\Core\Entity\EntityInterface $source_entity */ list($webform, $source_entity) = $this->requestHandler->getWebformEntities(); $values = []; // Set source entity type and id. if ($source_entity) { $values['entity_type'] = $source_entity->getEntityTypeId(); $values['entity_id'] = $source_entity->id(); } if ($request->query->get('webform_id') == $webform->id()) { return $webform->getSubmissionForm($values); } // Generate date. $values['data'] = $this->generate->getData($webform); return $webform->getSubmissionForm($values); } /** * Route title callback. * * @param \Drupal\webform\WebformInterface $webform * The webform. * * @return string * The webform label as a render array. */ public function title(WebformInterface $webform) { /** @var \Drupal\webform\WebformInterface $webform */ /** @var \Drupal\Core\Entity\EntityInterface $source_entity */ list($webform, $source_entity) = $this->requestHandler->getWebformEntities(); return $this->t('Testing %title webform', ['%title' => ($source_entity) ? $source_entity->label() : $webform->label()]); } }