attach( $prop ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $prop, ), ), 'properties', $storage ); } public function testAttachDeadProperty() { $storage = new ezcWebdavFlaggedPropertyStorage(); $prop = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $storage->attach( $prop ); $this->assertAttributeEquals( array( 'http://example.com/foo/bar' => array( 'foobar' => $prop, ), ), 'properties', $storage ); } public function testAttachMultipleProperties() { $storage = new ezcWebdavFlaggedPropertyStorage(); $liveProp = new ezcWebdavGetContentLengthProperty(); $deadProp = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $storage->attach( $liveProp ); $storage->attach( $deadProp ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); } public function testAttachMultiplePropertiesOverwrite() { $storage = new ezcWebdavFlaggedPropertyStorage(); $liveProp = new ezcWebdavGetContentLengthProperty(); $liveProp2 = new ezcWebdavGetContentLengthProperty(); $deadProp = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $deadProp2 = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... other content' ); $storage->attach( $liveProp ); $storage->attach( $deadProp ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); $storage->attach( $liveProp2 ); $storage->attach( $deadProp2 ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp2, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp2, ), ), 'properties', $storage ); } public function testAttachLivePropertyWithFlag() { $storage = new ezcWebdavFlaggedPropertyStorage(); $prop = new ezcWebdavGetContentLengthProperty(); $storage->attach( $prop, 12 ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $prop, ), ), 'properties', $storage ); $this->assertEquals( 12, $storage->getFlag( $prop->name, $prop->namespace ), 'Could not receive proper flag value.' ); } public function testAttachDeadPropertyWithFlag() { $storage = new ezcWebdavFlaggedPropertyStorage(); $prop = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $storage->attach( $prop, 'string flag' ); $this->assertAttributeEquals( array( 'http://example.com/foo/bar' => array( 'foobar' => $prop, ), ), 'properties', $storage ); $this->assertEquals( 'string flag', $storage->getFlag( $prop->name, $prop->namespace ), 'Could not receive proper flag value.' ); } public function testAttachMultiplePropertiesWithFlag() { $storage = new ezcWebdavFlaggedPropertyStorage(); $liveProp = new ezcWebdavGetContentLengthProperty(); $deadProp = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $storage->attach( $liveProp, 23 ); $storage->attach( $deadProp, 42 ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); $this->assertEquals( 23, $storage->getFlag( $liveProp->name, $liveProp->namespace ), 'Could not receive proper flag value.' ); $this->assertEquals( 42, $storage->getFlag( $deadProp->name, $deadProp->namespace ), 'Could not receive proper flag value.' ); } public function testAttacheMultiplePropertiesOverwriteWithFlag() { $storage = new ezcWebdavFlaggedPropertyStorage(); $liveProp = new ezcWebdavGetContentLengthProperty(); $liveProp2 = new ezcWebdavGetContentLengthProperty(); $deadProp = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $deadProp2 = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... other content' ); $storage->attach( $liveProp ); $storage->attach( $deadProp, 5 ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); $this->assertEquals( 0, $storage->getFlag( $liveProp->name, $liveProp->namespace ), 'Could not receive proper default flag value.' ); $this->assertEquals( 5, $storage->getFlag( $deadProp->name, $deadProp->namespace ), 'Could not receive proper flag value.' ); $storage->attach( $liveProp2, 23 ); $storage->attach( $deadProp2, 42 ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp2, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp2, ), ), 'properties', $storage ); $this->assertEquals( 23, $storage->getFlag( $liveProp->name, $liveProp->namespace ), 'Could not receive proper flag value.' ); $this->assertEquals( 42, $storage->getFlag( $deadProp->name, $deadProp->namespace ), 'Could not receive proper flag value.' ); } public function testDetachLiveProperty() { $storage = new ezcWebdavFlaggedPropertyStorage(); $prop = new ezcWebdavGetContentLengthProperty(); $storage->attach( $prop ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $prop, ), ), 'properties', $storage ); $storage->detach( 'getcontentlength' ); $this->assertAttributeEquals( array( 'DAV:' => array( ), ), 'properties', $storage ); } public function testDetachDeadProperty() { $storage = new ezcWebdavFlaggedPropertyStorage(); $prop = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $storage->attach( $prop ); $this->assertAttributeEquals( array( 'http://example.com/foo/bar' => array( 'foobar' => $prop, ), ), 'properties', $storage ); $storage->detach( 'foobar', 'http://example.com/foo/bar' ); $this->assertAttributeEquals( array( 'http://example.com/foo/bar' => array( ), ), 'properties', $storage ); } public function testDetachMultipleProperties() { $storage = new ezcWebdavFlaggedPropertyStorage(); $liveProp = new ezcWebdavGetContentLengthProperty(); $deadProp = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $storage->attach( $liveProp ); $storage->attach( $deadProp ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); $storage->detach( 'getcontentlength' ); $this->assertAttributeEquals( array( 'DAV:' => array( ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); $storage->detach( 'foobar', 'http://example.com/foo/bar' ); $this->assertAttributeEquals( array( 'DAV:' => array( ), 'http://example.com/foo/bar' => array( ), ), 'properties', $storage ); } public function testDetachMultiplePropertiesOverwrite() { $storage = new ezcWebdavFlaggedPropertyStorage(); $liveProp = new ezcWebdavGetContentLengthProperty(); $liveProp2 = new ezcWebdavGetContentLengthProperty(); $deadProp = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... content' ); $deadProp2 = new ezcWebdavDeadProperty( 'http://example.com/foo/bar', 'foobar', 'some... other content' ); $storage->attach( $liveProp ); $storage->attach( $deadProp ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); $storage->attach( $liveProp2 ); $this->assertAttributeEquals( array( 'DAV:' => array( 'getcontentlength' => $liveProp2, ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); $storage->detach( 'getcontentlength' ); $this->assertAttributeEquals( array( 'DAV:' => array( ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp, ), ), 'properties', $storage ); $storage->detach( 'foobar', 'http://example.com/foo/bar' ); $this->assertAttributeEquals( array( 'DAV:' => array( ), 'http://example.com/foo/bar' => array( ), ), 'properties', $storage ); $storage->attach( $deadProp2 ); $this->assertAttributeEquals( array( 'DAV:' => array( ), 'http://example.com/foo/bar' => array( 'foobar' => $deadProp2, ), ), 'properties', $storage ); $storage->detach( 'foobar', 'http://example.com/foo/bar' ); $this->assertAttributeEquals( array( 'DAV:' => array( ), 'http://example.com/foo/bar' => array( ), ), 'properties', $storage ); } } ?>