acceptance_test.php

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

PHP
1,633
字号
        
        $this->assertTrue($this->setFrameFocus('Protected redirect'));
        $this->assertResponse(401);
        
        $this->assertTrue($this->setFrameFocusByIndex(1));
        $this->assertResponse(200);
        $this->assertText('Simple test front controller');
        
        $this->assertTrue($this->setFrameFocusByIndex(2));
        $this->assertResponse(200);
        $this->assertLink('2');
        
        $this->assertTrue($this->setFrameFocusByIndex(3));
        $this->assertResponse(200);
        $this->assertLink('Set one to 2');
        
        $this->assertTrue($this->setFrameFocusByIndex(4));
        $this->assertResponse(200);
        $this->assertText('Count: 1');
        
        $this->assertTrue($this->setFrameFocusByIndex(5));
        $this->assertResponse(200);
        $this->assertText('r=rrr');
        
        $this->assertTrue($this->setFrameFocusByIndex(6));
        $this->assertResponse(401);
        
        $this->assertTrue($this->setFrameFocusByIndex(7));
    }
    
    function testReloadingFramesetPage() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->assertText('Count: 1');
        $this->retry();
        $this->assertText('Count: 2');
        $this->retry();
        $this->assertText('Count: 3');
    }
    
    function testReloadingSingleFrameWithCookieCounter() {
        $this->get($this->samples() . 'counting_frameset.html');
        $this->setFrameFocus('a');
        $this->assertText('Count: 1');
        $this->setFrameFocus('b');
        $this->assertText('Count: 2');
        
        $this->setFrameFocus('a');
        $this->retry();
        $this->assertText('Count: 3');
        $this->retry();
        $this->assertText('Count: 4');
        $this->setFrameFocus('b');
        $this->assertText('Count: 2');
    }
    
    function testReloadingFrameWhenUnfocusedReloadsWholeFrameset() {
        $this->get($this->samples() . 'counting_frameset.html');
        $this->setFrameFocus('a');
        $this->assertText('Count: 1');
        $this->setFrameFocus('b');
        $this->assertText('Count: 2');
        
        $this->clearFrameFocus('a');
        $this->retry();
        
        $this->assertTitle('Frameset for testing of SimpleTest');
        $this->setFrameFocus('a');
        $this->assertText('Count: 3');
        $this->setFrameFocus('b');
        $this->assertText('Count: 4');
    }
    
    function testClickingNormalLinkReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickLink('2');
        $this->assertLink('3');
        $this->assertText('Simple test front controller');
    }
    
    function testJumpToNamedPageReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->assertPattern('/Simple test front controller/');
        $this->clickLink('Index');
        $this->assertResponse(200);
        $this->assertText('[action=index]');
        $this->assertText('Count: 1');
    }
    
    function testJumpToUnnamedPageReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickLink('No page');
        $this->assertResponse(200);
        $this->assertText('Simple test front controller');
        $this->assertText('[action=no_page]');
        $this->assertText('Count: 1');
    }
    
    function testJumpToUnnamedPageWithBareParameterReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickLink('Bare action');
        $this->assertResponse(200);
        $this->assertText('Simple test front controller');
        $this->assertText('[action=]');
        $this->assertText('Count: 1');
    }
    
    function testJumpToUnnamedPageWithEmptyQueryReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickLink('Empty query');
        $this->assertResponse(200);
        $this->assertPattern('/Simple test front controller/');
        $this->assertPattern('/raw get data.*?\[\].*?get data/si');
        $this->assertPattern('/Count: 1/');
    }
    
    function testJumpToUnnamedPageWithEmptyLinkReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickLink('Empty link');
        $this->assertResponse(200);
        $this->assertPattern('/Simple test front controller/');
        $this->assertPattern('/raw get data.*?\[\].*?get data/si');
        $this->assertPattern('/Count: 1/');
    }
    
    function testJumpBackADirectoryLevelReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickLink('Down one');
        $this->assertPattern('/index of .*\/test/i');
        $this->assertPattern('/Count: 1/');
    }
    
    function testSubmitToNamedPageReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->assertPattern('/Simple test front controller/');
        $this->clickSubmit('Index');
        $this->assertResponse(200);
        $this->assertText('[action=Index]');
        $this->assertText('Count: 1');
    }
    
    function testSubmitToSameDirectoryReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickSubmit('Same directory');
        $this->assertResponse(200);
        $this->assertText('[action=Same+directory]');
        $this->assertText('Count: 1');
    }
    
    function testSubmitToEmptyActionReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickSubmit('Empty action');
        $this->assertResponse(200);
        $this->assertText('[action=Empty+action]');
        $this->assertText('Count: 1');
    }
    
    function testSubmitToNoActionReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickSubmit('No action');
        $this->assertResponse(200);
        $this->assertText('[action=No+action]');
        $this->assertText('Count: 1');
    }
    
    function testSubmitBackADirectoryLevelReplacesJustThatFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickSubmit('Down one');
        $this->assertPattern('/index of .*\/test/i');
        $this->assertPattern('/Count: 1/');
    }
    
    function testTopLinkExitsFrameset() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->clickLink('Exit the frameset');
        $this->assertTitle('Simple test target file');
    }
    
    function testLinkInOnePageCanLoadAnother() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->assertNoLink('3');
        $this->clickLink('Set one to 2');
        $this->assertLink('3');
        $this->assertNoLink('2');
        $this->assertTitle('Frameset for testing of SimpleTest');
    }
    
    function testFrameWithRelativeLinksRespectsBaseTagForThatPage() {
        $this->get($this->samples() . 'base_tag/frameset.html');
        $this->click('Back to test pages');
        $this->assertTitle('Frameset for testing of SimpleTest');
        $this->assertText('A target for the SimpleTest test suite');
    }
    
    function testRelativeLinkInFrameIsNotAffectedByFramesetBaseTag() {
        $this->get($this->samples() . 'base_tag/frameset_with_base_tag.html');
        $this->assertText('This is page 1');
        $this->click('To page 2');
        $this->assertTitle('Frameset for testing of SimpleTest');
        $this->assertText('This is page 2');
    }
}

