browser_test.php

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

PHP
779
字号
    function testClickLinkWithUnknownFrameStillRequestsWholePage() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());
        $agent->expectArgumentsAt(
                0,
                'fetchResponse',
                array(new SimpleUrl('http://this.com/page.html'), new SimpleGetEncoding()));
        $target = new SimpleUrl('http://this.com/new.html');
        $target->setTarget('missing');
        $agent->expectArgumentsAt(
                1,
                'fetchResponse',
                array($target, new SimpleGetEncoding()));
        $agent->expectCallCount('fetchResponse', 2);

        $parsed_url = new SimpleUrl('http://this.com/new.html');
        $parsed_url->setTarget('missing');

        $page = &new MockSimplePage();
        $page->setReturnValue('getUrlsByLabel', array($parsed_url));
        $page->setReturnValue('hasFrames', false);
        $page->expectOnce('getUrlsByLabel', array('New'));
        $page->setReturnValue('getRaw', 'A page');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickLink('New'));
    }

    function testClickingMissingLinkFails() {
        $agent = &new MockSimpleUserAgent($this);
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());

        $page = &new MockSimplePage();
        $page->setReturnValue('getUrlsByLabel', array());
        $page->setReturnValue('getRaw', 'stuff');

        $browser = &$this->createBrowser($agent, $page);
        $this->assertTrue($browser->get('http://this.com/page.html'));
        $this->assertFalse($browser->clickLink('New'));
    }

    function testClickIndexedLink() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());
        $agent->expectArgumentsAt(
                1,
                'fetchResponse',
                array(new SimpleUrl('1.html'), new SimpleGetEncoding()));
        $agent->expectCallCount('fetchResponse', 2);

        $page = &new MockSimplePage();
        $page->setReturnValue(
                'getUrlsByLabel',
                array(new SimpleUrl('0.html'), new SimpleUrl('1.html')));
        $page->setReturnValue('getRaw', 'A page');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickLink('New', 1));
    }

    function testClinkLinkById() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());
        $agent->expectArgumentsAt(1, 'fetchResponse', array(
                new SimpleUrl('http://this.com/link.html'),
                new SimpleGetEncoding()));
        $agent->expectCallCount('fetchResponse', 2);

        $page = &new MockSimplePage();
        $page->setReturnValue('getUrlById', new SimpleUrl('http://this.com/link.html'));
        $page->expectOnce('getUrlById', array(2));
        $page->setReturnValue('getRaw', 'A page');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickLinkById(2));
    }

    function testClickingMissingLinkIdFails() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());

        $page = &new MockSimplePage();
        $page->setReturnValue('getUrlById', false);

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertFalse($browser->clickLink(0));
    }

    function testSubmitFormByLabel() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());
        $agent->expectArgumentsAt(1, 'fetchResponse', array(
                new SimpleUrl('http://this.com/handler.html'),
                new SimplePostEncoding(array('a' => 'A'))));
        $agent->expectCallCount('fetchResponse', 2);

        $form = &new MockSimpleForm();
        $form->setReturnValue('getAction', new SimpleUrl('http://this.com/handler.html'));
        $form->setReturnValue('getMethod', 'post');
        $form->setReturnValue('submitButton', new SimplePostEncoding(array('a' => 'A')));
        $form->expectOnce('submitButton', array(new SimpleByLabel('Go'), false));

        $page = &new MockSimplePage();
        $page->setReturnReference('getFormBySubmit', $form);
        $page->expectOnce('getFormBySubmit', array(new SimpleByLabel('Go')));
        $page->setReturnValue('getRaw', 'stuff');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickSubmit('Go'));
    }

    function testDefaultSubmitFormByLabel() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());
        $agent->expectArgumentsAt(1,  'fetchResponse', array(
                new SimpleUrl('http://this.com/page.html'),
                new SimpleGetEncoding(array('a' => 'A'))));
        $agent->expectCallCount('fetchResponse', 2);

        $form = &new MockSimpleForm();
        $form->setReturnValue('getAction', new SimpleUrl('http://this.com/page.html'));
        $form->setReturnValue('getMethod', 'get');
        $form->setReturnValue('submitButton', new SimpleGetEncoding(array('a' => 'A')));

        $page = &new MockSimplePage();
        $page->setReturnReference('getFormBySubmit', $form);
        $page->expectOnce('getFormBySubmit', array(new SimpleByLabel('Submit')));
        $page->setReturnValue('getRaw', 'stuff');
        $page->setReturnValue('getUrl', new SimpleUrl('http://this.com/page.html'));

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickSubmit());
    }

    function testSubmitFormByName() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());

        $form = &new MockSimpleForm();
        $form->setReturnValue('getAction', new SimpleUrl('http://this.com/handler.html'));
        $form->setReturnValue('getMethod', 'post');
        $form->setReturnValue('submitButton', new SimplePostEncoding(array('a' => 'A')));

        $page = &new MockSimplePage();
        $page->setReturnReference('getFormBySubmit', $form);
        $page->expectOnce('getFormBySubmit', array(new SimpleByName('me')));
        $page->setReturnValue('getRaw', 'stuff');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickSubmitByName('me'));
    }

    function testSubmitFormById() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());

        $form = &new MockSimpleForm();
        $form->setReturnValue('getAction', new SimpleUrl('http://this.com/handler.html'));
        $form->setReturnValue('getMethod', 'post');
        $form->setReturnValue('submitButton', new SimplePostEncoding(array('a' => 'A')));
        $form->expectOnce('submitButton', array(new SimpleById(99), false));

        $page = &new MockSimplePage();
        $page->setReturnReference('getFormBySubmit', $form);
        $page->expectOnce('getFormBySubmit', array(new SimpleById(99)));
        $page->setReturnValue('getRaw', 'stuff');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickSubmitById(99));
    }

    function testSubmitFormByImageLabel() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());

        $form = &new MockSimpleForm();
        $form->setReturnValue('getAction', new SimpleUrl('http://this.com/handler.html'));
        $form->setReturnValue('getMethod', 'post');
        $form->setReturnValue('submitImage', new SimplePostEncoding(array('a' => 'A')));
        $form->expectOnce('submitImage', array(new SimpleByLabel('Go!'), 10, 11, false));

        $page = &new MockSimplePage();
        $page->setReturnReference('getFormByImage', $form);
        $page->expectOnce('getFormByImage', array(new SimpleByLabel('Go!')));
        $page->setReturnValue('getRaw', 'stuff');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickImage('Go!', 10, 11));
    }

    function testSubmitFormByImageName() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());

        $form = &new MockSimpleForm();
        $form->setReturnValue('getAction', new SimpleUrl('http://this.com/handler.html'));
        $form->setReturnValue('getMethod', 'post');
        $form->setReturnValue('submitImage', new SimplePostEncoding(array('a' => 'A')));
        $form->expectOnce('submitImage', array(new SimpleByName('a'), 10, 11, false));

        $page = &new MockSimplePage();
        $page->setReturnReference('getFormByImage', $form);
        $page->expectOnce('getFormByImage', array(new SimpleByName('a')));
        $page->setReturnValue('getRaw', 'stuff');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickImageByName('a', 10, 11));
    }

    function testSubmitFormByImageId() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());

        $form = &new MockSimpleForm();
        $form->setReturnValue('getAction', new SimpleUrl('http://this.com/handler.html'));
        $form->setReturnValue('getMethod', 'post');
        $form->setReturnValue('submitImage', new SimplePostEncoding(array('a' => 'A')));
        $form->expectOnce('submitImage', array(new SimpleById(99), 10, 11, false));

        $page = &new MockSimplePage();
        $page->setReturnReference('getFormByImage', $form);
        $page->expectOnce('getFormByImage', array(new SimpleById(99)));
        $page->setReturnValue('getRaw', 'stuff');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->clickImageById(99, 10, 11));
    }

    function testSubmitFormByFormId() {
        $agent = &new MockSimpleUserAgent();
        $agent->setReturnReference('fetchResponse', new MockSimpleHttpResponse());
        $agent->expectArgumentsAt(1, 'fetchResponse', array(
                new SimpleUrl('http://this.com/handler.html'),
                new SimplePostEncoding(array('a' => 'A'))));
        $agent->expectCallCount('fetchResponse', 2);

        $form = &new MockSimpleForm();
        $form->setReturnValue('getAction', new SimpleUrl('http://this.com/handler.html'));
        $form->setReturnValue('getMethod', 'post');
        $form->setReturnValue('submit', new SimplePostEncoding(array('a' => 'A')));

        $page = &new MockSimplePage();
        $page->setReturnReference('getFormById', $form);
        $page->expectOnce('getFormById', array(33));
        $page->setReturnValue('getRaw', 'stuff');

        $browser = &$this->createBrowser($agent, $page);
        $browser->get('http://this.com/page.html');
        $this->assertTrue($browser->submitFormById(33));

⌨️ 快捷键说明

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