acceptance_test.php
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· PHP 代码 · 共 1,633 行 · 第 1/5 页
PHP
1,633 行
$this->assertText('add=[A]');
}
function testFormSubmissionByName() {
$this->get($this->samples() . 'form.html');
$this->setFieldByName('a', 'A');
$this->assertTrue($this->clickSubmitByName('go'));
$this->assertText('a=[A]');
}
function testFormSubmissionByNameAndAdditionalParameters() {
$this->get($this->samples() . 'form.html');
$this->assertTrue($this->clickSubmitByName('go', array('add' => 'A')));
$this->assertText('go=[Go!]');
$this->assertText('add=[A]');
}
function testFormSubmissionBySubmitButtonLabeledSubmit() {
$this->get($this->samples() . 'form.html');
$this->assertTrue($this->clickSubmitByName('test'));
$this->assertText('test=[Submit]');
}
function testFormSubmissionWithIds() {
$this->get($this->samples() . 'form.html');
$this->assertFieldById(1, '');
$this->assertFieldById(2, 'Default text');
$this->assertFieldById(3, '');
$this->assertFieldById(4, 'd1');
$this->assertFieldById(5, false);
$this->assertFieldById(6, 'on');
$this->assertFieldById(8, 'g3');
$this->assertFieldById(11, 2);
$this->setFieldById(1, 'aaa');
$this->setFieldById(2, 'bbb');
$this->setFieldById(3, 'ccc');
$this->setFieldById(4, 'D2');
$this->setFieldById(5, 'on');
$this->setFieldById(6, false);
$this->setFieldById(8, 'g2');
$this->setFieldById(11, 'H1');
$this->assertTrue($this->clickSubmitById(99));
$this->assertText('a=[aaa]');
$this->assertText('b=[bbb]');
$this->assertText('c=[ccc]');
$this->assertText('d=[d2]');
$this->assertText('e=[on]');
$this->assertNoText('f=[');
$this->assertText('g=[g2]');
$this->assertText('h=[1]');
$this->assertText('go=[Go!]');
}
function testFormSubmissionWithLabels() {
$this->get($this->samples() . 'form.html');
$this->assertField('Text A', '');
$this->assertField('Text B', 'Default text');
$this->assertField('Text area C', '');
$this->assertField('Selection D', 'd1');
$this->assertField('Checkbox E', false);
$this->assertField('Checkbox F', 'on');
$this->assertField('3', 'g3');
$this->assertField('Selection H', 2);
$this->setField('Text A', 'aaa');
$this->setField('Text B', 'bbb');
$this->setField('Text area C', 'ccc');
$this->setField('Selection D', 'D2');
$this->setField('Checkbox E', 'on');
$this->setField('Checkbox F', false);
$this->setField('2', 'g2');
$this->setField('Selection H', 'H1');
$this->clickSubmit('Go!');
$this->assertText('a=[aaa]');
$this->assertText('b=[bbb]');
$this->assertText('c=[ccc]');
$this->assertText('d=[d2]');
$this->assertText('e=[on]');
$this->assertNoText('f=[');
$this->assertText('g=[g2]');
$this->assertText('h=[1]');
$this->assertText('go=[Go!]');
}
function testSettingCheckboxWithBooleanTrueSetsUnderlyingValue() {
$this->get($this->samples() . 'form.html');
$this->setField('Checkbox E', true);
$this->assertField('Checkbox E', 'on');
$this->clickSubmit('Go!');
$this->assertText('e=[on]');
}
function testFormSubmissionWithMixedPostAndGet() {
$this->get($this->samples() . 'form_with_mixed_post_and_get.html');
$this->setField('Text A', 'Hello');
$this->assertTrue($this->clickSubmit('Go!'));
$this->assertText('a=[Hello]');
$this->assertText('x=[X]');
$this->assertText('y=[Y]');
}
function testFormSubmissionWithMixedPostAndEncodedGet() {
$this->get($this->samples() . 'form_with_mixed_post_and_get.html');
$this->setField('Text B', 'Hello');
$this->assertTrue($this->clickSubmit('Go encoded!'));
$this->assertText('b=[Hello]');
$this->assertText('x=[X]');
$this->assertText('y=[Y]');
}
function testFormSubmissionWithoutAction() {
$this->get($this->samples() . 'form_without_action.php?test=test');
$this->assertText('_GET : [test]');
$this->assertTrue($this->clickSubmit('Submit Post With Empty Action'));
$this->assertText('_GET : [test]');
$this->assertText('_POST : [test]');
}
function testImageSubmissionByLabel() {
$this->get($this->samples() . 'form.html');
$this->assertImage('Image go!');
$this->assertTrue($this->clickImage('Image go!', 10, 12));
$this->assertText('go_x=[10]');
$this->assertText('go_y=[12]');
}
function testImageSubmissionByLabelWithAdditionalParameters() {
$this->get($this->samples() . 'form.html');
$this->assertTrue($this->clickImage('Image go!', 10, 12, array('add' => 'A')));
$this->assertText('add=[A]');
}
function testImageSubmissionByName() {
$this->get($this->samples() . 'form.html');
$this->assertTrue($this->clickImageByName('go', 10, 12));
$this->assertText('go_x=[10]');
$this->assertText('go_y=[12]');
}
function testImageSubmissionById() {
$this->get($this->samples() . 'form.html');
$this->assertTrue($this->clickImageById(97, 10, 12));
$this->assertText('go_x=[10]');
$this->assertText('go_y=[12]');
}
function testButtonSubmissionByLabel() {
$this->get($this->samples() . 'form.html');
$this->assertTrue($this->clickSubmit('Button go!', 10, 12));
$this->assertPattern('/go=\[ButtonGo\]/s');
}
function testNamelessSubmitSendsNoValue() {
$this->get($this->samples() . 'form_with_unnamed_submit.html');
$this->click('Go!');
$this->assertNoText('Go!');
$this->assertNoText('submit');
}
function testNamelessImageSendsXAndYValues() {
$this->get($this->samples() . 'form_with_unnamed_submit.html');
$this->clickImage('Image go!', 4, 5);
$this->assertNoText('ImageGo');
$this->assertText('x=[4]');
$this->assertText('y=[5]');
}
function testNamelessButtonSendsNoValue() {
$this->get($this->samples() . 'form_with_unnamed_submit.html');
$this->click('Button Go!');
$this->assertNoText('ButtonGo');
}
function testSelfSubmit() {
$this->get($this->samples() . 'self_form.php');
$this->assertNoText('[Submitted]');
$this->assertNoText('[Wrong form]');
$this->assertTrue($this->clickSubmit());
$this->assertText('[Submitted]');
$this->assertNoText('[Wrong form]');
$this->assertTitle('Test of form self submission');
}
function testSelfSubmitWithParameters() {
$this->get($this->samples() . 'self_form.php');
$this->setFieldByName('visible', 'Resent');
$this->assertTrue($this->clickSubmit());
$this->assertText('[Resent]');
}
function testSettingOfBlankOption() {
$this->get($this->samples() . 'form.html');
$this->assertTrue($this->setFieldByName('d', ''));
$this->clickSubmit('Go!');
$this->assertText('d=[]');
}
function testAssertingFieldValueWithPattern() {
$this->get($this->samples() . 'form.html');
$this->setField('c', 'A very long string');
$this->assertField('c', new PatternExpectation('/very long/'));
}
function testSendingMultipartFormDataEncodedForm() {
$this->get($this->samples() . 'form_data_encoded_form.html');
$this->assertField('Text A', '');
$this->assertField('Text B', 'Default text');
$this->assertField('Text area C', '');
$this->assertField('Selection D', 'd1');
$this->assertField('Checkbox E', false);
$this->assertField('Checkbox F', 'on');
$this->assertField('3', 'g3');
$this->assertField('Selection H', 2);
$this->setField('Text A', 'aaa');
$this->setField('Text B', 'bbb');
$this->setField('Text area C', 'ccc');
$this->setField('Selection D', 'D2');
$this->setField('Checkbox E', 'on');
$this->setField('Checkbox F', false);
$this->setField('2', 'g2');
$this->setField('Selection H', 'H1');
$this->assertTrue($this->clickSubmit('Go!'));
$this->assertText('a=[aaa]');
$this->assertText('b=[bbb]');
$this->assertText('c=[ccc]');
$this->assertText('d=[d2]');
$this->assertText('e=[on]');
$this->assertNoText('f=[');
$this->assertText('g=[g2]');
$this->assertText('h=[1]');
$this->assertText('go=[Go!]');
}
function testSettingVariousBlanksInFields() {
$this->get($this->samples() . 'form_with_false_defaults.html');
$this->assertField('Text A', '');
$this->setField('Text A', '0');
$this->assertField('Text A', '0');
$this->assertField('Text area B', '');
$this->setField('Text area B', '0');
$this->assertField('Text area B', '0');
$this->assertField('Text area C', " ");
$this->assertField('Selection D', '');
$this->setField('Selection D', 'D2');
$this->assertField('Selection D', 'D2');
$this->setField('Selection D', 'D3');
$this->assertField('Selection D', '0');
$this->setField('Selection D', 'D4');
$this->assertField('Selection D', '?');
$this->assertField('Checkbox E', '');
$this->assertField('Checkbox F', 'on');
$this->assertField('Checkbox G', '0');
$this->assertField('Checkbox H', '?');
$this->assertFieldByName('i', 'on');
$this->setFieldByName('i', '');
$this->assertFieldByName('i', '');
$this->setFieldByName('i', '0');
$this->assertFieldByName('i', '0');
$this->setFieldByName('i', '?');
$this->assertFieldByName('i', '?');
}
function testSubmissionOfBlankFields() {
$this->get($this->samples() . 'form_with_false_defaults.html');
$this->setField('Text A', '');
$this->setField('Text area B', '');
$this->setFieldByName('i', '');
$this->click('Go!');
$this->assertText('a=[]');
$this->assertText('b=[]');
$this->assertPattern('/c=\[ \]/');
$this->assertText('d=[]');
$this->assertText('e=[]');
$this->assertText('i=[]');
}
function testSubmissionOfEmptyValues() {
$this->get($this->samples() . 'form_with_false_defaults.html');
$this->setField('Selection D', 'D2');
$this->click('Go!');
$this->assertText('a=[]');
$this->assertText('b=[]');
$this->assertText('d=[D2]');
$this->assertText('f=[on]');
$this->assertText('i=[on]');
}
function testSubmissionOfZeroes() {
$this->get($this->samples() . 'form_with_false_defaults.html');
$this->setField('Text A', '0');
$this->setField('Text area B', '0');
$this->setField('Selection D', 'D3');
$this->setFieldByName('i', '0');
$this->click('Go!');
$this->assertText('a=[0]');
$this->assertText('b=[0]');
$this->assertText('d=[0]');
$this->assertText('g=[0]');
$this->assertText('i=[0]');
}
function testSubmissionOfQuestionMarks() {
$this->get($this->samples() . 'form_with_false_defaults.html');
$this->setField('Text A', '?');
$this->setField('Text area B', '?');
$this->setField('Selection D', 'D4');
$this->setFieldByName('i', '?');
$this->click('Go!');
$this->assertText('a=[?]');
$this->assertText('b=[?]');
$this->assertText('d=[?]');
$this->assertText('h=[?]');
$this->assertText('i=[?]');
}
function testSubmissionOfHtmlEncodedValues() {
$this->get($this->samples() . 'form_with_tricky_defaults.html');
$this->assertField('Text A', '&\'"<>');
$this->assertField('Text B', '"');
$this->assertField('Text area C', '&\'"<>');
$this->assertField('Selection D', "'");
$this->assertField('Checkbox E', '&\'"<>');
$this->assertField('Checkbox F', false);
$this->assertFieldByname('i', "'");
$this->click('Go!');
$this->assertText('a=[&\'"<>, "]');
$this->assertText('c=[&\'"<>]');
$this->assertText("d=[']");
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?