symblog-docs icon indicating copy to clipboard operation
symblog-docs copied to clipboard

PHPUnit with Forms

Open jaimesuez opened this issue 13 years ago • 1 comments

I get the following error:

There was 1 error:

1) Blogger\BlogBundle\Tests\Controller\PageControllerTest::testContact
InvalidArgumentException: The form field "blogger_blogbundle_enquirytype[name]" does not exist

/Users/jaimesuez/Sites/symblog/vendor/symfony/src/Symfony/Component/DomCrawler/Form.php:358
/Users/jaimesuez/Sites/symblog/src/Blogger/BlogBundle/Tests/Controller/PageControllerTest.php:48

Issue related with this code:

<?php

public function testContact()
{
    $client = static::createClient();

    $crawler = $client->request('GET', '/contact');

    $this->assertEquals(1, $crawler->filter('h1:contains("Contact symblog")')->count());

    // Select based on button value, or id or name for buttons
    $form = $crawler->selectButton('Submit')->form();

    $form['blogger_blogbundle_enquirytype[name]']       = 'name';
    $form['blogger_blogbundle_enquirytype[email]']      = '[email protected]';
    $form['blogger_blogbundle_enquirytype[subject]']    = 'Subject';
    $form['blogger_blogbundle_enquirytype[body]']       = 'The comment body must be at least 50 characters long as there is a validation constrain on the Enquiry entity';

    $crawler = $client->submit($form);

    $this->assertEquals(1, $crawler->filter('.blogger-notice:contains("Your contact enquiry was successfully sent. Thank you!")')->count());
}

jaimesuez avatar Feb 11 '12 13:02 jaimesuez

@jaimesuez I faced the same issue a few minutes ago and I kept wondering why.

It seems like we can just change it into this.

    $form['contact[name]']       = 'name';
    $form['contact[email]']      = '[email protected]';
    $form['contact[subject]']    = 'Subject';
    $form['contact[body]']       = 'The comment body must be at least 50 characters long as there is a validation constrain on the Enquiry entity';

In my case, it works just fine after I changed it. I'm not sure if there's something that we should do (or missing) to make the original code working.

@dsyph3r any idea?

makusu avatar Feb 15 '12 10:02 makusu