public function FormExampleTestCase::testTutorials in Examples for Developers 7
Same name and namespace in other branches
- 6 form_example/form_example.test \FormExampleTestCase::testTutorials()
Test each tutorial.
File
- form_example/
form_example.test, line 36 - Test file for form_example module.
Class
- FormExampleTestCase
- Default test case for the form_example module.
Code
public function testTutorials() {
// Tutorial #1
$this
->drupalGet('examples/form_example/tutorial');
$this
->assertText(t('#9'));
// #2
$this
->drupalPost('examples/form_example/tutorial/2', array(
'name' => t('name'),
), t('Submit'));
// #4
$this
->drupalPost('examples/form_example/tutorial/4', array(
'first' => t('firstname'),
'last' => t('lastname'),
), t('Submit'));
$this
->drupalPost('examples/form_example/tutorial/4', array(), t('Submit'));
$this
->assertText(t('First name field is required'));
$this
->assertText(t('Last name field is required'));
// #5
$this
->drupalPost('examples/form_example/tutorial/5', array(
'first' => t('firstname'),
'last' => t('lastname'),
), t('Submit'));
$this
->assertText(t('Please enter your first name'));
$this
->drupalPost('examples/form_example/tutorial/4', array(), t('Submit'));
$this
->assertText(t('First name field is required'));
$this
->assertText(t('Last name field is required'));
// #6
$this
->drupalPost('examples/form_example/tutorial/6', array(
'first' => t('firstname'),
'last' => t('lastname'),
'year_of_birth' => 1955,
), t('Submit'));
$this
->assertNoText(t('Enter a year between 1900 and 2000'));
$this
->drupalPost('examples/form_example/tutorial/6', array(
'first' => t('firstname'),
'last' => t('lastname'),
'year_of_birth' => 1855,
), t('Submit'));
$this
->assertText(t('Enter a year between 1900 and 2000'));
// #7
$this
->drupalPost('examples/form_example/tutorial/7', array(
'first' => t('firstname'),
'last' => t('lastname'),
'year_of_birth' => 1955,
), t('Submit'));
$this
->assertText(t('The form has been submitted. name="firstname lastname", year of birth=1955'));
$this
->drupalPost('examples/form_example/tutorial/7', array(
'first' => t('firstname'),
'last' => t('lastname'),
'year_of_birth' => 1855,
), t('Submit'));
$this
->assertText(t('Enter a year between 1900 and 2000'));
// Test tutorial #8.
$this
->drupalPost('examples/form_example/tutorial/8', array(
'first' => t('firstname'),
'last' => t('lastname'),
'year_of_birth' => 1955,
), t('Next >>'));
$this
->drupalPost(NULL, array(
'color' => t('green'),
), t('<< Back'));
$this
->drupalPost(NULL, array(), t('Next >>'));
$this
->drupalPost(NULL, array(
'color' => t('red'),
), t('Submit'));
$this
->assertText(t('The form has been submitted. name="firstname lastname", year of birth=1955'));
$this
->assertText(t('And the favorite color is red'));
// #9
$url = 'examples/form_example/tutorial/9';
for ($i = 1; $i <= 4; $i++) {
if ($i > 1) {
// Later steps of multistep form take NULL.
$url = NULL;
}
$this
->drupalPost($url, array(
"name[{$i}][first]" => "firstname {$i}",
"name[{$i}][last]" => "lastname {$i}",
"name[{$i}][year_of_birth]" => 1950 + $i,
), t('Add another name'));
$this
->assertText(t('Name #@num', array(
'@num' => $i + 1,
)));
}
// Now remove the last name added (#5).
$this
->drupalPost(NULL, array(), t('Remove latest name'));
$this
->assertNoText("Name #5");
$this
->drupalPost(NULL, array(), t('Submit'));
$this
->assertText('Form 9 has been submitted');
for ($i = 1; $i <= 4; $i++) {
$this
->assertText(t('@num: firstname @num lastname @num (@year)', array(
'@num' => $i,
'@year' => 1950 + $i,
)));
}
// #10
$url = 'examples/form_example/tutorial/10';
$this
->drupalPost($url, array(), t('Submit'));
$this
->assertText(t('No file was uploaded.'));
// Get sample images.
$images = $this
->drupalGetTestFiles('image');
foreach ($images as $image) {
$this
->drupalPost($url, array(
'files[file]' => drupal_realpath($image->uri),
), t('Submit'));
$this
->assertText(t('The form has been submitted and the image has been saved, filename: @filename.', array(
'@filename' => $image->filename,
)));
}
// #11: Confirmation form.
// Try to submit without a name.
$url = 'examples/form_example/tutorial/11';
$this
->drupalPost($url, array(), t('Submit'));
$this
->assertText('Name field is required.');
// Verify that we can enter a name and get the confirmation form.
$this
->drupalPost($url, array(
'name' => t('name 1'),
), t('Submit'));
$this
->assertText(t('Is this really your name?'));
$this
->assertFieldById('edit-name', 'name 1');
// Check the 'yes' button.
$confirmation_text = t("Confirmation form submission recieved. According to your submission your name is '@name'", array(
'@name' => 'name 1',
));
$url = 'examples/form_example/tutorial/11/confirm/name%201';
$this
->drupalPost($url, array(), t('This is my name'));
$this
->assertText($confirmation_text);
// Check the 'no' button.
$this
->drupalGet($url);
$this
->clickLink(t('Nope, not my name'));
$this
->assertNoText($confirmation_text);
}