frames_test.php
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· PHP 代码 · 共 549 行 · 第 1/2 页
PHP
549 行
<?php
// $Id: frames_test.php 1555 2007-07-14 02:04:34Z lastcraft $
require_once(dirname(__FILE__) . '/../autorun.php');
require_once(dirname(__FILE__) . '/../tag.php');
require_once(dirname(__FILE__) . '/../page.php');
require_once(dirname(__FILE__) . '/../frames.php');
Mock::generate('SimplePage');
Mock::generate('SimpleForm');
class TestOfFrameset extends UnitTestCase {
function testTitleReadFromFramesetPage() {
$page = &new MockSimplePage();
$page->setReturnValue('getTitle', 'This page');
$frameset = &new SimpleFrameset($page);
$this->assertEqual($frameset->getTitle(), 'This page');
}
function TestHeadersReadFromFramesetByDefault() {
$page = &new MockSimplePage();
$page->setReturnValue('getHeaders', 'Header: content');
$page->setReturnValue('getMimeType', 'text/xml');
$page->setReturnValue('getResponseCode', 401);
$page->setReturnValue('getTransportError', 'Could not parse headers');
$page->setReturnValue('getAuthentication', 'Basic');
$page->setReturnValue('getRealm', 'Safe place');
$frameset = &new SimpleFrameset($page);
$this->assertIdentical($frameset->getHeaders(), 'Header: content');
$this->assertIdentical($frameset->getMimeType(), 'text/xml');
$this->assertIdentical($frameset->getResponseCode(), 401);
$this->assertIdentical($frameset->getTransportError(), 'Could not parse headers');
$this->assertIdentical($frameset->getAuthentication(), 'Basic');
$this->assertIdentical($frameset->getRealm(), 'Safe place');
}
function testEmptyFramesetHasNoContent() {
$page = &new MockSimplePage();
$page->setReturnValue('getRaw', 'This content');
$frameset = &new SimpleFrameset($page);
$this->assertEqual($frameset->getRaw(), '');
}
function testRawContentIsFromOnlyFrame() {
$page = &new MockSimplePage();
$page->expectNever('getRaw');
$frame = &new MockSimplePage();
$frame->setReturnValue('getRaw', 'Stuff');
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame);
$this->assertEqual($frameset->getRaw(), 'Stuff');
}
function testRawContentIsFromAllFrames() {
$page = &new MockSimplePage();
$page->expectNever('getRaw');
$frame1 = &new MockSimplePage();
$frame1->setReturnValue('getRaw', 'Stuff1');
$frame2 = &new MockSimplePage();
$frame2->setReturnValue('getRaw', 'Stuff2');
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame1);
$frameset->addFrame($frame2);
$this->assertEqual($frameset->getRaw(), 'Stuff1Stuff2');
}
function testTextContentIsFromOnlyFrame() {
$page = &new MockSimplePage();
$page->expectNever('getText');
$frame = &new MockSimplePage();
$frame->setReturnValue('getText', 'Stuff');
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame);
$this->assertEqual($frameset->getText(), 'Stuff');
}
function testTextContentIsFromAllFrames() {
$page = &new MockSimplePage();
$page->expectNever('getText');
$frame1 = &new MockSimplePage();
$frame1->setReturnValue('getText', 'Stuff1');
$frame2 = &new MockSimplePage();
$frame2->setReturnValue('getText', 'Stuff2');
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame1);
$frameset->addFrame($frame2);
$this->assertEqual($frameset->getText(), 'Stuff1 Stuff2');
}
function testFieldFoundIsFirstInFramelist() {
$frame1 = &new MockSimplePage();
$frame1->setReturnValue('getField', null);
$frame1->expectOnce('getField', array(new SimpleByName('a')));
$frame2 = &new MockSimplePage();
$frame2->setReturnValue('getField', 'A');
$frame2->expectOnce('getField', array(new SimpleByName('a')));
$frame3 = &new MockSimplePage();
$frame3->expectNever('getField');
$page = &new MockSimplePage();
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame1);
$frameset->addFrame($frame2);
$frameset->addFrame($frame3);
$this->assertIdentical($frameset->getField(new SimpleByName('a')), 'A');
}
function testFrameReplacementByIndex() {
$page = &new MockSimplePage();
$page->expectNever('getRaw');
$frame1 = &new MockSimplePage();
$frame1->setReturnValue('getRaw', 'Stuff1');
$frame2 = &new MockSimplePage();
$frame2->setReturnValue('getRaw', 'Stuff2');
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame1);
$frameset->setFrame(array(1), $frame2);
$this->assertEqual($frameset->getRaw(), 'Stuff2');
}
function testFrameReplacementByName() {
$page = &new MockSimplePage();
$page->expectNever('getRaw');
$frame1 = &new MockSimplePage();
$frame1->setReturnValue('getRaw', 'Stuff1');
$frame2 = &new MockSimplePage();
$frame2->setReturnValue('getRaw', 'Stuff2');
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame1, 'a');
$frameset->setFrame(array('a'), $frame2);
$this->assertEqual($frameset->getRaw(), 'Stuff2');
}
}
class TestOfFrameNavigation extends UnitTestCase {
function testStartsWithoutFrameFocus() {
$page = &new MockSimplePage();
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame);
$this->assertFalse($frameset->getFrameFocus());
}
function testCanFocusOnSingleFrame() {
$page = &new MockSimplePage();
$page->expectNever('getRaw');
$frame = &new MockSimplePage();
$frame->setReturnValue('getFrameFocus', array());
$frame->setReturnValue('getRaw', 'Stuff');
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame);
$this->assertFalse($frameset->setFrameFocusByIndex(0));
$this->assertTrue($frameset->setFrameFocusByIndex(1));
$this->assertEqual($frameset->getRaw(), 'Stuff');
$this->assertFalse($frameset->setFrameFocusByIndex(2));
$this->assertIdentical($frameset->getFrameFocus(), array(1));
}
function testContentComesFromFrameInFocus() {
$page = &new MockSimplePage();
$frame1 = &new MockSimplePage();
$frame1->setReturnValue('getRaw', 'Stuff1');
$frame1->setReturnValue('getFrameFocus', array());
$frame2 = &new MockSimplePage();
$frame2->setReturnValue('getRaw', 'Stuff2');
$frame2->setReturnValue('getFrameFocus', array());
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame1);
$frameset->addFrame($frame2);
$this->assertTrue($frameset->setFrameFocusByIndex(1));
$this->assertEqual($frameset->getFrameFocus(), array(1));
$this->assertEqual($frameset->getRaw(), 'Stuff1');
$this->assertTrue($frameset->setFrameFocusByIndex(2));
$this->assertEqual($frameset->getFrameFocus(), array(2));
$this->assertEqual($frameset->getRaw(), 'Stuff2');
$this->assertFalse($frameset->setFrameFocusByIndex(3));
$this->assertEqual($frameset->getFrameFocus(), array(2));
$frameset->clearFrameFocus();
$this->assertEqual($frameset->getRaw(), 'Stuff1Stuff2');
}
function testCanFocusByName() {
$page = &new MockSimplePage();
$frame1 = &new MockSimplePage();
$frame1->setReturnValue('getRaw', 'Stuff1');
$frame1->setReturnValue('getFrameFocus', array());
$frame2 = &new MockSimplePage();
$frame2->setReturnValue('getRaw', 'Stuff2');
$frame2->setReturnValue('getFrameFocus', array());
$frameset = &new SimpleFrameset($page);
$frameset->addFrame($frame1, 'A');
$frameset->addFrame($frame2, 'B');
$this->assertTrue($frameset->setFrameFocus('A'));
$this->assertEqual($frameset->getFrameFocus(), array('A'));
$this->assertEqual($frameset->getRaw(), 'Stuff1');
$this->assertTrue($frameset->setFrameFocusByIndex(2));
$this->assertEqual($frameset->getFrameFocus(), array('B'));
$this->assertEqual($frameset->getRaw(), 'Stuff2');
$this->assertFalse($frameset->setFrameFocus('z'));
$frameset->clearFrameFocus();
$this->assertEqual($frameset->getRaw(), 'Stuff1Stuff2');
}
}
class TestOfFramesetPageInterface extends UnitTestCase {
var $_page_interface;
var $_frameset_interface;
function TestOfFramesetPageInterface() {
$this->UnitTestCase();
$this->_page_interface = $this->_getPageMethods();
$this->_frameset_interface = $this->_getFramesetMethods();
}
function assertListInAnyOrder($list, $expected) {
sort($list);
sort($expected);
$this->assertEqual($list, $expected);
}
function _getPageMethods() {
$methods = array();
foreach (get_class_methods('SimplePage') as $method) {
if (strtolower($method) == strtolower('SimplePage')) {
continue;
}
if (strtolower($method) == strtolower('getFrameset')) {
continue;
}
if (strncmp($method, '_', 1) == 0) {
continue;
}
if (strncmp($method, 'accept', 6) == 0) {
continue;
}
$methods[] = $method;
}
return $methods;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?