mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
ENHANCEMENT Added unit tests for form session messages and session validation, FormTest->testSessionValidationMessage() and FormTest->testSessionSuccessMessage()
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@64236 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
391848f79b
commit
cb31b1b224
@ -186,6 +186,54 @@ class FormTest extends FunctionalTest {
|
||||
);
|
||||
}
|
||||
|
||||
function testSessionValidationMessage() {
|
||||
$this->get('FormTest_Controller');
|
||||
|
||||
$response = $this->submitForm(
|
||||
'Form_Form',
|
||||
null,
|
||||
array(
|
||||
'Email' => 'invalid',
|
||||
// leaving out "Required" field
|
||||
)
|
||||
);
|
||||
$this->assertPartialMatchBySelector(
|
||||
'#Email span.message',
|
||||
array(
|
||||
_t('EmailField.VALIDATION', "Please enter an email address.")
|
||||
),
|
||||
'Formfield validation shows note on field if invalid'
|
||||
);
|
||||
$this->assertPartialMatchBySelector(
|
||||
'#SomeRequiredField span.required',
|
||||
array(
|
||||
sprintf(_t('Form.FIELDISREQUIRED'),'"SomeRequiredField"')
|
||||
),
|
||||
'Required fields show a notification on field when left blank'
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function testSessionSuccessMessage() {
|
||||
$this->get('FormTest_Controller');
|
||||
|
||||
$response = $this->submitForm(
|
||||
'Form_Form',
|
||||
null,
|
||||
array(
|
||||
'Email' => 'test@test.com',
|
||||
'SomeRequiredField' => 'test',
|
||||
)
|
||||
);
|
||||
$this->assertPartialMatchBySelector(
|
||||
'#Form_Form_error',
|
||||
array(
|
||||
'Test save was successful'
|
||||
),
|
||||
'Form->sessionMessage() shows up after reloading the form'
|
||||
);
|
||||
}
|
||||
|
||||
protected function getStubForm() {
|
||||
return new Form(
|
||||
new Controller(),
|
||||
@ -228,4 +276,45 @@ class FormTest_Team extends DataObject implements TestOnly {
|
||||
'Players' => 'FormTest_Player'
|
||||
);
|
||||
}
|
||||
|
||||
class FormTest_Controller extends Controller {
|
||||
static $url_handlers = array(
|
||||
'$Action//$ID/$OtherID' => "handleAction",
|
||||
);
|
||||
|
||||
protected $template = 'BlankPage';
|
||||
|
||||
function Link() {
|
||||
return Controller::join_links('FormTest_Controller', $this->request->latestParam('Action'), $this->request->latestParam('ID'));
|
||||
}
|
||||
|
||||
function Form() {
|
||||
$form = new Form(
|
||||
$this,
|
||||
'Form',
|
||||
new FieldSet(
|
||||
new EmailField('Email'),
|
||||
new TextField('SomeRequiredField'),
|
||||
new CheckboxSetField('Boxes', null, array('1'=>'one','2'=>'two'))
|
||||
),
|
||||
new FieldSet(
|
||||
new FormAction('doSubmit')
|
||||
),
|
||||
new RequiredFields(
|
||||
'Email',
|
||||
'SomeRequiredField'
|
||||
)
|
||||
);
|
||||
return $form;
|
||||
}
|
||||
|
||||
function doSubmit($data, $form, $request) {
|
||||
$form->sessionMessage('Test save was successful', 'good');
|
||||
return $this->redirectBack();
|
||||
}
|
||||
}
|
||||
|
||||
Director::addRules(50, array(
|
||||
'FormTest_Controller' => "FormTest_Controller",
|
||||
));
|
||||
?>
|
Loading…
Reference in New Issue
Block a user