blob: b8c79a4d5ccce5354aa077c54855ea1971a5b4f6 [file] [log] [blame]
<?php
require_once 'client_test_setup.php';
class ezcWebdavClientTestRfcSetup extends ezcWebdavClientTestSetup
{
public function performSetup( ezcWebdavClientTest $test, $testSetId )
{
$pathFactory = new ezcWebdavBasicPathFactory( 'http://www.foo.bar' );
switch( $testSetId )
{
case 14:
case 12:
case 5:
$customPathFactory = $this->getFooBarSetup1( $test );
break;
case 13:
$customPathFactory = $this->getFooBarSetup2( $test );
break;
case 15:
$customPathFactory = $this->getFooBarSetup3( $test );
break;
case 2:
$customPathFactory = $this->getFooBarSetup4( $test );
break;
case 9:
$customPathFactory = $this->getFooBarSetup5( $test );
break;
case 4:
case 1:
case 3:
case 11:
case 6:
case 7:
case 16:
$customPathFactory = $this->getIcsUciSetup1( $test );
break;
case 10:
$customPathFactory = $this->getIcsUciSetup2( $test );
break;
case 8:
$customPathFactory = $this->getServerOrgSetup( $test );
break;
default:
throw new RuntimeException( "Could not find setup for test set '$testSetName'." );
}
$test->server = $this->getServer( ( $customPathFactory === null ? $pathFactory : $customPathFactory ) );
}
protected function getFooBarSetup1( ezcWebdavClientTest $test )
{
$test->backend = new ezcWebdavMemoryBackend();
$test->backend->options->failForRegexp = '(container/resource3)';
$test->backend->options->failingOperations = ezcWebdavMemoryBackendOptions::REQUEST_DELETE;
$test->backend->addContents(
array(
'container' => array(
'front.html' => '',
'R2' => array(),
'resource3' => '',
),
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'bigbox',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:bigbox xmlns:R="http://www.foo.bar/boxschema/">
<R:BoxType>Box type A</R:BoxType>
</R:bigbox>
EOT
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'author',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:author xmlns:R="http://www.foo.bar/boxschema/">
<R:Name>Hadrian</R:Name>
</R:author>
EOT
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavCreationDateProperty(
new ezcWebdavDateTime( '1997-12-01T17:42:21-08:00' )
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDisplayNameProperty(
'Example collection'
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavResourceTypeProperty(
'collection'
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavSupportedLockProperty(
new ArrayObject(
array(
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_EXCLUSIVE
),
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_SHARED
),
)
)
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'bigbox',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:bigbox xmlns:R="http://www.foo.bar/boxschema/">
<R:BoxType>Box type B</R:BoxType>
</R:bigbox>
EOT
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavCreationDateProperty(
new ezcWebdavDateTime( '1997-12-01T18:27:21-08:00' )
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavDisplayNameProperty(
'Example HTML resource'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetContentLengthProperty(
'4525'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetContentTypeProperty(
'text/html'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetEtagProperty(
'zzyzx'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetLastModifiedProperty(
new ezcWebdavDateTime( 'Monday, 12-Jan-98 09:25:56 GMT' )
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavResourceTypeProperty()
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavSupportedLockProperty(
new ArrayObject(
array(
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_EXCLUSIVE
),
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_SHARED
),
)
)
)
);
}
protected function getFooBarSetup2( ezcWebdavClientTest $test )
{
$test->backend = new ezcWebdavMemoryBackend();
$test->backend->addContents(
array(
'file' => ''
)
);
$test->backend->setProperty(
'/file',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'bigbox',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:bigbox xmlns:R="http://www.foo.bar/boxschema/">
<R:BoxType>Box type A</R:BoxType>
</R:bigbox>
EOT
)
);
$test->backend->setProperty(
'/file',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'author',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:author xmlns:R="http://www.foo.bar/boxschema/">
<R:Name>J.J. Johnson</R:Name>
</R:author>
EOT
)
);
}
protected function getFooBarSetup3( ezcWebdavClientTest $test )
{
$test->backend = new ezcWebdavMemoryBackend();
$test->backend->options->failForRegexp = '(bar.html)';
$test->backend->options->failingOperations = ezcWebdavMemoryBackendOptions::REQUEST_PROPPATCH;
$test->backend->addContents(
array(
'bar.html' => ''
)
);
$test->backend->setProperty(
'/bar.html',
new ezcWebdavDeadProperty(
'http://www.w3.com/standards/z39.50',
'Z:Authors',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<Z:authors xmlns:Z="http://www.w3.com/standards/z39.50">
<Z:author>John Doe</Z:author>
</Z:authors>
EOT
)
);
}
protected function getFooBarSetup4( ezcWebdavClientTest $test )
{
$test->backend = new ezcWebdavMemoryBackend();
// $test->backend->options->failForRegexp = '(container/R2|container/resource3)';
$test->backend->options->failForRegexp = '(othercontainer/R2)';
$test->backend->options->failingOperations = ezcWebdavMemoryBackendOptions::REQUEST_COPY;
$test->backend->addContents(
array(
'container' => array(
'front.html' => '',
'R2/' => array(),
'resource3' => '',
),
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'bigbox',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:bigbox xmlns:R="http://www.foo.bar/boxschema/">
<R:BoxType>Box type A</R:BoxType>
</R:bigbox>
EOT
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'author',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:author xmlns:R="http://www.foo.bar/boxschema/">
<R:Name>Hadrian</R:Name>
</R:author>
EOT
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavCreationDateProperty(
new ezcWebdavDateTime( '1997-12-01T17:42:21-08:00' )
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDisplayNameProperty(
'Example collection'
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavResourceTypeProperty(
'collection'
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavSupportedLockProperty(
new ArrayObject(
array(
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_EXCLUSIVE
),
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_SHARED
),
)
)
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'bigbox',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:bigbox xmlns:R="http://www.foo.bar/boxschema/">
<R:BoxType>Box type B</R:BoxType>
</R:bigbox>
EOT
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavCreationDateProperty(
new ezcWebdavDateTime( '1997-12-01T18:27:21-08:00' )
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavDisplayNameProperty(
'Example HTML resource'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetContentLengthProperty(
'4525'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetContentTypeProperty(
'text/html'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetEtagProperty(
'zzyzx'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetLastModifiedProperty(
new ezcWebdavDateTime( 'Monday, 12-Jan-98 09:25:56 GMT' )
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavResourceTypeProperty()
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavSupportedLockProperty(
new ArrayObject(
array(
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_EXCLUSIVE
),
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_SHARED
),
)
)
)
);
return new ezcWebdavBasicPathFactory( 'http://www.foo.bar' );
}
protected function getFooBarSetup5( ezcWebdavClientTest $test )
{
$test->backend = new ezcWebdavMemoryBackend();
$test->backend->options->failForRegexp = '(othercontainer/C2)';
$test->backend->options->failingOperations = ezcWebdavMemoryBackendOptions::REQUEST_MOVE;
$test->backend->addContents(
array(
'container' => array(
'front.html' => '',
'C2/' => array(),
'resource3' => '',
),
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'bigbox',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:bigbox xmlns:R="http://www.foo.bar/boxschema/">
<R:BoxType>Box type A</R:BoxType>
</R:bigbox>
EOT
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'author',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:author xmlns:R="http://www.foo.bar/boxschema/">
<R:Name>Hadrian</R:Name>
</R:author>
EOT
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavCreationDateProperty(
new ezcWebdavDateTime( '1997-12-01T17:42:21-08:00' )
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavDisplayNameProperty(
'Example collection'
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavResourceTypeProperty(
'collection'
)
);
$test->backend->setProperty(
'/container',
new ezcWebdavSupportedLockProperty(
new ArrayObject(
array(
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_EXCLUSIVE
),
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_SHARED
),
)
)
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavDeadProperty(
'http://www.foo.bar/boxschema/',
'bigbox',
<<<EOT
<?xml version="1.0" encoding="utf-8" ?>
<R:bigbox xmlns:R="http://www.foo.bar/boxschema/">
<R:BoxType>Box type B</R:BoxType>
</R:bigbox>
EOT
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavCreationDateProperty(
new ezcWebdavDateTime( '1997-12-01T18:27:21-08:00' )
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavDisplayNameProperty(
'Example HTML resource'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetContentLengthProperty(
'4525'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetContentTypeProperty(
'text/html'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetEtagProperty(
'zzyzx'
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavGetLastModifiedProperty(
new ezcWebdavDateTime( 'Monday, 12-Jan-98 09:25:56 GMT' )
)
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavResourceTypeProperty()
);
$test->backend->setProperty(
'/container/front.html',
new ezcWebdavSupportedLockProperty(
new ArrayObject(
array(
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_EXCLUSIVE
),
new ezcWebdavSupportedLockPropertyLockentry(
ezcWebdavLockRequest::TYPE_WRITE,
ezcWebdavLockRequest::SCOPE_SHARED
),
)
)
)
);
return new ezcWebdavBasicPathFactory( 'http://www.foo.bar' );
}
protected function getIcsUciSetup1( ezcWebdavClientTest $test )
{
$test->backend = new ezcWebdavMemoryBackend();
$test->backend->addContents(
array(
'~fielding' => array(
'index.html' => "<html><head><title>Foo Bar</title></head></html>\n",
),
)
);
$test->backend->addContents(
array(
'users' => array(
'f' => array(
'fielding' => array(
'index.html' => ''
)
),
),
)
);
$test->backend->setProperty(
'/~fielding/index.html',
new ezcWebdavGetContentTypeProperty(
'text/html', 'utf-8'
)
);
$test->backend->setProperty(
'/~fielding/index.html',
new ezcWebdavGetContentLengthProperty(
'49'
)
);
}
protected function getIcsUciSetup2( ezcWebdavClientTest $test )
{
$test->backend = new ezcWebdavMemoryBackend();
$test->backend->addContents(
array(
'~fielding' => array(
'index.html' => '',
),
)
);
$test->backend->addContents(
array(
'users' => array(
'f' => array(
'fielding' => array(
)
),
),
)
);
}
protected function getServerOrgSetup( ezcWebdavClientTest $test )
{
$test->backend = new ezcWebdavMemoryBackend();
$test->backend->addContents(
array(
'webdisc' => array(),
)
);
}
}
?>