diff options
Diffstat (limited to 'lib/htmlpurifier/tests/FSTools')
-rw-r--r-- | lib/htmlpurifier/tests/FSTools/FileSystemHarness.php | 36 | ||||
-rw-r--r-- | lib/htmlpurifier/tests/FSTools/FileTest.php | 46 |
2 files changed, 82 insertions, 0 deletions
diff --git a/lib/htmlpurifier/tests/FSTools/FileSystemHarness.php b/lib/htmlpurifier/tests/FSTools/FileSystemHarness.php new file mode 100644 index 000000000..710196e4f --- /dev/null +++ b/lib/htmlpurifier/tests/FSTools/FileSystemHarness.php @@ -0,0 +1,36 @@ +<?php + +/** + * Test harness that sets up a filesystem sandbox for file-emulation + * functions to safely unit test in. + * + * @todo Make an automatic FSTools mock or something + */ +class FSTools_FileSystemHarness extends UnitTestCase +{ + + protected $dir, $oldDir; + + function __construct() { + parent::__construct(); + $this->dir = 'tmp/' . md5(uniqid(rand(), true)) . '/'; + mkdir($this->dir); + $this->oldDir = getcwd(); + + } + + function __destruct() { + FSTools::singleton()->rmdirr($this->dir); + } + + function setup() { + chdir($this->dir); + } + + function tearDown() { + chdir($this->oldDir); + } + +} + +// vim: et sw=4 sts=4 diff --git a/lib/htmlpurifier/tests/FSTools/FileTest.php b/lib/htmlpurifier/tests/FSTools/FileTest.php new file mode 100644 index 000000000..e9b703a2d --- /dev/null +++ b/lib/htmlpurifier/tests/FSTools/FileTest.php @@ -0,0 +1,46 @@ +<?php + +require_once 'FSTools/FileSystemHarness.php'; + +/** + * These are not really unit tests, just sanity checks of basic functionality. + */ +class FSTools_FileTest extends FSTools_FileSystemHarness +{ + + function test() { + $name = 'test.txt'; + $file = new FSTools_File($name); + $this->assertFalse($file->exists()); + $file->write('foobar'); + $this->assertTrue($file->exists()); + $this->assertEqual($file->get(), 'foobar'); + $file->delete(); + $this->assertFalse($file->exists()); + } + + function testGetNonExistent() { + $name = 'notfound.txt'; + $file = new FSTools_File($name); + $this->expectError(); + $this->assertFalse($file->get()); + } + + function testHandle() { + $file = new FSTools_File('foo.txt'); + $this->assertFalse($file->exists()); + $file->open('w'); + $this->assertTrue($file->exists()); + $file->put('Foobar'); + $file->close(); + $file->open('r'); + $this->assertIdentical('F', $file->getChar()); + $this->assertFalse($file->eof()); + $this->assertIdentical('oo', $file->read(2)); + $this->assertIdentical('bar', $file->getLine()); + $this->assertTrue($file->eof()); + } + +} + +// vim: et sw=4 sts=4 |