РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1140 of 1361 menu

Метод submit класса HttpBrowser

Метод submit класса HttpBrowser отправляет форму на сервер. Первым параметром передаётся объект формы Form, вторым - массив значений полей формы. После отправки браузер переходит по адресу действия формы и возвращает объект Crawler с ответом.

Синтаксис

$browser->submit(Form $form, array $values = [])

Пример

Давайте получим форму по имени article и отправим её:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { return $this->render('article/index.html.twig'); } } ?>

Теперь напишем тест, который находит форму и отправляет её:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testSubmit(): void { $client = static::createClient(); $crawler = $client->request('GET', '/article'); $form = $crawler->selectButton('submit')->form(); $crawler = $client->submit($form, [ 'name' => 'abcde', ]); $this->assertResponseIsSuccessful(); } } ?>

Пример

Давайте отправим форму с несколькими полями и проверим результат:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testSubmitFields(): void { $client = static::createClient(); $crawler = $client->request('GET', '/article'); $form = $crawler->selectButton('save')->form(); $crawler = $client->submit($form, [ 'name' => 'article', 'text' => 'hello', 'active' => true, ]); $this->assertSelectorTextContains('h1', 'article'); } } ?>

Результат выполнения кода:

"article"

Смотрите также

  • класс HttpBrowser,
    который имитирует браузер в тестах
  • метод request,
    который выполняет HTTP-запрос
  • метод click,
    который кликает по ссылке
  • метод followRedirect,
    который следует по редиректу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить