| <?php |
| /** |
| * File containing the ezcWebdavFileBackendOptionsTestCase class. |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| * @package Webdav |
| * @version //autogen// |
| * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 |
| * @subpackage Test |
| */ |
| |
| require_once dirname( __FILE__ ) . '/property_test.php'; |
| |
| /** |
| * Test case for the ezcWebdavFileBackendOptions class. |
| * |
| * @package Webdav |
| * @version //autogen// |
| * @subpackage Test |
| */ |
| class ezcWebdavLockHeaderHandlerTest extends ezcTestCase |
| { |
| public static function suite() |
| { |
| return new PHPUnit_Framework_TestSuite( __CLASS__ ); |
| } |
| |
| protected function setUp() |
| { |
| ezcWebdavServer::getInstance()->init( |
| new ezcWebdavBasicPathFactory( 'http://example.com' ), |
| new ezcWebdavXmlTool(), |
| new ezcWebdavPropertyHandler(), |
| new ezcWebdavHeaderHandler(), |
| new ezcWebdavTransport() |
| ); |
| } |
| |
| protected function tearDown() |
| { |
| ezcWebdavServer::getInstance()->reset(); |
| } |
| |
| /** |
| * testParseNoTaggedList |
| * |
| * @param mixed $content |
| * @param mixed $result |
| * @return void |
| * |
| * @dataProvider provideIfHeaderData |
| */ |
| public function testParseIfHeader( $content, $result ) |
| { |
| $_SERVER['HTTP_IF'] = $content; |
| |
| $handler = new ezcWebdavLockHeaderHandler(); |
| |
| $this->assertEquals( |
| $result, |
| $handler->parseIfHeader() |
| ); |
| } |
| |
| /** |
| * testParseTimeoutHeader |
| * |
| * @param mixed $content |
| * @param mixed $result |
| * @return void |
| * |
| * @dataProvider provideTimeoutHeaderData |
| */ |
| public function testParseTimeoutHeader( $content, $result ) |
| { |
| $_SERVER['HTTP_TIMEOUT'] = $content; |
| |
| $handler = new ezcWebdavLockHeaderHandler(); |
| |
| $this->assertEquals( |
| $result, |
| $handler->parseTimeoutHeader() |
| ); |
| } |
| |
| public function provideTimeoutHeaderData() |
| { |
| return array( |
| // Set 1 - Ususally expected |
| array( |
| 'Second-23', |
| array( 23 ) |
| ), |
| // Set 2 - Also expected |
| array( |
| 'Infinite, Second-23', |
| array( 23 ) |
| ), |
| // Set 3 - May occur |
| array( |
| 'Infinite, Second-123456789, Second-23', |
| array( 123456789, 23 ) |
| ), |
| ); |
| } |
| |
| public function provideIfHeaderData() |
| { |
| return array( |
| // Not tagged |
| array( |
| '(<locktoken:a-write-lock-token> [W/"A weak ETag"]) (["strong ETag"]) (["another strong ETag"])', |
| new ezcWebdavLockIfHeaderNoTagList( |
| array( |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'locktoken:a-write-lock-token' ) ), |
| array( new ezcWebdavLockIfHeaderCondition( 'A weak ETag' ) ) |
| ), |
| new ezcWebdavLockIfHeaderListItem( |
| array(), |
| array( new ezcWebdavLockIfHeaderCondition( 'strong ETag' ) ) |
| ), |
| new ezcWebdavLockIfHeaderListItem( |
| array(), |
| array( new ezcWebdavLockIfHeaderCondition( 'another strong ETag' ) ) |
| ), |
| ) |
| ), |
| ), |
| // Not tagged, mutiple lock tokens, from RFC |
| array( |
| '(<opaquelocktoken:fe184f2e-6eec-41d0-c765-01adc56e6bb4>) (<opaquelocktoken:e454f3f3-acdc-452a-56c7-00a5c91e4b77>)', |
| new ezcWebdavLockIfHeaderNoTagList( |
| array( |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'opaquelocktoken:fe184f2e-6eec-41d0-c765-01adc56e6bb4' ) ), |
| array() |
| ), |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'opaquelocktoken:e454f3f3-acdc-452a-56c7-00a5c91e4b77' ) ), |
| array() |
| ), |
| ) |
| ), |
| ), |
| // Not tagged, negated some |
| array( |
| '(Not <locktoken:a-write-lock-token> [W/"A weak ETag"]) (["strong ETag"]) (Not ["another strong ETag"])', |
| new ezcWebdavLockIfHeaderNoTagList( |
| array( |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'locktoken:a-write-lock-token', true ) ), |
| array( new ezcWebdavLockIfHeaderCondition( 'A weak ETag' ) ) |
| ), |
| new ezcWebdavLockIfHeaderListItem( |
| array(), |
| array( new ezcWebdavLockIfHeaderCondition( 'strong ETag' ) ) |
| ), |
| new ezcWebdavLockIfHeaderListItem( |
| array(), |
| array( new ezcWebdavLockIfHeaderCondition( 'another strong ETag', true ) ) |
| ), |
| ) |
| ), |
| ), |
| // Not tagged, lock token and etag, from Litmus |
| array( |
| '(<opaquelocktoken:43e241e1-df33-d3ee-bbfc-c613148efeb0> [fdf78d927cbf3fac5929db44c91d5783])', |
| new ezcWebdavLockIfHeaderNoTagList( |
| array( |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'opaquelocktoken:43e241e1-df33-d3ee-bbfc-c613148efeb0' ) ), |
| array( new ezcWebdavLockIfHeaderCondition( 'fdf78d927cbf3fac5929db44c91d5783' ) ) |
| ), |
| ) |
| ), |
| ), |
| // Tagged |
| array( |
| '<http://example.com/resource1> (<locktoken:a-write-lock-token> [W/"A weak ETag"]) (["strong ETag"]) <http://example.com/random> (["another strong ETag"])', |
| new ezcWebdavLockIfHeaderTaggedList( |
| array( |
| '/resource1' => array( |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'locktoken:a-write-lock-token' ) ), |
| array( new ezcWebdavLockIfHeaderCondition( 'A weak ETag' ) ) |
| ), |
| new ezcWebdavLockIfHeaderListItem( |
| array(), |
| array( new ezcWebdavLockIfHeaderCondition( 'strong ETag' ) ) |
| ), |
| ), |
| '/random' => array( |
| new ezcWebdavLockIfHeaderListItem( |
| array(), |
| array( new ezcWebdavLockIfHeaderCondition( 'another strong ETag' ) ) |
| ), |
| ), |
| ) |
| ), |
| ), |
| // Tagged, negated some |
| array( |
| '<http://example.com/resource1> (<locktoken:a-write-lock-token> [W/"A weak ETag"]) (Not ["strong ETag"]) <http://example.com/random> (Not ["another strong ETag"])', |
| new ezcWebdavLockIfHeaderTaggedList( |
| array( |
| '/resource1' => array( |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'locktoken:a-write-lock-token' ) ), |
| array( new ezcWebdavLockIfHeaderCondition( 'A weak ETag' ) ) |
| ), |
| new ezcWebdavLockIfHeaderListItem( |
| array(), |
| array( new ezcWebdavLockIfHeaderCondition( 'strong ETag', true ) ), |
| true |
| ), |
| ), |
| '/random' => array( |
| new ezcWebdavLockIfHeaderListItem( |
| array(), |
| array( new ezcWebdavLockIfHeaderCondition( 'another strong ETag', true ) ) |
| ), |
| ), |
| ) |
| ), |
| ), |
| array( |
| '<http://webdav/collection/newdir/> (<opaquelocktoken:e0491761-ef66-9c09-94be-b43d185e2ad3>) <http://webdav/collection/subdir/> (<opaquelocktoken:2e5dba96-db89-da63-e87e-f9688848a315>)', |
| new ezcWebdavLockIfHeaderTaggedList( |
| array( |
| '/collection/newdir' => array( |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'opaquelocktoken:e0491761-ef66-9c09-94be-b43d185e2ad3' ) ) |
| ), |
| ), |
| '/collection/subdir' => array( |
| new ezcWebdavLockIfHeaderListItem( |
| array( new ezcWebdavLockIfHeaderCondition( 'opaquelocktoken:2e5dba96-db89-da63-e87e-f9688848a315' ) ) |
| ), |
| ), |
| ) |
| ), |
| ), |
| ); |
| } |
| } |
| |
| ?> |