aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-10-21 15:46:31 -0700
committerfriendica <info@friendica.com>2013-10-21 15:46:31 -0700
commitb35122f7a6ad42756c35bb60ba1f06c3dcd45c77 (patch)
treeccdf373ce6475d264778523259cc32899b732fe7 /vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php
parente3504df514d306cfe6b83e44a11f550664564af4 (diff)
downloadvolse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.tar.gz
volse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.tar.bz2
volse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.zip
add sabre (1.8.x) via composer in the !@#$ place it wants to be
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php')
-rw-r--r--vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php175
1 files changed, 175 insertions, 0 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php b/vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php
new file mode 100644
index 000000000..90df6427e
--- /dev/null
+++ b/vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php
@@ -0,0 +1,175 @@
+<?php
+
+namespace Sabre\DAV;
+
+/**
+ * @covers \Sabre\DAV\Tree
+ */
+class TreeTest extends \PHPUnit_Framework_TestCase {
+
+ function testNodeExists() {
+
+ $tree = new TreeMock();
+
+ $this->assertTrue($tree->nodeExists('hi'));
+ $this->assertFalse($tree->nodeExists('hello'));
+
+ }
+
+ function testCopy() {
+
+ $tree = new TreeMock();
+ $tree->copy('hi','hi2');
+
+ $this->assertArrayHasKey('hi2', $tree->getNodeForPath('')->newDirectories);
+ $this->assertEquals('foobar', $tree->getNodeForPath('hi/file')->get());
+ $this->assertEquals(array('test1'=>'value'), $tree->getNodeForPath('hi/file')->getProperties(array()));
+
+ }
+
+ function testMove() {
+
+ $tree = new TreeMock();
+ $tree->move('hi','hi2');
+
+ $this->assertEquals('hi2', $tree->getNodeForPath('hi')->getName());
+ $this->assertTrue($tree->getNodeForPath('hi')->isRenamed);
+
+ }
+
+ function testDeepMove() {
+
+ $tree = new TreeMock();
+ $tree->move('hi/sub','hi2');
+
+ $this->assertArrayHasKey('hi2', $tree->getNodeForPath('')->newDirectories);
+ $this->assertTrue($tree->getNodeForPath('hi/sub')->isDeleted);
+
+ }
+
+ function testDelete() {
+
+ $tree = new TreeMock();
+ $tree->delete('hi');
+ $this->assertTrue($tree->getNodeForPath('hi')->isDeleted);
+
+ }
+
+ function testGetChildren() {
+
+ $tree = new TreeMock();
+ $children = $tree->getChildren('');
+ $this->assertEquals(1,count($children));
+ $this->assertEquals('hi', $children[0]->getName());
+
+ }
+
+}
+
+class TreeMock extends Tree {
+
+ private $nodes = array();
+
+ function __construct() {
+
+ $this->nodes['hi/sub'] = new TreeDirectoryTester('sub');
+ $this->nodes['hi/file'] = new TreeFileTester('file');
+ $this->nodes['hi/file']->properties = array('test1' => 'value');
+ $this->nodes['hi/file']->data = 'foobar';
+ $this->nodes['hi'] = new TreeDirectoryTester('hi',array($this->nodes['hi/sub'], $this->nodes['hi/file']));
+ $this->nodes[''] = new TreeDirectoryTester('hi', array($this->nodes['hi']));
+
+ }
+
+ function getNodeForPath($path) {
+
+ if (isset($this->nodes[$path])) return $this->nodes[$path];
+ throw new Exception\NotFound('item not found');
+
+ }
+
+}
+
+class TreeDirectoryTester extends SimpleCollection {
+
+ public $newDirectories = array();
+ public $newFiles = array();
+ public $isDeleted = false;
+ public $isRenamed = false;
+
+ function createDirectory($name) {
+
+ $this->newDirectories[$name] = true;
+
+ }
+
+ function createFile($name,$data = null) {
+
+ $this->newFiles[$name] = $data;
+
+ }
+
+ function getChild($name) {
+
+ if (isset($this->newDirectories[$name])) return new TreeDirectoryTester($name);
+ if (isset($this->newFiles[$name])) return new TreeFileTester($name, $this->newFiles[$name]);
+ return parent::getChild($name);
+
+ }
+
+ function delete() {
+
+ $this->isDeleted = true;
+
+ }
+
+ function setName($name) {
+
+ $this->isRenamed = true;
+ $this->name = $name;
+
+ }
+
+}
+
+class TreeFileTester extends File implements IProperties {
+
+ public $name;
+ public $data;
+ public $properties;
+
+ function __construct($name, $data = null) {
+
+ $this->name = $name;
+ if (is_null($data)) $data = 'bla';
+ $this->data = $data;
+
+ }
+
+ function getName() {
+
+ return $this->name;
+
+ }
+
+ function get() {
+
+ return $this->data;
+
+ }
+
+ function getProperties($properties) {
+
+ return $this->properties;
+
+ }
+
+ function updateProperties($properties) {
+
+ $this->properties = $properties;
+ return true;
+
+ }
+
+}
+