119 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
namespace Tests\Fileshare;
 | 
						|
 | 
						|
use App\Fileshare\ConnectionTypes\NextcloudConnection;
 | 
						|
use App\Fileshare\ConnectionTypes\OwncloudConnection;
 | 
						|
use App\Fileshare\Models\Fileshare;
 | 
						|
use Tests\FileshareTestCase;
 | 
						|
 | 
						|
class FileshareFilesActionTest extends FileshareTestCase
 | 
						|
{
 | 
						|
    public function testItGetsFilesForAConnection(): void
 | 
						|
    {
 | 
						|
        $this->withoutExceptionHandling()->login()->loginNami()->withUser('badenpowell', 'ieH2auj5AhKaengoD4Taeng9o')
 | 
						|
            ->withDirs('badenpowell', ['/pictures', '/lala']);
 | 
						|
 | 
						|
        $connection = Fileshare::factory()
 | 
						|
            ->type(OwncloudConnection::from(['user' => 'badenpowell', 'password' => 'ieH2auj5AhKaengoD4Taeng9o', 'base_url' => env('TEST_OWNCLOUD_DOMAIN')]))
 | 
						|
            ->create();
 | 
						|
 | 
						|
        $this->postJson(route('api.fileshare.files', ['fileshare' => $connection]), [
 | 
						|
            'parent' => null,
 | 
						|
        ])
 | 
						|
            ->assertJsonCount(2, 'data')
 | 
						|
            ->assertJsonPath('data.0.name', 'lala')
 | 
						|
            ->assertJsonPath('data.0.path', '/lala')
 | 
						|
            ->assertJsonPath('data.0.parent', '/')
 | 
						|
            ->assertJsonPath('data.1.name', 'pictures')
 | 
						|
            ->assertJsonPath('data.1.path', '/pictures')
 | 
						|
            ->assertJsonPath('data.1.parent', '/');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testItGetsSubdirectories(): void
 | 
						|
    {
 | 
						|
        $this->withoutExceptionHandling()->login()->loginNami()->withUser('badenpowell', 'ieH2auj5AhKaengoD4Taeng9o')
 | 
						|
            ->withDirs('badenpowell', ['/pictures', '/lala', '/lala/dd', '/lala/ff']);
 | 
						|
 | 
						|
        $connection = Fileshare::factory()
 | 
						|
            ->type(OwncloudConnection::from(['user' => 'badenpowell', 'password' => 'ieH2auj5AhKaengoD4Taeng9o', 'base_url' => env('TEST_OWNCLOUD_DOMAIN')]))
 | 
						|
            ->create();
 | 
						|
 | 
						|
        $this->postJson(route('api.fileshare.files', ['fileshare' => $connection]), ['parent' => '/pictures'])->assertJsonCount(0, 'data');
 | 
						|
        $this->postJson(route('api.fileshare.files', ['fileshare' => $connection]), ['parent' => '/lala'])
 | 
						|
            ->assertJsonCount(2, 'data')
 | 
						|
            ->assertJsonPath('data.0.name', 'dd')
 | 
						|
            ->assertJsonPath('data.0.path', '/lala/dd')
 | 
						|
            ->assertJsonPath('data.0.parent', '/lala')
 | 
						|
            ->assertJsonPath('data.1.name', 'ff')
 | 
						|
            ->assertJsonPath('data.1.path', '/lala/ff')
 | 
						|
            ->assertJsonPath('data.1.parent', '/lala');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testItGetsSubdirectoriesOfSubdirectory(): void
 | 
						|
    {
 | 
						|
        $this->withoutExceptionHandling()->login()->loginNami()->withUser('badenpowell', 'ieH2auj5AhKaengoD4Taeng9o')
 | 
						|
            ->withDirs('badenpowell', ['/lala', '/lala/dd', '/lala/dd/ee']);
 | 
						|
 | 
						|
        $connection = Fileshare::factory()
 | 
						|
            ->type(OwncloudConnection::from(['user' => 'badenpowell', 'password' => 'ieH2auj5AhKaengoD4Taeng9o', 'base_url' => env('TEST_OWNCLOUD_DOMAIN')]))
 | 
						|
            ->create();
 | 
						|
 | 
						|
        $this->postJson(route('api.fileshare.files', ['fileshare' => $connection]), ['parent' => '/lala/dd'])
 | 
						|
            ->assertJsonCount(1, 'data')
 | 
						|
            ->assertJsonPath('data.0.name', 'ee')
 | 
						|
            ->assertJsonPath('data.0.path', '/lala/dd/ee')
 | 
						|
            ->assertJsonPath('data.0.parent', '/lala/dd');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testItGetsFilesWithDot(): void
 | 
						|
    {
 | 
						|
        $this->withoutExceptionHandling()->login()->loginNami()->withUser('badenpowell', 'ieH2auj5AhKaengoD4Taeng9o')
 | 
						|
            ->withDirs('badenpowell', ['/1. aa']);
 | 
						|
 | 
						|
        $connection = Fileshare::factory()
 | 
						|
            ->type(OwncloudConnection::from(['user' => 'badenpowell', 'password' => 'ieH2auj5AhKaengoD4Taeng9o', 'base_url' => env('TEST_OWNCLOUD_DOMAIN')]))
 | 
						|
            ->create();
 | 
						|
 | 
						|
        $this->postJson(route('api.fileshare.files', ['fileshare' => $connection]), ['parent' => '/'])
 | 
						|
            ->assertJsonPath('data.0.name', '1. aa');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testItGetsFilesFromNextcloudConnection(): void
 | 
						|
    {
 | 
						|
        $this->withoutExceptionHandling()->login()->loginNami()->withUser('badenpowell', 'ohke5ko7ohBae8aiPh7fuu6ka')
 | 
						|
            ->withDirs('badenpowell', ['/pictures', '/lala']);
 | 
						|
 | 
						|
        $connection = Fileshare::factory()
 | 
						|
            ->type(NextcloudConnection::from(['user' => 'badenpowell', 'password' => 'ohke5ko7ohBae8aiPh7fuu6ka', 'base_url' => env('TEST_NEXTCLOUD_DOMAIN')]))
 | 
						|
            ->create();
 | 
						|
 | 
						|
        $this->postJson(route('api.fileshare.files', ['fileshare' => $connection]), [
 | 
						|
            'parent' => null,
 | 
						|
        ])
 | 
						|
            ->assertJsonCount(2, 'data')
 | 
						|
            ->assertJsonPath('data.0.name', 'lala')
 | 
						|
            ->assertJsonPath('data.0.path', '/lala')
 | 
						|
            ->assertJsonPath('data.0.parent', '/')
 | 
						|
            ->assertJsonPath('data.1.name', 'pictures')
 | 
						|
            ->assertJsonPath('data.1.path', '/pictures')
 | 
						|
            ->assertJsonPath('data.1.parent', '/');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testItGetsNextcloudSubdirectoriesOfSubdirectory(): void
 | 
						|
    {
 | 
						|
        $this->withoutExceptionHandling()->login()->loginNami()->withUser('badenpowell', 'ailiew7AhshiWae4va9OphieN')
 | 
						|
            ->withDirs('badenpowell', ['/lala', '/lala/dd', '/lala/dd/ee']);
 | 
						|
 | 
						|
        $connection = Fileshare::factory()
 | 
						|
            ->type(OwncloudConnection::from(['user' => 'badenpowell', 'password' => 'ailiew7AhshiWae4va9OphieN', 'base_url' => env('TEST_NEXTCLOUD_DOMAIN')]))
 | 
						|
            ->create();
 | 
						|
 | 
						|
        $this->postJson(route('api.fileshare.files', ['fileshare' => $connection]), ['parent' => '/lala/dd'])
 | 
						|
            ->assertJsonCount(1, 'data')
 | 
						|
            ->assertJsonPath('data.0.name', 'ee')
 | 
						|
            ->assertJsonPath('data.0.path', '/lala/dd/ee')
 | 
						|
            ->assertJsonPath('data.0.parent', '/lala/dd');
 | 
						|
    }
 | 
						|
}
 |