aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/tests/FSTools
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-05-12 17:57:41 -0700
committerfriendica <info@friendica.com>2012-07-18 20:40:31 +1000
commit7a40f4354b32809af3d0cfd6e3af0eda02ab0e0a (patch)
treea9c3d91209cff770bb4b613b1b95e61a7bbc5a2b /lib/htmlpurifier/tests/FSTools
parentcd727cb26b78a1dade09d510b071446898477356 (diff)
downloadvolse-hubzilla-7a40f4354b32809af3d0cfd6e3af0eda02ab0e0a.tar.gz
volse-hubzilla-7a40f4354b32809af3d0cfd6e3af0eda02ab0e0a.tar.bz2
volse-hubzilla-7a40f4354b32809af3d0cfd6e3af0eda02ab0e0a.zip
some important stuff we'll need
Diffstat (limited to 'lib/htmlpurifier/tests/FSTools')
-rw-r--r--lib/htmlpurifier/tests/FSTools/FileSystemHarness.php36
-rw-r--r--lib/htmlpurifier/tests/FSTools/FileTest.php46
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