form_test.php

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· PHP 代码 · 共 323 行 · 第 1/2 页

PHP
323
字号
                'name' => 'go',
                'alt' => 'Go!',
                'id' => '9')));
        $this->assertTrue($form->hasImage(new SimpleByLabel('Go!')));
        $this->assertEqual(
                $form->submitImage(new SimpleByLabel('Go!'), 100, 101),
                new SimpleGetEncoding(array('go.x' => 100, 'go.y' => 101)));
        $this->assertTrue($form->hasImage(new SimpleByName('go')));
        $this->assertEqual(
                $form->submitImage(new SimpleByName('go'), 100, 101),
                new SimpleGetEncoding(array('go.x' => 100, 'go.y' => 101)));
        $this->assertTrue($form->hasImage(new SimpleById(9)));
        $this->assertEqual(
                $form->submitImage(new SimpleById(9), 100, 101),
                new SimpleGetEncoding(array('go.x' => 100, 'go.y' => 101)));
    }
    
    function testImageSubmitButtonWithAdditionalData() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $form->addWidget(new SimpleImageSubmitTag(array(
                'type' => 'image',
                'src' => 'source.jpg',
                'name' => 'go',
                'alt' => 'Go!')));
        $this->assertEqual(
                $form->submitImage(new SimpleByLabel('Go!'), 100, 101, array('a' => 'A')),
                new SimpleGetEncoding(array('go.x' => 100, 'go.y' => 101, 'a' => 'A')));
    }
    
    function testButtonTag() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('http://host'));
        $widget = &new SimpleButtonTag(
                array('type' => 'submit', 'name' => 'go', 'value' => 'Go', 'id' => '9'));
        $widget->addContent('Go!');
        $form->addWidget($widget);
        $this->assertTrue($form->hasSubmit(new SimpleByName('go')));
        $this->assertTrue($form->hasSubmit(new SimpleByLabel('Go!')));
        $this->assertEqual(
                $form->submitButton(new SimpleByName('go')),
                new SimpleGetEncoding(array('go' => 'Go')));
        $this->assertEqual(
                $form->submitButton(new SimpleByLabel('Go!')),
                new SimpleGetEncoding(array('go' => 'Go')));
        $this->assertEqual(
                $form->submitButton(new SimpleById(9)),
                new SimpleGetEncoding(array('go' => 'Go')));
    }
    
    function testMultipleFieldsWithSameNameSubmitted() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $input = &new SimpleTextTag(array('name' => 'elements[]', 'value' => '1'));
        $form->addWidget($input);
        $input = &new SimpleTextTag(array('name' => 'elements[]', 'value' => '2'));
        $form->addWidget($input);
        $form->setField(new SimpleByLabelOrName('elements[]'), '3', 1);
        $form->setField(new SimpleByLabelOrName('elements[]'), '4', 2);
		$submit = $form->submit();
        $this->assertEqual(count($submit->_request), 2);
        $this->assertIdentical($submit->_request[0], new SimpleEncodedPair('elements[]', '3'));
        $this->assertIdentical($submit->_request[1], new SimpleEncodedPair('elements[]', '4'));
    }
    
    function testSingleSelectFieldSubmitted() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $select = &new SimpleSelectionTag(array('name' => 'a'));
        $select->addTag(new SimpleOptionTag(
                array('value' => 'aaa', 'selected' => '')));
        $form->addWidget($select);
        $this->assertIdentical(
                $form->submit(),
                new SimpleGetEncoding(array('a' => 'aaa')));
    }
    
    function testSingleSelectFieldSubmittedWithPost() {
        $form = &new SimpleForm(new SimpleFormTag(array('method' => 'post')), $this->page('htp://host'));
        $select = &new SimpleSelectionTag(array('name' => 'a'));
        $select->addTag(new SimpleOptionTag(
                array('value' => 'aaa', 'selected' => '')));
        $form->addWidget($select);
        $this->assertIdentical(
                $form->submit(),
                new SimplePostEncoding(array('a' => 'aaa')));
    }
    
    function testUnchecked() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $form->addWidget(new SimpleCheckboxTag(
                array('name' => 'me', 'type' => 'checkbox')));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), false);
        $this->assertTrue($form->setField(new SimpleByName('me'), 'on'));
        $this->assertEqual($form->getValue(new SimpleByName('me')), 'on');
        $this->assertFalse($form->setField(new SimpleByName('me'), 'other'));
        $this->assertEqual($form->getValue(new SimpleByName('me')), 'on');
    }
    
    function testChecked() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $form->addWidget(new SimpleCheckboxTag(
                array('name' => 'me', 'value' => 'a', 'type' => 'checkbox', 'checked' => '')));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), 'a');
        $this->assertTrue($form->setField(new SimpleByName('me'), 'a'));
        $this->assertEqual($form->getValue(new SimpleByName('me')), 'a');
        $this->assertTrue($form->setField(new SimpleByName('me'), false));
        $this->assertEqual($form->getValue(new SimpleByName('me')), false);
    }
    
    function testSingleUncheckedRadioButton() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $form->addWidget(new SimpleRadioButtonTag(
                array('name' => 'me', 'value' => 'a', 'type' => 'radio')));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), false);
        $this->assertTrue($form->setField(new SimpleByName('me'), 'a'));
        $this->assertEqual($form->getValue(new SimpleByName('me')), 'a');
    }
    
    function testSingleCheckedRadioButton() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $form->addWidget(new SimpleRadioButtonTag(
                array('name' => 'me', 'value' => 'a', 'type' => 'radio', 'checked' => '')));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), 'a');
        $this->assertFalse($form->setField(new SimpleByName('me'), 'other'));
    }
    
    function testUncheckedRadioButtons() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $form->addWidget(new SimpleRadioButtonTag(
                array('name' => 'me', 'value' => 'a', 'type' => 'radio')));
        $form->addWidget(new SimpleRadioButtonTag(
                array('name' => 'me', 'value' => 'b', 'type' => 'radio')));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), false);
        $this->assertTrue($form->setField(new SimpleByName('me'), 'a'));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), 'a');
        $this->assertTrue($form->setField(new SimpleByName('me'), 'b'));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), 'b');
        $this->assertFalse($form->setField(new SimpleByName('me'), 'c'));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), 'b');
    }
    
    function testCheckedRadioButtons() {
        $form = &new SimpleForm(new SimpleFormTag(array()), $this->page('htp://host'));
        $form->addWidget(new SimpleRadioButtonTag(
                array('name' => 'me', 'value' => 'a', 'type' => 'radio')));
        $form->addWidget(new SimpleRadioButtonTag(
                array('name' => 'me', 'value' => 'b', 'type' => 'radio', 'checked' => '')));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), 'b');
        $this->assertTrue($form->setField(new SimpleByName('me'), 'a'));
        $this->assertIdentical($form->getValue(new SimpleByName('me')), 'a');
    }
    
    function testMultipleFieldsWithSameKey() {
        $form = &new SimpleForm(new SimpleFormTag(array()),  $this->page('htp://host'));
        $form->addWidget(new SimpleCheckboxTag(
                array('name' => 'a', 'type' => 'checkbox', 'value' => 'me')));
        $form->addWidget(new SimpleCheckboxTag(
                array('name' => 'a', 'type' => 'checkbox', 'value' => 'you')));
        $this->assertIdentical($form->getValue(new SimpleByName('a')), false);
        $this->assertTrue($form->setField(new SimpleByName('a'), 'me'));
        $this->assertIdentical($form->getValue(new SimpleByName('a')), 'me');
    }
}
?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?