class TestOfFrameAuthentication extends SimpleTestAcceptanceTest {
    function setUp() {
        $this->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion());
    }
    
    function testUnauthenticatedFrameSendsChallenge() {
        $this->get($this->samples() . 'protected/');
        $this->setFrameFocus('Protected');
        $this->assertAuthentication('Basic');
        $this->assertRealm('SimpleTest basic authentication');
        $this->assertResponse(401);
    }
    
    function testCanReadFrameFromAlreadyAuthenticatedRealm() {
        $this->get($this->samples() . 'protected/');
        $this->authenticate('test', 'secret');
        $this->get($this->samples() . 'messy_frameset.html');
        $this->setFrameFocus('Protected');
        $this->assertResponse(200);
        $this->assertText('A target for the SimpleTest test suite');
    }
    
    function testCanAuthenticateFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->setFrameFocus('Protected');
        $this->authenticate('test', 'secret');
        $this->assertResponse(200);
        $this->assertText('A target for the SimpleTest test suite');
        $this->clearFrameFocus();
        $this->assertText('Count: 1');
    }
    
    function testCanAuthenticateRedirectedFrame() {
        $this->get($this->samples() . 'messy_frameset.html');
        $this->setFrameFocus('Protected redirect');
        $this->assertResponse(401);
        $this->authenticate('test', 'secret');
        $this->assertResponse(200);
        $this->assertText('A target for the SimpleTest test suite');
        $this->clearFrameFocus();
        $this->assertText('Count: 1');
    }
}

class TestOfNestedFrames extends SimpleTestAcceptanceTest {
    function setUp() {
        $this->addHeader('User-Agent: SimpleTest ' . SimpleTest::getVersion());
    }
    
    function testCanNavigateToSpecificContent() {
        $this->get($this->samples() . 'nested_frameset.html');
        $this->assertTitle('Nested frameset for testing of SimpleTest');
        
        $this->assertPattern('/This is frame A/');
        $this->assertPattern('/This is frame B/');
        $this->assertPattern('/Simple test front controller/');
        $this->assertLink('2');
        $this->assertLink('Set one to 2');
        $this->assertPattern('/Count: 1/');
        $this->assertPattern('/r=rrr/');
        
        $this->setFrameFocus('pair');
        $this->assertPattern('/This is frame A/');
        $this->assertPattern('/This is frame B/');
        $this->assertNoPattern('/Simple test front controller/');
        $this->assertNoLink('2');
        
        $this->setFrameFocus('aaa');
        $this->assertPattern('/This is frame A/');
        $this->assertNoPattern('/This is frame B/');
        
        $this->clearFrameFocus();
        $this->assertResponse(200);
        $this->setFrameFocus('messy');
        $this->assertResponse(200);
        $this->setFrameFocus('Front controller');
        $this->assertResponse(200);
        $this->assertPattern('/Simple test front controller/');
        $this->assertNoLink('2');
    }
    
    function testReloadingFramesetPage() {
        $this->get($this->samples() . 'nested_frameset.html');
        $this->assertPattern('/Count: 1/');
        $this->retry();
        $this->assertPattern('/Count: 2/');
        $this->retry();
        $this->assertPattern('/Count: 3/');
    }
    
    function testRetryingNestedPageOnlyRetriesThatSet() {
        $this->get($this->samples() . 'nested_frameset.html');
        $this->assertPattern('/Count: 1/');
        $this->setFrameFocus('messy');
        $this->retry();
        $this->assertPattern('/Count: 2/');
        $this->setFrameFocus('Counter');
        $this->retry();
        $this->assertPattern('/Count: 3/');
        
        $this->clearFrameFocus();
        $this->setFrameFocus('messy');
        $this->setFrameFocus('Front controller');
        $this->retry();
        
        $this->clearFrameFocus();
        $this->assertPattern('/Count: 3/');
    }
    
    function testAuthenticatingNestedPage() {
        $this->get($this->samples() . 'nested_frameset.html');
        $this->setFrameFocus('messy');
        $this->setFrameFocus('Protected');
        $this->assertAuthentication('Basic');
        $this->assertRealm('SimpleTest basic authentication');
        $this->assertResponse(401);
        
        $this->authenticate('test', 'secret');
        $this->assertResponse(200);
        $this->assertPattern('/A target for the SimpleTest test suite/');
    }
}
?>

⌨️ 快捷键说明

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