list($method, $uri, $parameters) = $b->click('submit4');
$t->is($uri, '/myform4?submit=submit4', '->click() can click on submit button anywhere in a form');
list($method, $uri, $parameters) = $b->click('image submit');
$t->is($uri, '/myform4?submit_image=image', '->click() can click on image button in forms');
list($method, $uri, $parameters) = $b->click('submit', array('text_default_value' => 'myvalue', 'text' => 'myothervalue', 'textarea' => 'mycontent', 'select' => 'last', 'select_multiple' => array('first', 'selected', 'last'), 'article' => array('title' => 'mytitle', 'category' => array(1, 2, 3), 'or' => array('much' => array('longer' => 'long')))));
$t->is($parameters['text_default_value'], 'myvalue', '->click() takes an array of parameters as its second argument');
$t->is($parameters['text'], 'myothervalue', '->click() can override input fields');
$t->is($parameters['textarea'], 'mycontent', '->click() can override textarea fields');
$t->is($parameters['select'], 'last', '->click() can override select fields');
$t->is($parameters['select_multiple'], array('first', 'selected', 'last'), '->click() can override select (multiple) fields');
$t->is($parameters['article']['title'], 'mytitle', '->click() can override array fields');
$t->is($parameters['article']['category'], array(1, 2, 3), '->click() can override array fields');
$t->is($parameters['article']['or']['much']['longer'], 'long', '->click() recognizes array names');
// ->setField()
$t->diag('->setField()');
list($method, $uri, $parameters) = $b->setField('text_default_value', 'myvalue')->setField('text', 'myothervalue')->setField('article[title]', 'mytitle')->setField('myarray[0]', 'value0')->setField('myarray[1]', 'value1')->setField('myarray[2]', 'value2')->click('submit');
$t->is($parameters['text_default_value'], 'myvalue', '->setField() overrides default form field values');
$t->is($parameters['text'], 'myothervalue', '->setField() overrides default form field values');
$t->is($parameters['article']['title'], 'mytitle', '->setField() overrides default form field values');
$t->is($parameters['myarray'], array('value0', 'value1', 'value2'), '->setField() overrides default form field values');
list($method, $uri, $parameters) = $b->setField('text_default_value', 'myvalue')->setField('text', 'myothervalue')->click('submit', array('text_default_value' => 'yourvalue', 'text' => 'yourothervalue'));
$t->is($parameters['text_default_value'], 'yourvalue', '->setField() is overriden by parameters from click call');
$t->is($parameters['text'], 'yourothervalue', '->setField() is overriden by parameters from click call');
// ->call()
$t->diag('->call()');
$b->call('https://app-test/index.phpmain/index');
$t->is($b->getDefaultServerArray('HTTPS'), 'on', '->call() detects secure requests');
$t->is($b->getDefaultServerArray('HTTPS'), 'on', '->call() preserves SSL information between requests');
$b->call('http://app-test/index.phpmain/index');
$t->is($b->getDefaultServerArray('HTTPS'), null, '->call() preserve non-secure requests');
// file uploads