acceptance_test.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 1,633 行 · 第 1/5 页
SVN-BASE
1,633 行
<?php// $Id: acceptance_test.php 1700 2008-03-24 16:17:48Z lastcraft $require_once(dirname(__FILE__) . '/../autorun.php');require_once(dirname(__FILE__) . '/../compatibility.php');require_once(dirname(__FILE__) . '/../browser.php');require_once(dirname(__FILE__) . '/../web_tester.php');require_once(dirname(__FILE__) . '/../unit_tester.php');class SimpleTestAcceptanceTest extends WebTestCase { function samples() { return 'http://www.lastcraft.com/test/'; }}class TestOfLiveBrowser extends UnitTestCase { function samples() { return SimpleTestAcceptanceTest::samples(); } function testGet() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $this->assertTrue($browser->get($this->samples() . 'network_confirm.php')); $this->assertPattern('/target for the SimpleTest/', $browser->getContent()); $this->assertPattern('/Request method.*?<dd>GET<\/dd>/', $browser->getContent()); $this->assertEqual($browser->getTitle(), 'Simple test target file'); $this->assertEqual($browser->getResponseCode(), 200); $this->assertEqual($browser->getMimeType(), 'text/html'); } function testPost() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $this->assertTrue($browser->post($this->samples() . 'network_confirm.php')); $this->assertPattern('/target for the SimpleTest/', $browser->getContent()); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/', $browser->getContent()); } function testAbsoluteLinkFollowing() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $browser->get($this->samples() . 'link_confirm.php'); $this->assertTrue($browser->clickLink('Absolute')); $this->assertPattern('/target for the SimpleTest/', $browser->getContent()); } function testRelativeEncodedeLinkFollowing() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $browser->get($this->samples() . 'link_confirm.php'); $this->assertTrue($browser->clickLink("m鋜c阬 kiek'eboe")); $this->assertPattern('/target for the SimpleTest/', $browser->getContent()); } function testRelativeLinkFollowing() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $browser->get($this->samples() . 'link_confirm.php'); $this->assertTrue($browser->clickLink('Relative')); $this->assertPattern('/target for the SimpleTest/', $browser->getContent()); } function testUnifiedClickLinkClicking() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $browser->get($this->samples() . 'link_confirm.php'); $this->assertTrue($browser->click('Relative')); $this->assertPattern('/target for the SimpleTest/', $browser->getContent()); } function testIdLinkFollowing() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $browser->get($this->samples() . 'link_confirm.php'); $this->assertTrue($browser->clickLinkById(1)); $this->assertPattern('/target for the SimpleTest/', $browser->getContent()); } function testCookieReading() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $browser->get($this->samples() . 'set_cookies.php'); $this->assertEqual($browser->getCurrentCookieValue('session_cookie'), 'A'); $this->assertEqual($browser->getCurrentCookieValue('short_cookie'), 'B'); $this->assertEqual($browser->getCurrentCookieValue('day_cookie'), 'C'); } function testSimpleSubmit() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $browser->get($this->samples() . 'form.html'); $this->assertTrue($browser->clickSubmit('Go!')); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/', $browser->getContent()); $this->assertPattern('/go=\[Go!\]/', $browser->getContent()); } function testUnifiedClickCanSubmit() { $browser = &new SimpleBrowser(); $browser->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); $browser->get($this->samples() . 'form.html'); $this->assertTrue($browser->click('Go!')); $this->assertPattern('/go=\[Go!\]/', $browser->getContent()); }}class TestRadioFields extends SimpleTestAcceptanceTest { function testSetFieldAsInteger() { $this->get($this->samples() . 'form_with_radio_buttons.html'); $this->assertTrue($this->setField('tested_field', 2)); $this->clickSubmitByName('send'); $this->assertEqual($this->getUrl(), $this->samples() . 'form_with_radio_buttons.html?tested_field=2&send=click+me'); } function testSetFieldAsString() { $this->get($this->samples() . 'form_with_radio_buttons.html'); $this->assertTrue($this->setField('tested_field', '2')); $this->clickSubmitByName('send'); $this->assertEqual($this->getUrl(), $this->samples() . 'form_with_radio_buttons.html?tested_field=2&send=click+me'); }}class TestOfLiveFetching extends SimpleTestAcceptanceTest { function setUp() { $this->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); } function testFormWithArrayBasedInputs() { $this->get($this->samples() . 'form_with_array_based_inputs.php'); $this->setField('value[]', '3', '1'); $this->setField('value[]', '4', '2'); $this->clickSubmit('Go'); $this->assertPattern('/QUERY_STRING : value%5B%5D=3&value%5B%5D=4&submit=Go/'); } function testFormWithQuotedValues() { $this->get($this->samples() . 'form_with_quoted_values.php'); $this->assertField('a', 'default'); $this->assertFieldById('text_field', 'default'); $this->clickSubmit('Go'); $this->assertPattern('/a=default&submit=Go/'); } function testGet() { $this->assertTrue($this->get($this->samples() . 'network_confirm.php')); $this->assertEqual($this->getUrl(), $this->samples() . 'network_confirm.php'); $this->assertText('target for the SimpleTest'); $this->assertPattern('/Request method.*?<dd>GET<\/dd>/'); $this->assertTitle('Simple test target file'); $this->assertTitle(new PatternExpectation('/target file/')); $this->assertResponse(200); $this->assertMime('text/html'); $this->assertHeader('connection', 'close'); $this->assertHeader('connection', new PatternExpectation('/los/')); } function testSlowGet() { $this->assertTrue($this->get($this->samples() . 'slow_page.php')); } function testTimedOutGet() { $this->setConnectionTimeout(1); $this->ignoreErrors(); $this->assertFalse($this->get($this->samples() . 'slow_page.php')); } function testPost() { $this->assertTrue($this->post($this->samples() . 'network_confirm.php')); $this->assertText('target for the SimpleTest'); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/'); } function testGetWithData() { $this->get($this->samples() . 'network_confirm.php', array("a" => "aaa")); $this->assertPattern('/Request method.*?<dd>GET<\/dd>/'); $this->assertText('a=[aaa]'); } function testPostWithData() { $this->post($this->samples() . 'network_confirm.php', array("a" => "aaa")); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/'); $this->assertText('a=[aaa]'); } function testPostWithRecursiveData() { $this->post($this->samples() . 'network_confirm.php', array("a" => "aaa")); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/'); $this->assertText('a=[aaa]'); $this->post($this->samples() . 'network_confirm.php', array("a[aa]" => "aaa")); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/'); $this->assertText('a=[aa=[aaa]]'); $this->post($this->samples() . 'network_confirm.php', array("a[aa][aaa]" => "aaaa")); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/'); $this->assertText('a=[aa=[aaa=[aaaa]]]'); $this->post($this->samples() . 'network_confirm.php', array("a" => array("aa" => "aaa"))); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/'); $this->assertText('a=[aa=[aaa]]'); $this->post($this->samples() . 'network_confirm.php', array("a" => array("aa" => array("aaa" => "aaaa")))); $this->assertPattern('/Request method.*?<dd>POST<\/dd>/'); $this->assertText('a=[aa=[aaa=[aaaa]]]'); } function testRelativeGet() { $this->get($this->samples() . 'link_confirm.php'); $this->assertTrue($this->get('network_confirm.php')); $this->assertText('target for the SimpleTest'); } function testRelativePost() { $this->post($this->samples() . 'link_confirm.php'); $this->assertTrue($this->post('network_confirm.php')); $this->assertText('target for the SimpleTest'); }}class TestOfLinkFollowing extends SimpleTestAcceptanceTest { function setUp() { $this->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); } function testLinkAssertions() { $this->get($this->samples() . 'link_confirm.php'); $this->assertLink('Absolute', $this->samples() . 'network_confirm.php'); $this->assertLink('Absolute', new PatternExpectation('/confirm/')); $this->assertClickable('Absolute'); } function testAbsoluteLinkFollowing() { $this->get($this->samples() . 'link_confirm.php'); $this->assertTrue($this->clickLink('Absolute')); $this->assertText('target for the SimpleTest'); } function testRelativeLinkFollowing() { $this->get($this->samples() . 'link_confirm.php'); $this->assertTrue($this->clickLink('Relative')); $this->assertText('target for the SimpleTest'); } function testLinkIdFollowing() { $this->get($this->samples() . 'link_confirm.php'); $this->assertLinkById(1); $this->assertTrue($this->clickLinkById(1)); $this->assertText('target for the SimpleTest'); } function testAbsoluteUrlBehavesAbsolutely() { $this->get($this->samples() . 'link_confirm.php'); $this->get('http://www.lastcraft.com'); $this->assertText('No guarantee of quality is given or even intended'); } function testRelativeUrlRespectsBaseTag() { $this->get($this->samples() . 'base_tag/base_link.html'); $this->click('Back to test pages'); $this->assertTitle('Simple test target file'); }}class TestOfLivePageLinkingWithMinimalLinks extends SimpleTestAcceptanceTest { function setUp() { $this->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); } function testClickToExplicitelyNamedSelfReturns() { $this->get($this->samples() . 'front_controller_style/a_page.php'); $this->assertEqual($this->getUrl(), $this->samples() . 'front_controller_style/a_page.php'); $this->assertTitle('Simple test page with links'); $this->assertLink('Self'); $this->clickLink('Self'); $this->assertTitle('Simple test page with links'); } function testClickToMissingPageReturnsToSamePage() { $this->get($this->samples() . 'front_controller_style/a_page.php'); $this->clickLink('No page'); $this->assertTitle('Simple test page with links'); $this->assertText('[action=no_page]'); } function testClickToBareActionReturnsToSamePage() { $this->get($this->samples() . 'front_controller_style/a_page.php'); $this->clickLink('Bare action'); $this->assertTitle('Simple test page with links'); $this->assertText('[action=]'); } function testClickToSingleQuestionMarkReturnsToSamePage() { $this->get($this->samples() . 'front_controller_style/a_page.php'); $this->clickLink('Empty query'); $this->assertTitle('Simple test page with links'); } function testClickToEmptyStringReturnsToSamePage() { $this->get($this->samples() . 'front_controller_style/a_page.php'); $this->clickLink('Empty link'); $this->assertTitle('Simple test page with links'); } function testClickToSingleDotGoesToCurrentDirectory() { $this->get($this->samples() . 'front_controller_style/a_page.php'); $this->clickLink('Current directory'); $this->assertTitle( 'Simple test front controller', '%s -> index.php needs to be set as a default web server home page'); } function testClickBackADirectoryLevel() { $this->get($this->samples() . 'front_controller_style/'); $this->clickLink('Down one'); $this->assertPattern('|Index of .*?/test|i'); }}class TestOfLiveFrontControllerEmulation extends SimpleTestAcceptanceTest { function setUp() { $this->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion()); } function testJumpToNamedPage() { $this->get($this->samples() . 'front_controller_style/'); $this->assertText('Simple test front controller'); $this->clickLink('Index'); $this->assertResponse(200);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?