--- /dev/null
+<?php
+
+require_once 'Sabre/HTTP/ResponseMock.php';
+
+abstract class Sabre_DAV_AbstractServer extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var Sabre_HTTP_ResponseMock
+ */
+ protected $response;
+ protected $request;
+ /**
+ * @var Sabre_DAV_Server
+ */
+ protected $server;
+ protected $tempDir = SABRE_TEMPDIR;
+
+ function setUp() {
+
+ $this->response = new Sabre_HTTP_ResponseMock();
+ $this->server = new Sabre_DAV_Server($this->getRootNode());
+ $this->server->httpResponse = $this->response;
+ $this->server->debugExceptions = true;
+ file_put_contents(SABRE_TEMPDIR . '/test.txt', 'Test contents');
+ mkdir(SABRE_TEMPDIR . '/dir');
+ file_put_contents(SABRE_TEMPDIR . '/dir/child.txt', 'Child contents');
+
+
+ }
+
+ function tearDown() {
+
+ $this->deleteTree(SABRE_TEMPDIR,false);
+
+ }
+
+ protected function getRootNode() {
+
+ return new Sabre_DAV_FS_Directory(SABRE_TEMPDIR);
+
+ }
+
+ private function deleteTree($path,$deleteRoot = true) {
+
+ foreach(scandir($path) as $node) {
+
+ if ($node=='.' || $node=='.svn' || $node=='..') continue;
+ $myPath = $path.'/'. $node;
+ if (is_file($myPath)) {
+ unlink($myPath);
+ } else {
+ $this->deleteTree($myPath);
+ }
+
+ }
+ if ($deleteRoot) rmdir($path);
+
+ }
+
+}