Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/Controller/SharedFoldersTest.php
Show All 12 Lines | class SharedFoldersTest extends TestCase | ||||
/** | /** | ||||
* {@inheritDoc} | * {@inheritDoc} | ||||
*/ | */ | ||||
public function setUp(): void | public function setUp(): void | ||||
{ | { | ||||
parent::setUp(); | parent::setUp(); | ||||
$this->deleteTestSharedFolder('folder-test@kolab.org'); | $this->deleteTestSharedFolder('folder-test@kolab.org'); | ||||
SharedFolder::where('name', 'Test Folder')->delete(); | SharedFolder::where('name', 'like', 'Test_Folder')->forceDelete(); | ||||
} | } | ||||
/** | /** | ||||
* {@inheritDoc} | * {@inheritDoc} | ||||
*/ | */ | ||||
public function tearDown(): void | public function tearDown(): void | ||||
{ | { | ||||
$this->deleteTestSharedFolder('folder-test@kolab.org'); | $this->deleteTestSharedFolder('folder-test@kolab.org'); | ||||
SharedFolder::where('name', 'Test Folder')->delete(); | SharedFolder::where('name', 'like', 'Test_Folder')->forceDelete(); | ||||
parent::tearDown(); | parent::tearDown(); | ||||
} | } | ||||
/** | /** | ||||
* Test resource deleting (DELETE /api/v4/resources/<id>) | * Test resource deleting (DELETE /api/v4/resources/<id>) | ||||
*/ | */ | ||||
public function testDestroy(): void | public function testDestroy(): void | ||||
▲ Show 20 Lines • Show All 397 Lines • ▼ Show 20 Lines | public function testStore(): void | ||||
$this->assertSame(["The name may not be greater than 191 characters."], $json['errors']['name']); | $this->assertSame(["The name may not be greater than 191 characters."], $json['errors']['name']); | ||||
$this->assertSame(["The specified type is invalid."], $json['errors']['type']); | $this->assertSame(["The specified type is invalid."], $json['errors']['type']); | ||||
$this->assertSame(["The specified domain is invalid."], $json['errors']['aliases']); | $this->assertSame(["The specified domain is invalid."], $json['errors']['aliases']); | ||||
$this->assertCount(3, $json['errors']); | $this->assertCount(3, $json['errors']); | ||||
// Test successful folder creation | // Test successful folder creation | ||||
$post['name'] = 'Test Folder'; | $post['name'] = 'Test Folder'; | ||||
$post['type'] = 'event'; | $post['type'] = 'event'; | ||||
$post['aliases'] = ['folder-alias@kolab.org']; // expected to be ignored | $post['aliases'] = []; | ||||
$response = $this->actingAs($john)->post("/api/v4/shared-folders", $post); | $response = $this->actingAs($john)->post("/api/v4/shared-folders", $post); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$this->assertSame('success', $json['status']); | $this->assertSame('success', $json['status']); | ||||
$this->assertSame("Shared folder created successfully.", $json['message']); | $this->assertSame("Shared folder created successfully.", $json['message']); | ||||
Show All 24 Lines | public function testStore(): void | ||||
$post['aliases'] = ['folder-alias@kolab.org']; | $post['aliases'] = ['folder-alias@kolab.org']; | ||||
$response = $this->actingAs($john)->post("/api/v4/shared-folders", $post); | $response = $this->actingAs($john)->post("/api/v4/shared-folders", $post); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$folder = SharedFolder::where('name', $post['name'])->first(); | $folder = SharedFolder::where('name', $post['name'])->first(); | ||||
$this->assertSame(['folder-alias@kolab.org'], $folder->aliases()->pluck('alias')->all()); | $this->assertSame(['folder-alias@kolab.org'], $folder->aliases()->pluck('alias')->all()); | ||||
$folder->forceDelete(); | |||||
// Test handling subfolders and lmtp alias email | |||||
$post['name'] = 'Test/Folder'; | |||||
$post['type'] = 'mail'; | |||||
$post['aliases'] = ['shared+shared/Test/Folder@kolab.org']; | |||||
$response = $this->actingAs($john)->post("/api/v4/shared-folders", $post); | |||||
$json = $response->json(); | |||||
$response->assertStatus(200); | |||||
$folder = SharedFolder::where('name', $post['name'])->first(); | |||||
$this->assertSame(['shared+shared/Test/Folder@kolab.org'], $folder->aliases()->pluck('alias')->all()); | |||||
} | } | ||||
/** | /** | ||||
* Test shared folder update (PUT /api/v4/shared-folders/<folder) | * Test shared folder update (PUT /api/v4/shared-folders/<folder) | ||||
*/ | */ | ||||
public function testUpdate(): void | public function testUpdate(): void | ||||
{ | { | ||||
Queue::fake(); | Queue::fake(); | ||||
▲ Show 20 Lines • Show All 70 Lines • Show Last 20 Lines |