Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/Controller/OpenViduTest.php
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | public function testJoinRoom(): void | ||||
$room = Room::where('name', 'john')->first(); | $room = Room::where('name', 'john')->first(); | ||||
$room->session_id = null; | $room->session_id = null; | ||||
$room->save(); | $room->save(); | ||||
$this->assignBetaEntitlement($john, 'meet'); | $this->assignBetaEntitlement($john, 'meet'); | ||||
// Unauth access, no session yet | // Unauth access, no session yet | ||||
$response = $this->post("api/v4/openvidu/rooms/{$room->name}"); | $response = $this->post("api/v4/openvidu/rooms/{$room->name}"); | ||||
$response->assertStatus(423); | $response->assertStatus(422); | ||||
$json = $response->json(); | |||||
$this->assertSame(323, $json['code']); | |||||
// Non-existing room name | // Non-existing room name | ||||
$response = $this->actingAs($john)->post("api/v4/openvidu/rooms/non-existing"); | $response = $this->actingAs($john)->post("api/v4/openvidu/rooms/non-existing"); | ||||
$response->assertStatus(404); | $response->assertStatus(404); | ||||
// TODO: Test accessing an existing room of deleted owner | // TODO: Test accessing an existing room of deleted owner | ||||
// Non-owner, no session yet | // Non-owner, no session yet | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}"); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}"); | ||||
$response->assertStatus(423); | $response->assertStatus(422); | ||||
$json = $response->json(); | |||||
$this->assertSame(323, $json['code']); | |||||
// Room owner, no session yet | // Room owner, no session yet | ||||
$response = $this->actingAs($john)->post("api/v4/openvidu/rooms/{$room->name}"); | $response = $this->actingAs($john)->post("api/v4/openvidu/rooms/{$room->name}"); | ||||
$response->assertStatus(424); | $response->assertStatus(422); | ||||
$json = $response->json(); | |||||
$this->assertSame(324, $json['code']); | |||||
$response = $this->actingAs($john)->post("api/v4/openvidu/rooms/{$room->name}", ['init' => 1]); | $response = $this->actingAs($john)->post("api/v4/openvidu/rooms/{$room->name}", ['init' => 1]); | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$session_id = $room->fresh()->session_id; | $session_id = $room->fresh()->session_id; | ||||
Show All 17 Lines | public function testJoinRoom(): void | ||||
$this->assertTrue($json['token'] != $john_token); | $this->assertTrue($json['token'] != $john_token); | ||||
$this->assertTrue(!array_key_exists('shareToken', $json)); | $this->assertTrue(!array_key_exists('shareToken', $json)); | ||||
$this->assertEmpty($json['config']['password']); | $this->assertEmpty($json['config']['password']); | ||||
$this->assertEmpty($json['config']['requires_password']); | $this->assertEmpty($json['config']['requires_password']); | ||||
// Non-owner, password protected room, password not provided | // Non-owner, password protected room, password not provided | ||||
$room->setSettings(['password' => 'pass']); | $room->setSettings(['password' => 'pass']); | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}"); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}"); | ||||
$response->assertStatus(425); | $response->assertStatus(422); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$this->assertCount(3, $json); | $this->assertCount(4, $json); | ||||
$this->assertSame(325, $json['code']); | |||||
$this->assertSame('error', $json['status']); | $this->assertSame('error', $json['status']); | ||||
$this->assertSame('Failed to join the session. Invalid password.', $json['message']); | $this->assertSame('Failed to join the session. Invalid password.', $json['message']); | ||||
$this->assertEmpty($json['config']['password']); | $this->assertEmpty($json['config']['password']); | ||||
$this->assertTrue($json['config']['requires_password']); | $this->assertTrue($json['config']['requires_password']); | ||||
// Non-owner, password protected room, invalid provided | // Non-owner, password protected room, invalid provided | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", ['password' => 'aa']); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", ['password' => 'aa']); | ||||
$response->assertStatus(425); | $response->assertStatus(422); | ||||
$json = $response->json(); | |||||
$this->assertSame(325, $json['code']); | |||||
// Non-owner, password protected room, valid password provided | // Non-owner, password protected room, valid password provided | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", ['password' => 'pass']); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", ['password' => 'pass']); | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$this->assertSame($session_id, $json['session']); | $this->assertSame($session_id, $json['session']); | ||||
Show All 20 Lines | public function testJoinRequests(): void | ||||
$this->assignBetaEntitlement($john, 'meet'); | $this->assignBetaEntitlement($john, 'meet'); | ||||
// Create the session (also makes sure the owner can access a locked room) | // Create the session (also makes sure the owner can access a locked room) | ||||
$response = $this->actingAs($john)->post("api/v4/openvidu/rooms/{$room->name}", ['init' => 1]); | $response = $this->actingAs($john)->post("api/v4/openvidu/rooms/{$room->name}", ['init' => 1]); | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
// Non-owner, locked room, invalid/missing input | // Non-owner, locked room, invalid/missing input | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}"); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}"); | ||||
$response->assertStatus(426); | $response->assertStatus(422); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$this->assertCount(3, $json); | $this->assertCount(4, $json); | ||||
$this->assertSame(326, $json['code']); | |||||
$this->assertSame('error', $json['status']); | $this->assertSame('error', $json['status']); | ||||
$this->assertSame('Failed to join the session. Room locked.', $json['message']); | $this->assertSame('Failed to join the session. Room locked.', $json['message']); | ||||
$this->assertTrue($json['config']['locked']); | $this->assertTrue($json['config']['locked']); | ||||
// Non-owner, locked room, invalid requestId | // Non-owner, locked room, invalid requestId | ||||
$post = ['nickname' => 'name', 'requestId' => '-----']; | $post = ['nickname' => 'name', 'requestId' => '-----']; | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", $post); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", $post); | ||||
$response->assertStatus(426); | $response->assertStatus(422); | ||||
$json = $response->json(); | |||||
$this->assertSame(326, $json['code']); | |||||
// Non-owner, locked room, invalid requestId | // Non-owner, locked room, invalid requestId | ||||
$post = ['nickname' => 'name', 'picture' => '-----']; | $post = ['nickname' => 'name', 'picture' => '-----']; | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", $post); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", $post); | ||||
$response->assertStatus(426); | $response->assertStatus(422); | ||||
$json = $response->json(); | |||||
$this->assertSame(326, $json['code']); | |||||
// Non-owner, locked room, valid input | // Non-owner, locked room, valid input | ||||
$reqId = '12345678'; | $reqId = '12345678'; | ||||
$post = ['nickname' => 'name', 'requestId' => $reqId, 'picture' => 'data:image/png;base64,01234']; | $post = ['nickname' => 'name', 'requestId' => $reqId, 'picture' => 'data:image/png;base64,01234']; | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", $post); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", $post); | ||||
$response->assertStatus(427); | $response->assertStatus(422); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$this->assertCount(3, $json); | $this->assertCount(4, $json); | ||||
$this->assertSame(327, $json['code']); | |||||
$this->assertSame('error', $json['status']); | $this->assertSame('error', $json['status']); | ||||
$this->assertSame('Failed to join the session. Room locked.', $json['message']); | $this->assertSame('Failed to join the session. Room locked.', $json['message']); | ||||
$this->assertTrue($json['config']['locked']); | $this->assertTrue($json['config']['locked']); | ||||
// TODO: How do we assert that a signal has been sent to the owner? | // TODO: How do we assert that a signal has been sent to the owner? | ||||
// Test denying a request | // Test denying a request | ||||
Show All 18 Lines | public function testJoinRequests(): void | ||||
$response = $this->actingAs($john)->post("api/v4/openvidu/rooms/{$room->name}/request/{$reqId}/deny"); | $response = $this->actingAs($john)->post("api/v4/openvidu/rooms/{$room->name}/request/{$reqId}/deny"); | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$this->assertSame('success', $json['status']); | $this->assertSame('success', $json['status']); | ||||
// Non-owner, locked room, join request denied | // Non-owner, locked room, join request denied | ||||
$response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", $post); | $response = $this->actingAs($jack)->post("api/v4/openvidu/rooms/{$room->name}", $post); | ||||
$response->assertStatus(427); | $response->assertStatus(422); | ||||
$json = $response->json(); | |||||
$this->assertSame(327, $json['code']); | |||||
// Test accepting a request | // Test accepting a request | ||||
// Unknown room | // Unknown room | ||||
$response = $this->actingAs($john)->post("api/v4/openvidu/rooms/unknown/request/unknown/accept"); | $response = $this->actingAs($john)->post("api/v4/openvidu/rooms/unknown/request/unknown/accept"); | ||||
$response->assertStatus(404); | $response->assertStatus(404); | ||||
// Unknown request Id | // Unknown request Id | ||||
▲ Show 20 Lines • Show All 251 Lines • Show Last 20 Lines |