filetest.php

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 226 行

PHP
226
字号
<?php// needed for locking testdefine('FILE_LOCKS_BLOCK', false, true);require_once 'PHPUnit.php';require_once 'File.php';class FileTest extends PHPUnit_TestCase {    function FileTest($name = 'FileTest')    {        $this->PHPUnit_TestCase($name);    }    function getTestString()    {        static $str;        isset($str) or $str = str_repeat(str_repeat("0123456789", 1000)."\n", 100);        return $str;    }        function getTestLine()    {        static $str;        isset($str) or $str = str_repeat("0123456789", 1000);        return $str;    }        function setUp()    {        $this->tearDown();        if (PEAR::isError($e = File::write('test.txt', $this->getTestString(), FILE_MODE_WRITE))) {            die("Cannot start test: ". str_replace($this->getTestString(),'...', $e->getMessage()));        }    }    function tearDown()    {        File::closeAll();        file_exists('test.txt') and unlink('test.txt');    }    function testlocking()    {        $this->assertFalse(PEAR::isError(File::write('test.txt', 'abc', FILE_MODE_APPEND, true)));        $this->assertTrue(PEAR::isError(File::write('test.txt', 'def', FILE_MODE_WRITE, true)));        $this->assertFalse(PEAR::isError(File::unlock('test.txt', FILE_MODE_APPEND)));        $this->assertFalse(PEAR::isError(File::unlock('test.txt', FILE_MODE_WRITE)));    }    function testclose()    {        $this->assertFalse(PEAR::isError(File::close('test.txt', FILE_MODE_WRITE)));        $this->assertFalse(PEAR::isError(File::close('test.txt', FILE_MODE_APPEND)));        $this->assertFalse(PEAR::isError(File::close('test.txt', FILE_MODE_READ)));    }    function testreadAll()    {        $this->assertEquals($this->getTestString(), File::readAll('test.txt'));        $this->assertEquals($this->getTestString(), File::readAll('test.txt'));        $this->assertEquals($this->getTestString(), File::readAll('test.txt'));    }    function testread()    {        $this->assertEquals($this->getTestLine(), File::read('test.txt', 10000));        $this->assertEquals("\n", File::read('test.txt', 1));        $this->assertEquals('0123456789', File::read('test.txt', 10));    }    function testwrite()    {        $this->assertFalse(PEAR::isError($bytes = File::write('test.txt', '0123456789')));        $this->assertEquals(10, $bytes);    }    function testreadChar()    {        $this->assertFalse(PEAR::isError(File::rewind('test.txt', FILE_MODE_READ)));        $this->assertEquals('0', File::readChar('test.txt'));        $this->assertEquals('1', File::readChar('test.txt'));        $this->assertEquals('2', File::readChar('test.txt'));        $this->assertEquals('3', File::readChar('test.txt'));        $this->assertEquals('4', File::readChar('test.txt'));        $this->assertEquals('5', File::readChar('test.txt'));        $this->assertEquals('6', File::readChar('test.txt'));        $this->assertEquals('7', File::readChar('test.txt'));        $this->assertEquals('8', File::readChar('test.txt'));        $this->assertEquals('9', File::readChar('test.txt'));        $this->assertEquals('0', File::readChar('test.txt'));    }    function testwriteChar()    {        $this->assertEquals(1, File::writeChar('test.txt', 'a'));        $this->assertEquals(1, File::writeChar('test.txt', 'b'));        $this->assertEquals(1, File::writeChar('test.txt', 'c'));        $this->assertEquals(1, File::writeChar('test.txt', 'd'));        $this->assertEquals(1, File::writeChar('test.txt', 'e'));        $this->assertEquals(1, File::writeChar('test.txt', 'f'));        $this->assertEquals(1, File::writeChar('test.txt', 'g'));        $this->assertEquals(1, File::writeChar('test.txt', 'h'));        $this->assertEquals(1, File::writeChar('test.txt', 'i'));        $this->assertEquals(1, File::writeChar('test.txt', 'j'));    }    function testreadLine()    {        $this->assertFalse(PEAR::isError(File::rewind('test.txt', FILE_MODE_READ)));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));        $this->assertEquals($this->getTestLine(), File::readLine('test.txt'));    }    function testwriteLine()    {        $line = $this->getTestLine();        $length = strlen($line) + 1;        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));        $this->assertEquals($length, File::writeLine('test.txt', $line));    }    function testrewind()    {        $this->assertFalse(PEAR::isError(File::rewind('test.txt', FILE_MODE_WRITE)));        $this->assertFalse(PEAR::isError(File::rewind('test.txt', FILE_MODE_READ)));    }    function testbuildPath()    {        $path = array(            'some',            DIRECTORY_SEPARATOR,            DIRECTORY_SEPARATOR,            DIRECTORY_SEPARATOR,            DIRECTORY_SEPARATOR,            'weird'.DIRECTORY_SEPARATOR,            DIRECTORY_SEPARATOR,            DIRECTORY_SEPARATOR,            DIRECTORY_SEPARATOR,            DIRECTORY_SEPARATOR.'path'.DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR,        );        $built = implode(DIRECTORY_SEPARATOR, array('some','weird','path','',''));        $this->assertEquals($built, File::buildPath($path));    }    function testskipRoot()    {        if (OS_WINDOWS) {            $this->assertEquals('WINDOWS', File::skipRoot('C:\\WINDOWS'));            $this->assertEquals('WINDOWS', File::skipRoot('C:\\\\WINDOWS'));            $this->assertEquals('WINDOWS', File::skipRoot('C:/WINDOWS'));        } else {            $this->assertEquals('usr/share/pear', File::skipRoot('/usr/share/pear'));        }    }    function testgetTempDir()    {        $dir = File::getTempDir();        $this->assertTrue(is_dir($dir), "is_dir($dir)");    }    function testgetTempFile()    {        $tmp = File::getTempFile();        $this->assertTrue(file_exists($tmp));    }    function testisAbsolute()    {        $this->assertFalse(File::isAbsolute('abra/../cadabra'));        $this->assertFalse(File::isAbsolute('data/dir'));        if (OS_WINDOWS) {            $this->assertTrue(File::isAbsolute('C:\\\\data'));            $this->assertTrue(File::isAbsolute('d:/data'));            $this->assertFalse(File::isAbsolute('\\'));        } else {            $this->assertTrue(File::isAbsolute('/'));            $this->assertFalse(File::isAbsolute('\\'));            $this->assertTrue(File::isAbsolute('~mike/bin'));        }    }    function testrelativePath()    {        $this->assertEquals('tests/File', File::relativePath('/usr/share/pear/tests/File', '/usr/share/pear', '/'));        $this->assertEquals('../etc', File::relativePath('/etc', '/usr', '/'));        $this->assertEquals('D:\\Data', File::relativePath('D:\\Data', 'C:\\Data', '\\'));        if (OS_WINDOWS) {            $this->assertEquals('data\\dir', File::relativePath('/var/data/dir', '/var'));        } else {            $this->assertEquals('data/dir', File::relativePath('/var/data/dir', '/var'));        }        $this->assertEquals('../', File::relativePath('data', 'data/dir', '/'));    }    function testrealpath()    {        $drive = OS_WINDOWS ? substr(getcwd(),0, 2) :'';        $this->assertEquals($drive . '/a/weird/path/is', File::realpath('/a\\weird//path\is/that/./../', '/'));        $this->assertEquals($drive . '/a/weird/path/is/that', File::realpath('/a\\weird//path\is/that/./../that/.', '/'));    }}$result = &PHPUnit::run(new PHPUnit_TestSuite('FileTest'));echo $result->toString();?>

⌨️ 快捷键说明

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