add tests against failure
This commit is contained in:
parent
dc79be6b50
commit
821aa45d7d
|
@ -498,7 +498,7 @@ $server->onMessage(function (int $connection, string $message) use ($server, $re
|
|||
switch ($message['type']) {
|
||||
case 'authentication':
|
||||
if (!array_key_exists('session', $message['data'])) {
|
||||
throw new Exception('Payload not valid.', 1003);
|
||||
throw new Exception('Payload is not valid.', 1003);
|
||||
}
|
||||
|
||||
$session = Auth::decodeSession($message['data']['session']);
|
||||
|
@ -513,7 +513,7 @@ $server->onMessage(function (int $connection, string $message) use ($server, $re
|
|||
|| !Auth::sessionVerify($user->getAttribute('sessions', []), Auth::$secret) // Validate user has valid login token
|
||||
) {
|
||||
// cookie not valid
|
||||
throw new Exception('Session not valid.', 1003);
|
||||
throw new Exception('Session is not valid.', 1003);
|
||||
}
|
||||
|
||||
$roles = Auth::getRoles($user);
|
||||
|
@ -533,7 +533,7 @@ $server->onMessage(function (int $connection, string $message) use ($server, $re
|
|||
break;
|
||||
|
||||
default:
|
||||
throw new Exception('Message type not valid.', 1003);
|
||||
throw new Exception('Message type is not valid.', 1003);
|
||||
break;
|
||||
}
|
||||
} catch (\Throwable $th) {
|
||||
|
|
|
@ -185,13 +185,16 @@ trait RealtimeBase
|
|||
$client->close();
|
||||
}
|
||||
|
||||
public function testAuthenticateMessage()
|
||||
public function testManualAuthentication()
|
||||
{
|
||||
$user = $this->getUser();
|
||||
$userId = $user['$id'] ?? '';
|
||||
$session = $user['session'] ?? '';
|
||||
$projectId = $this->getProject()['$id'];
|
||||
|
||||
/**
|
||||
* Test for SUCCESS
|
||||
*/
|
||||
$client = $this->getWebsocket(['account'], [
|
||||
'origin' => 'http://localhost'
|
||||
]);
|
||||
|
@ -219,6 +222,71 @@ trait RealtimeBase
|
|||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertEquals('authentication', $response['data']['to']);
|
||||
$this->assertTrue($response['data']['success']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($userId, $response['data']['user']['$id']);
|
||||
|
||||
/**
|
||||
* Test for FAILURE
|
||||
*/
|
||||
$client->send(\json_encode([
|
||||
'type' => 'authentication',
|
||||
'data' => [
|
||||
'session' => 'invalid_session'
|
||||
]
|
||||
]));
|
||||
|
||||
$response = json_decode($client->receive(), true);
|
||||
|
||||
$this->assertArrayHasKey('type', $response);
|
||||
$this->assertArrayHasKey('data', $response);
|
||||
$this->assertEquals('error', $response['type']);
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertEquals(1003, $response['data']['code']);
|
||||
$this->assertEquals('Session is not valid.', $response['data']['message']);
|
||||
|
||||
$client->send(\json_encode([
|
||||
'type' => 'authentication',
|
||||
'data' => []
|
||||
]));
|
||||
|
||||
$response = json_decode($client->receive(), true);
|
||||
|
||||
$this->assertArrayHasKey('type', $response);
|
||||
$this->assertArrayHasKey('data', $response);
|
||||
$this->assertEquals('error', $response['type']);
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertEquals(1003, $response['data']['code']);
|
||||
$this->assertEquals('Payload is not valid.', $response['data']['message']);
|
||||
|
||||
$client->send(\json_encode([
|
||||
'type' => 'unknown',
|
||||
'data' => [
|
||||
'session' => 'invalid_session'
|
||||
]
|
||||
]));
|
||||
|
||||
$response = json_decode($client->receive(), true);
|
||||
|
||||
$this->assertArrayHasKey('type', $response);
|
||||
$this->assertArrayHasKey('data', $response);
|
||||
$this->assertEquals('error', $response['type']);
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertEquals(1003, $response['data']['code']);
|
||||
$this->assertEquals('Message type is not valid.', $response['data']['message']);
|
||||
|
||||
$client->send(\json_encode([
|
||||
'test' => '123',
|
||||
]));
|
||||
|
||||
$response = json_decode($client->receive(), true);
|
||||
|
||||
$this->assertArrayHasKey('type', $response);
|
||||
$this->assertArrayHasKey('data', $response);
|
||||
$this->assertEquals('error', $response['type']);
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertEquals(1003, $response['data']['code']);
|
||||
$this->assertEquals('Message format is not valid.', $response['data']['message']);
|
||||
|
||||
|
||||
$client->close();
|
||||
}
|
||||
|
@ -243,6 +311,9 @@ trait RealtimeBase
|
|||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('account', $response['data']['channels']);
|
||||
$this->assertContains('account.' . $userId, $response['data']['channels']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($userId, $response['data']['user']['$id']);
|
||||
|
||||
/**
|
||||
* Test Account Name Event
|
||||
*/
|
||||
|
@ -535,6 +606,8 @@ trait RealtimeBase
|
|||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains('collections', $response['data']['channels']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($user['$id'], $response['data']['user']['$id']);
|
||||
|
||||
/**
|
||||
* Test Collection Create
|
||||
|
@ -703,6 +776,8 @@ trait RealtimeBase
|
|||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertCount(1, $response['data']['channels']);
|
||||
$this->assertContains('files', $response['data']['channels']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($user['$id'], $response['data']['user']['$id']);
|
||||
|
||||
/**
|
||||
* Test File Create
|
||||
|
@ -799,6 +874,8 @@ trait RealtimeBase
|
|||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertCount(1, $response['data']['channels']);
|
||||
$this->assertContains('executions', $response['data']['channels']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($user['$id'], $response['data']['user']['$id']);
|
||||
|
||||
/**
|
||||
* Test File Create
|
||||
|
@ -901,6 +978,8 @@ trait RealtimeBase
|
|||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertCount(1, $response['data']['channels']);
|
||||
$this->assertContains('teams', $response['data']['channels']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($user['$id'], $response['data']['user']['$id']);
|
||||
|
||||
/**
|
||||
* Test Team Create
|
||||
|
@ -985,6 +1064,8 @@ trait RealtimeBase
|
|||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertCount(1, $response['data']['channels']);
|
||||
$this->assertContains('memberships', $response['data']['channels']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($user['$id'], $response['data']['user']['$id']);
|
||||
|
||||
$response = $this->client->call(Client::METHOD_GET, '/teams/'.$teamId.'/memberships', array_merge([
|
||||
'content-type' => 'application/json',
|
||||
|
|
Loading…
Reference in a new issue