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');
 | |
|     }
 | |
| }
 |