getSession(); $session->visit($this->pathTo('/issue212.html')); $field = $this->findById('poney-button'); $this->assertEquals('poney', $field->getValue()); } public function testBasicForm() { $this->getSession()->visit($this->pathTo('/basic_form.html')); $webAssert = $this->getAssertSession(); $page = $this->getSession()->getPage(); $this->assertEquals('Basic Form Page', $webAssert->elementExists('css', 'h1')->getText()); $firstname = $webAssert->fieldExists('first_name'); $lastname = $webAssert->fieldExists('lastn'); $this->assertEquals('Firstname', $firstname->getValue()); $this->assertEquals('Lastname', $lastname->getValue()); $firstname->setValue('Konstantin'); $page->fillField('last_name', 'Kudryashov'); $this->assertEquals('Konstantin', $firstname->getValue()); $this->assertEquals('Kudryashov', $lastname->getValue()); $page->findButton('Reset')->click(); $this->assertEquals('Firstname', $firstname->getValue()); $this->assertEquals('Lastname', $lastname->getValue()); $firstname->setValue('Konstantin'); $page->fillField('last_name', 'Kudryashov'); $page->findButton('Save')->click(); if ($this->safePageWait(5000, 'document.getElementById("first") !== null')) { $this->assertEquals('Anket for Konstantin', $webAssert->elementExists('css', 'h1')->getText()); $this->assertEquals('Firstname: Konstantin', $webAssert->elementExists('css', '#first')->getText()); $this->assertEquals('Lastname: Kudryashov', $webAssert->elementExists('css', '#last')->getText()); } } /** * @dataProvider formSubmitWaysDataProvider */ public function testFormSubmitWays($submitVia) { $session = $this->getSession(); $session->visit($this->pathTo('/basic_form.html')); $page = $session->getPage(); $webAssert = $this->getAssertSession(); $firstname = $webAssert->fieldExists('first_name'); $firstname->setValue('Konstantin'); $page->findButton($submitVia)->click(); if ($this->safePageWait(5000, 'document.getElementById("first") !== null')) { $this->assertEquals('Firstname: Konstantin', $webAssert->elementExists('css', '#first')->getText()); } else { $this->fail('Form was never submitted'); } } public function formSubmitWaysDataProvider() { return array( array('Save'), array('input-type-image'), array('button-without-type'), array('button-type-submit'), ); } public function testFormSubmit() { $session = $this->getSession(); $session->visit($this->pathTo('/basic_form.html')); $webAssert = $this->getAssertSession(); $webAssert->fieldExists('first_name')->setValue('Konstantin'); $webAssert->elementExists('xpath', 'descendant-or-self::form[1]')->submit(); if ($this->safePageWait(5000, 'document.getElementById("first") !== null')) { $this->assertEquals('Firstname: Konstantin', $webAssert->elementExists('css', '#first')->getText()); }; } public function testFormSubmitWithoutButton() { $session = $this->getSession(); $session->visit($this->pathTo('/form_without_button.html')); $webAssert = $this->getAssertSession(); $webAssert->fieldExists('first_name')->setValue('Konstantin'); $webAssert->elementExists('xpath', 'descendant-or-self::form[1]')->submit(); if ($this->safePageWait(5000, 'document.getElementById("first") !== null')) { $this->assertEquals('Firstname: Konstantin', $webAssert->elementExists('css', '#first')->getText()); }; } public function testBasicGetForm() { $this->getSession()->visit($this->pathTo('/basic_get_form.php')); $webAssert = $this->getAssertSession(); $page = $this->getSession()->getPage(); $this->assertEquals('Basic Get Form Page', $webAssert->elementExists('css', 'h1')->getText()); $search = $webAssert->fieldExists('q'); $search->setValue('some#query'); $page->pressButton('Find'); $div = $webAssert->elementExists('css', 'div'); $this->assertEquals('some#query', $div->getText()); } public function testAdvancedForm() { $this->getSession()->visit($this->pathTo('/advanced_form.html')); $page = $this->getSession()->getPage(); $page->fillField('first_name', 'ever'); $page->fillField('last_name', 'zet'); $page->pressButton('Register'); $this->assertContains('no file', $page->getContent()); $this->getSession()->visit($this->pathTo('/advanced_form.html')); $webAssert = $this->getAssertSession(); $page = $this->getSession()->getPage(); $this->assertEquals('ADvanced Form Page', $webAssert->elementExists('css', 'h1')->getText()); $firstname = $webAssert->fieldExists('first_name'); $lastname = $webAssert->fieldExists('lastn'); $email = $webAssert->fieldExists('Your email:'); $select = $webAssert->fieldExists('select_number'); $sex = $webAssert->fieldExists('sex'); $maillist = $webAssert->fieldExists('mail_list'); $agreement = $webAssert->fieldExists('agreement'); $notes = $webAssert->fieldExists('notes'); $about = $webAssert->fieldExists('about'); $this->assertEquals('Firstname', $firstname->getValue()); $this->assertEquals('Lastname', $lastname->getValue()); $this->assertEquals('your@email.com', $email->getValue()); $this->assertEquals('20', $select->getValue()); $this->assertEquals('w', $sex->getValue()); $this->assertEquals('original notes', $notes->getValue()); $this->assertEquals('on', $maillist->getValue()); $this->assertNull($agreement->getValue()); $this->assertTrue($maillist->isChecked()); $this->assertFalse($agreement->isChecked()); $agreement->check(); $this->assertTrue($agreement->isChecked()); $maillist->uncheck(); $this->assertFalse($maillist->isChecked()); $select->selectOption('thirty'); $this->assertEquals('30', $select->getValue()); $sex->selectOption('m'); $this->assertEquals('m', $sex->getValue()); $notes->setValue('new notes'); $this->assertEquals('new notes', $notes->getValue()); $about->attachFile($this->mapRemoteFilePath(__DIR__.'/../../web-fixtures/some_file.txt')); $button = $page->findButton('Register'); $this->assertNotNull($button); $page->fillField('first_name', 'Foo "item"'); $page->fillField('last_name', 'Bar'); $page->fillField('Your email:', 'ever.zet@gmail.com'); $this->assertEquals('Foo "item"', $firstname->getValue()); $this->assertEquals('Bar', $lastname->getValue()); $button->press(); if ($this->safePageWait(5000, 'document.getElementsByTagName("title") !== null')) { $out = <<assertContains($out, $page->getContent()); } } public function testMultiInput() { $this->getSession()->visit($this->pathTo('/multi_input_form.html')); $page = $this->getSession()->getPage(); $webAssert = $this->getAssertSession(); $this->assertEquals('Multi input Test', $webAssert->elementExists('css', 'h1')->getText()); $first = $webAssert->fieldExists('First'); $second = $webAssert->fieldExists('Second'); $third = $webAssert->fieldExists('Third'); $this->assertEquals('tag1', $first->getValue()); $this->assertSame('tag2', $second->getValue()); $this->assertEquals('tag1', $third->getValue()); $first->setValue('tag2'); $this->assertEquals('tag2', $first->getValue()); $this->assertSame('tag2', $second->getValue()); $this->assertEquals('tag1', $third->getValue()); $second->setValue('one'); $this->assertEquals('tag2', $first->getValue()); $this->assertSame('one', $second->getValue()); $third->setValue('tag3'); $this->assertEquals('tag2', $first->getValue()); $this->assertSame('one', $second->getValue()); $this->assertEquals('tag3', $third->getValue()); $button = $page->findButton('Register'); $this->assertNotNull($button); $button->press(); $space = ' '; $out = <<assertContains($out, $page->getContent()); } public function testAdvancedFormSecondSubmit() { $this->getSession()->visit($this->pathTo('/advanced_form.html')); $page = $this->getSession()->getPage(); $button = $page->findButton('Login'); $this->assertNotNull($button); $button->press(); $toSearch = array( "'agreement' = 'off',", "'submit' = 'Login',", 'no file', ); $pageContent = $page->getContent(); foreach ($toSearch as $searchString) { $this->assertContains($searchString, $pageContent); } } public function testSubmitEmptyTextarea() { $this->getSession()->visit($this->pathTo('/empty_textarea.html')); $page = $this->getSession()->getPage(); $page->pressButton('Save'); $toSearch = array( "'textarea' = '',", "'submit' = 'Save',", 'no file', ); $pageContent = $page->getContent(); foreach ($toSearch as $searchString) { $this->assertContains($searchString, $pageContent); } } }