friendica-addons/dav/SabreDAV/tests/Sabre/DAV/FSExt/NodeTest.php

176 lines
5.3 KiB
PHP

<?php
require_once 'Sabre/TestUtil.php';
class Sabre_DAV_FSExt_NodeTest extends PHPUnit_Framework_TestCase {
function setUp() {
mkdir(SABRE_TEMPDIR . '/dir');
file_put_contents(SABRE_TEMPDIR . '/dir/file.txt', 'Contents');
file_put_contents(SABRE_TEMPDIR . '/dir/file2.txt', 'Contents2');
}
function tearDown() {
Sabre_TestUtil::clearTempDir();
}
function testUpdateProperties() {
$file = new Sabre_DAV_FSExt_File(SABRE_TEMPDIR . '/dir/file.txt');
$properties = array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test2' => 'bar',
);
$result = $file->updateProperties($properties);
$expected = true;
$this->assertEquals($expected, $result);
$getProperties = $file->getProperties(array_keys($properties));
$this->assertEquals($properties, $getProperties);
}
/**
* @depends testUpdateProperties
*/
function testUpdatePropertiesAgain() {
$file = new Sabre_DAV_FSExt_File(SABRE_TEMPDIR . '/dir/file.txt');
$mutations = array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test2' => 'bar',
);
$result = $file->updateProperties($mutations);
$this->assertEquals(true, $result);
$mutations = array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test3' => 'baz',
);
$result = $file->updateProperties($mutations);
$this->assertEquals(true, $result);
}
/**
* @depends testUpdateProperties
*/
function testUpdatePropertiesDelete() {
$file = new Sabre_DAV_FSExt_File(SABRE_TEMPDIR . '/dir/file.txt');
$mutations = array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test2' => 'bar',
);
$result = $file->updateProperties($mutations);
$this->assertEquals(true, $result);
$mutations = array(
'{http://sabredav.org/NS/2010}test1' => null,
'{http://sabredav.org/NS/2010}test3' => null
);
$result = $file->updateProperties($mutations);
$this->assertEquals(true, $result);
$properties = $file->getProperties(array('http://sabredav.org/NS/2010}test1','{http://sabredav.org/NS/2010}test2','{http://sabredav.org/NS/2010}test3'));
$this->assertEquals(array(
'{http://sabredav.org/NS/2010}test2' => 'bar',
), $properties);
}
/**
* @depends testUpdateProperties
*/
function testUpdatePropertiesMove() {
$file = new Sabre_DAV_FSExt_File(SABRE_TEMPDIR . '/dir/file.txt');
$mutations = array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test2' => 'bar',
);
$result = $file->updateProperties($mutations);
$this->assertEquals(true, $result);
$properties = $file->getProperties(array('{http://sabredav.org/NS/2010}test1','{http://sabredav.org/NS/2010}test2','{http://sabredav.org/NS/2010}test3'));
$this->assertEquals(array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test2' => 'bar',
), $properties);
// Renaming
$file->setName('file3.txt');
$this->assertFalse(file_exists(SABRE_TEMPDIR . '/dir/file.txt'));
$this->assertTrue(file_exists(SABRE_TEMPDIR . '/dir/file3.txt'));
$this->assertEquals('file3.txt',$file->getName());
$newFile = new Sabre_DAV_FSExt_File(SABRE_TEMPDIR . '/dir/file3.txt');
$this->assertEquals('file3.txt',$newFile->getName());
$properties = $newFile->getProperties(array('{http://sabredav.org/NS/2010}test1','{http://sabredav.org/NS/2010}test2','{http://sabredav.org/NS/2010}test3'));
$this->assertEquals(array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test2' => 'bar',
), $properties);
}
/**
* @depends testUpdatePropertiesMove
*/
function testUpdatePropertiesDeleteBleed() {
$file = new Sabre_DAV_FSExt_File(SABRE_TEMPDIR . '/dir/file.txt');
$mutations = array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test2' => 'bar',
);
$result = $file->updateProperties($mutations);
$this->assertEquals(true, $result);
$properties = $file->getProperties(array('{http://sabredav.org/NS/2010}test1','{http://sabredav.org/NS/2010}test2','{http://sabredav.org/NS/2010}test3'));
$this->assertEquals(array(
'{http://sabredav.org/NS/2010}test1' => 'foo',
'{http://sabredav.org/NS/2010}test2' => 'bar',
), $properties);
// Deleting
$file->delete();
$this->assertFalse(file_exists(SABRE_TEMPDIR . '/dir/file.txt'));
// Creating it again
file_put_contents(SABRE_TEMPDIR . '/dir/file.txt','New Contents');
$file = new Sabre_DAV_FSExt_File(SABRE_TEMPDIR . '/dir/file.txt');
$properties = $file->getProperties(array('http://sabredav.org/NS/2010}test1','{http://sabredav.org/NS/2010}test2','{http://sabredav.org/NS/2010}test3'));
$this->assertEquals(array(), $properties);
}
}