mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
fix: tests as per new events system.
This commit is contained in:
@@ -42,7 +42,7 @@ trait RealtimeBase
|
||||
/**
|
||||
* Test for SUCCESS
|
||||
*/
|
||||
$client = $this->getWebsocket(["documents"]);
|
||||
$client = $this->getWebsocket(["rows"]);
|
||||
$this->assertNotEmpty($client->receive());
|
||||
$client->close();
|
||||
}
|
||||
@@ -58,7 +58,7 @@ trait RealtimeBase
|
||||
$this->assertEquals(1008, $payload["data"]["code"]);
|
||||
$this->assertEquals("Missing channels", $payload["data"]["message"]);
|
||||
\usleep(250000); // 250ms
|
||||
$this->expectException(ConnectionException::class); // Check if server disconnnected client
|
||||
$this->expectException(ConnectionException::class); // Check if server disconnected client
|
||||
$client->close();
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ trait RealtimeBase
|
||||
$payload["data"]["message"]
|
||||
);
|
||||
\usleep(250000); // 250ms
|
||||
$this->expectException(ConnectionException::class); // Check if server disconnnected client
|
||||
$this->expectException(ConnectionException::class); // Check if server disconnected client
|
||||
$client->close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,12 +201,12 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('console', $response['data']['channels']);
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.attributes.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.attributes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.attributes.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.attributes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.columns.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.columns.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.columns.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.columns.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}", $response['data']['events']);
|
||||
$this->assertContains("databases.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
@@ -222,12 +222,12 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('console', $response['data']['channels']);
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.attributes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.attributes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.attributes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.attributes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.columns.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.columns.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.columns.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.columns.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}", $response['data']['events']);
|
||||
$this->assertContains("databases.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
@@ -292,12 +292,12 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('console', $response['data']['channels']);
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.indexes.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.indexes.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.indexes.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.indexes.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
$this->assertEquals('processing', $response['data']['payload']['status']);
|
||||
|
||||
@@ -311,12 +311,12 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('console', $response['data']['channels']);
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.indexes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.indexes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.indexes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.indexes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
$this->assertEquals('available', $response['data']['payload']['status']);
|
||||
|
||||
@@ -372,12 +372,12 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('console', $response['data']['channels']);
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.indexes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.indexes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.indexes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.indexes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
|
||||
/** Delete index generates two events. One from the API and one from the database worker */
|
||||
@@ -390,12 +390,12 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('console', $response['data']['channels']);
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.indexes.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.indexes.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.indexes.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.indexes.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.indexes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
|
||||
$client->close();
|
||||
@@ -449,12 +449,12 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('console', $response['data']['channels']);
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.attributes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.attributes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.attributes.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.attributes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.columns.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.columns.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.columns.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.columns.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
|
||||
$response = json_decode($client->receive(), true);
|
||||
@@ -467,12 +467,12 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('console', $response['data']['channels']);
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.attributes.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.attributes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.attributes.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.attributes.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.columns.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.columns.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.columns.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.columns.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
|
||||
$client->close();
|
||||
@@ -607,7 +607,7 @@ class RealtimeConsoleClientTest extends Scope
|
||||
$this->assertContains("projects.{$projectId}", $response['data']['channels']);
|
||||
$this->assertArrayHasKey('buildLogs', $response['data']['payload']);
|
||||
|
||||
// Ignore comparasion for first payload
|
||||
// Ignore comparison for first payload
|
||||
if ($previousBuildLogs !== null) {
|
||||
$this->assertNotEquals($previousBuildLogs, $response['data']['payload']['buildLogs']);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ class RealtimeCustomClientTest extends Scope
|
||||
'cookie' => 'a_session_' . $this->getProject()['$id'] . '=' . $session
|
||||
];
|
||||
|
||||
$client = $this->getWebsocket(['documents'], $headers);
|
||||
$client = $this->getWebsocket(['rows'], $headers);
|
||||
$response = json_decode($client->receive(), true);
|
||||
|
||||
$this->assertArrayHasKey('type', $response);
|
||||
@@ -40,7 +40,7 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertCount(1, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertEquals($userId, $response['data']['user']['$id']);
|
||||
|
||||
$client->close();
|
||||
@@ -60,7 +60,7 @@ class RealtimeCustomClientTest extends Scope
|
||||
|
||||
$client->close();
|
||||
|
||||
$client = $this->getWebsocket(['account', 'documents', 'account.123'], $headers);
|
||||
$client = $this->getWebsocket(['account', 'rows', 'account.123'], $headers);
|
||||
$response = json_decode($client->receive(), true);
|
||||
|
||||
$this->assertArrayHasKey('type', $response);
|
||||
@@ -69,7 +69,7 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertCount(3, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains('account', $response['data']['channels']);
|
||||
$this->assertContains('account.' . $userId, $response['data']['channels']);
|
||||
$this->assertEquals($userId, $response['data']['user']['$id']);
|
||||
@@ -80,12 +80,12 @@ class RealtimeCustomClientTest extends Scope
|
||||
'account',
|
||||
'files',
|
||||
'files.1',
|
||||
'collections',
|
||||
'collections.1.documents',
|
||||
'collections.2.documents',
|
||||
'documents',
|
||||
'collections.1.documents.1',
|
||||
'collections.2.documents.2',
|
||||
'tables',
|
||||
'tables.1.rows',
|
||||
'tables.2.rows',
|
||||
'rows',
|
||||
'tables.1.rows.1',
|
||||
'tables.2.rows.2',
|
||||
], $headers);
|
||||
|
||||
$response = json_decode($client->receive(), true);
|
||||
@@ -100,12 +100,12 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertContains('account.' . $userId, $response['data']['channels']);
|
||||
$this->assertContains('files', $response['data']['channels']);
|
||||
$this->assertContains('files.1', $response['data']['channels']);
|
||||
$this->assertContains('collections', $response['data']['channels']);
|
||||
$this->assertContains('collections.1.documents', $response['data']['channels']);
|
||||
$this->assertContains('collections.2.documents', $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains('collections.1.documents.1', $response['data']['channels']);
|
||||
$this->assertContains('collections.2.documents.2', $response['data']['channels']);
|
||||
$this->assertContains('tables', $response['data']['channels']);
|
||||
$this->assertContains('tables.1.rows', $response['data']['channels']);
|
||||
$this->assertContains('tables.2.rows', $response['data']['channels']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains('tables.1.rows.1', $response['data']['channels']);
|
||||
$this->assertContains('tables.2.rows.2', $response['data']['channels']);
|
||||
$this->assertEquals($userId, $response['data']['user']['$id']);
|
||||
|
||||
$client->close();
|
||||
@@ -245,7 +245,7 @@ class RealtimeCustomClientTest extends Scope
|
||||
/**
|
||||
* Test for FAILURE
|
||||
*/
|
||||
$client = $this->getWebsocket(['documents'], ['origin' => 'http://appwrite.unknown']);
|
||||
$client = $this->getWebsocket(['rows'], ['origin' => 'http://appwrite.unknown']);
|
||||
$payload = json_decode($client->receive(), true);
|
||||
|
||||
$this->assertArrayHasKey('type', $payload);
|
||||
@@ -675,7 +675,7 @@ class RealtimeCustomClientTest extends Scope
|
||||
$session = $user['session'] ?? '';
|
||||
$projectId = $this->getProject()['$id'];
|
||||
|
||||
$client = $this->getWebsocket(['documents', 'collections'], [
|
||||
$client = $this->getWebsocket(['rows', 'tables'], [
|
||||
'origin' => 'http://localhost',
|
||||
'cookie' => 'a_session_' . $projectId . '=' . $session
|
||||
]);
|
||||
@@ -687,8 +687,8 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertEquals('connected', $response['type']);
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains('collections', $response['data']['channels']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains('tables', $response['data']['channels']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($user['$id'], $response['data']['user']['$id']);
|
||||
|
||||
@@ -770,19 +770,19 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertArrayHasKey('timestamp', $response['data']);
|
||||
$this->assertCount(3, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains('databases.' . $databaseId . '.collections.' . $actorsId . '.documents.' . $documentId, $response['data']['channels']);
|
||||
$this->assertContains('databases.' . $databaseId . '.collections.' . $actorsId . '.documents', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains('databases.' . $databaseId . '.tables.' . $actorsId . '.rows.' . $documentId, $response['data']['channels']);
|
||||
$this->assertContains('databases.' . $databaseId . '.tables.' . $actorsId . '.rows', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}", $response['data']['events']);
|
||||
$this->assertContains("databases.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
@@ -814,19 +814,19 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertArrayHasKey('timestamp', $response['data']);
|
||||
$this->assertCount(3, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}", $response['data']['events']);
|
||||
$this->assertContains("databases.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
@@ -868,19 +868,19 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertArrayHasKey('timestamp', $response['data']);
|
||||
$this->assertCount(3, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}", $response['data']['events']);
|
||||
$this->assertContains("databases.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
@@ -895,7 +895,7 @@ class RealtimeCustomClientTest extends Scope
|
||||
$session = $user['session'] ?? '';
|
||||
$projectId = $this->getProject()['$id'];
|
||||
|
||||
$client = $this->getWebsocket(['documents', 'collections'], [
|
||||
$client = $this->getWebsocket(['rows', 'tables'], [
|
||||
'origin' => 'http://localhost',
|
||||
'cookie' => 'a_session_' . $projectId . '=' . $session
|
||||
]);
|
||||
@@ -907,8 +907,8 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertEquals('connected', $response['type']);
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertCount(2, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains('collections', $response['data']['channels']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains('tables', $response['data']['channels']);
|
||||
$this->assertNotEmpty($response['data']['user']);
|
||||
$this->assertEquals($user['$id'], $response['data']['user']['$id']);
|
||||
|
||||
@@ -988,19 +988,19 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertArrayHasKey('timestamp', $response['data']);
|
||||
$this->assertCount(3, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*.create", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}", $response['data']['events']);
|
||||
$this->assertContains("databases.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
@@ -1027,19 +1027,19 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertArrayHasKey('timestamp', $response['data']);
|
||||
$this->assertCount(3, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*.update", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}", $response['data']['events']);
|
||||
$this->assertContains("databases.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
@@ -1077,19 +1077,19 @@ class RealtimeCustomClientTest extends Scope
|
||||
$this->assertNotEmpty($response['data']);
|
||||
$this->assertArrayHasKey('timestamp', $response['data']);
|
||||
$this->assertCount(3, $response['data']['channels']);
|
||||
$this->assertContains('documents', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*.documents.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.collections.*", $response['data']['events']);
|
||||
$this->assertContains('rows', $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows", $response['data']['channels']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.{$actorsId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.{$documentId}", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*.delete", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*.rows.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}.tables.*", $response['data']['events']);
|
||||
$this->assertContains("databases.{$databaseId}", $response['data']['events']);
|
||||
$this->assertContains("databases.*", $response['data']['events']);
|
||||
$this->assertNotEmpty($response['data']['payload']);
|
||||
|
||||
@@ -83,10 +83,10 @@ trait WebhooksBase
|
||||
$this->assertEquals($webhook['method'], 'POST');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.create', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.create', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
@@ -155,12 +155,12 @@ trait WebhooksBase
|
||||
$this->assertEquals($webhook['method'], 'POST');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.attributes.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.attributes.*.create', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.attributes.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.attributes.*.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.columns.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.columns.*.create', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.columns.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.columns.*.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
@@ -181,12 +181,12 @@ trait WebhooksBase
|
||||
// $this->assertEquals($webhook['method'], 'DELETE');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.attributes.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.attributes.*.update', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.attributes.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.attributes.*.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.columns.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.columns.*.update', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.columns.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.columns.*.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
@@ -234,16 +234,16 @@ trait WebhooksBase
|
||||
$this->assertEquals($webhook['method'], 'POST');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.documents.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.documents.*.create', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.*.documents.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.*.documents.{$documentId}.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.*.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.rows.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.rows.*.create', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.*.rows.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.*.rows.{$documentId}.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.*.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
@@ -296,16 +296,16 @@ trait WebhooksBase
|
||||
$this->assertEquals($webhook['method'], 'POST');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.documents.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.documents.*.update', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.*.documents.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.*.documents.{$documentId}.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.*.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.rows.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.rows.*.update', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.*.rows.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.*.rows.{$documentId}.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.*.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
@@ -366,16 +366,16 @@ trait WebhooksBase
|
||||
$this->assertEquals($webhook['method'], 'POST');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.documents.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.documents.*.delete', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.*.documents.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.*.documents.{$documentId}.delete", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.*.delete", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.documents.{$documentId}.delete", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.rows.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.rows.*.delete', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.*.rows.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.*.rows.{$documentId}.delete", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.*.delete", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.rows.{$documentId}.delete", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
|
||||
@@ -48,10 +48,10 @@ class WebhooksCustomServerTest extends Scope
|
||||
$this->assertEquals($webhook['method'], 'POST');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.update', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$id}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$id}.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.update', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$id}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$id}.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
@@ -96,12 +96,12 @@ class WebhooksCustomServerTest extends Scope
|
||||
$this->assertEquals($webhook['method'], 'POST');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.indexes.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.indexes.*.create', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.indexes.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.indexes.*.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.indexes.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.indexes.*.create', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.indexes.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.indexes.*.create", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
@@ -121,12 +121,12 @@ class WebhooksCustomServerTest extends Scope
|
||||
// $this->assertEquals($webhook['method'], 'DELETE');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.indexes.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.indexes.*.update', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.indexes.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$actorsId}.indexes.*.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.indexes.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.indexes.*.update', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.indexes.*", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$actorsId}.indexes.*.update", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
@@ -189,10 +189,10 @@ class WebhooksCustomServerTest extends Scope
|
||||
$this->assertEquals($webhook['method'], 'POST');
|
||||
$this->assertEquals($webhook['headers']['Content-Type'], 'application/json');
|
||||
$this->assertEquals($webhook['headers']['User-Agent'], 'Appwrite-Server vdev. Please report abuse at security@appwrite.io');
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.collections.*.delete', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$id}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.collections.{$id}.delete", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString('databases.' . $databaseId . '.tables.*.delete', $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$id}", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertStringContainsString("databases.{$databaseId}.tables.{$id}.delete", $webhook['headers']['X-Appwrite-Webhook-Events']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Signature'], $signatureExpected);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Id'] ?? '', $this->getProject()['webhookId']);
|
||||
$this->assertEquals($webhook['headers']['X-Appwrite-Webhook-Project-Id'] ?? '', $this->getProject()['$id']);
|
||||
|
||||
@@ -93,57 +93,57 @@ class EventTest extends TestCase
|
||||
$this->assertContains('users.*.update', $event);
|
||||
$this->assertContains('users.*', $event);
|
||||
|
||||
$event = Event::generateEvents('collections.[collectionId].documents.[documentId].create', [
|
||||
'collectionId' => 'chapters',
|
||||
'documentId' => 'prolog',
|
||||
$event = Event::generateEvents('tables.[tableId].rows.[rowId].create', [
|
||||
'tableId' => 'chapters',
|
||||
'rowId' => 'prolog',
|
||||
]);
|
||||
$this->assertCount(10, $event);
|
||||
|
||||
$this->assertContains('collections.chapters.documents.prolog.create', $event);
|
||||
$this->assertContains('collections.chapters.documents.prolog', $event);
|
||||
$this->assertContains('collections.chapters.documents.*.create', $event);
|
||||
$this->assertContains('collections.chapters.documents.*', $event);
|
||||
$this->assertContains('collections.chapters', $event);
|
||||
$this->assertContains('collections.*.documents.prolog.create', $event);
|
||||
$this->assertContains('collections.*.documents.prolog', $event);
|
||||
$this->assertContains('collections.*.documents.*.create', $event);
|
||||
$this->assertContains('collections.*.documents.*', $event);
|
||||
$this->assertContains('collections.*', $event);
|
||||
$this->assertContains('tables.chapters.rows.prolog.create', $event);
|
||||
$this->assertContains('tables.chapters.rows.prolog', $event);
|
||||
$this->assertContains('tables.chapters.rows.*.create', $event);
|
||||
$this->assertContains('tables.chapters.rows.*', $event);
|
||||
$this->assertContains('tables.chapters', $event);
|
||||
$this->assertContains('tables.*.rows.prolog.create', $event);
|
||||
$this->assertContains('tables.*.rows.prolog', $event);
|
||||
$this->assertContains('tables.*.rows.*.create', $event);
|
||||
$this->assertContains('tables.*.rows.*', $event);
|
||||
$this->assertContains('tables.*', $event);
|
||||
|
||||
$event = Event::generateEvents('databases.[databaseId].collections.[collectionId].documents.[documentId].create', [
|
||||
$event = Event::generateEvents('databases.[databaseId].tables.[tableId].rows.[rowId].create', [
|
||||
'databaseId' => 'chaptersDB',
|
||||
'collectionId' => 'chapters',
|
||||
'documentId' => 'prolog',
|
||||
'tableId' => 'chapters',
|
||||
'rowId' => 'prolog',
|
||||
]);
|
||||
|
||||
$this->assertCount(22, $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.chapters.documents.prolog.create', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.chapters.documents.prolog', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.chapters.documents.*.create', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.chapters.documents.*', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.chapters', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.*.documents.prolog.create', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.*.documents.prolog', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.*', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.chapters.rows.prolog.create', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.chapters.rows.prolog', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.chapters.rows.*.create', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.chapters.rows.*', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.chapters', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.*.rows.prolog.create', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.*.rows.prolog', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.*', $event);
|
||||
$this->assertContains('databases.chaptersDB', $event);
|
||||
$this->assertContains('databases.*.collections.chapters.documents.prolog.create', $event);
|
||||
$this->assertContains('databases.*.collections.chapters.documents.prolog', $event);
|
||||
$this->assertContains('databases.*.collections.chapters', $event);
|
||||
$this->assertContains('databases.*.collections.*.documents.*.create', $event);
|
||||
$this->assertContains('databases.*.collections.*.documents.*', $event);
|
||||
$this->assertContains('databases.*.collections.*', $event);
|
||||
$this->assertContains('databases.*.tables.chapters.rows.prolog.create', $event);
|
||||
$this->assertContains('databases.*.tables.chapters.rows.prolog', $event);
|
||||
$this->assertContains('databases.*.tables.chapters', $event);
|
||||
$this->assertContains('databases.*.tables.*.rows.*.create', $event);
|
||||
$this->assertContains('databases.*.tables.*.rows.*', $event);
|
||||
$this->assertContains('databases.*.tables.*', $event);
|
||||
$this->assertContains('databases.*', $event);
|
||||
$this->assertContains('databases.*.collections.*.documents.prolog', $event);
|
||||
$this->assertContains('databases.*.collections.*.documents.prolog.create', $event);
|
||||
$this->assertContains('databases.*.collections.chapters.documents.*', $event);
|
||||
$this->assertContains('databases.*.collections.chapters.documents.*.create', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.*.documents.*', $event);
|
||||
$this->assertContains('databases.chaptersDB.collections.*.documents.*.create', $event);
|
||||
$this->assertContains('databases.*.tables.*.rows.prolog', $event);
|
||||
$this->assertContains('databases.*.tables.*.rows.prolog.create', $event);
|
||||
$this->assertContains('databases.*.tables.chapters.rows.*', $event);
|
||||
$this->assertContains('databases.*.tables.chapters.rows.*.create', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.*.rows.*', $event);
|
||||
$this->assertContains('databases.chaptersDB.tables.*.rows.*.create', $event);
|
||||
|
||||
|
||||
try {
|
||||
$event = Event::generateEvents('collections.[collectionId].documents.[documentId].create', [
|
||||
'collectionId' => 'chapters'
|
||||
$event = Event::generateEvents('tables.[tableId].rows.[rowId].create', [
|
||||
'tableId' => 'chapters'
|
||||
]);
|
||||
$this->fail();
|
||||
} catch (\Throwable $th) {
|
||||
@@ -151,7 +151,7 @@ class EventTest extends TestCase
|
||||
}
|
||||
|
||||
try {
|
||||
$event = Event::generateEvents('collections.[collectionId].documents.[documentId].create');
|
||||
$event = Event::generateEvents('tables.[tableId].rows.[rowId].create');
|
||||
$this->fail();
|
||||
} catch (\Throwable $th) {
|
||||
$this->assertInstanceOf(InvalidArgumentException::class, $th, 'An invalid exception was thrown');
|
||||
|
||||
@@ -7,7 +7,7 @@ use Utopia\Queue\Queue;
|
||||
|
||||
class MockPublisher implements Publisher
|
||||
{
|
||||
private $events = [];
|
||||
private array $events = [];
|
||||
|
||||
public function enqueue(Queue $queue, array $payload): bool
|
||||
{
|
||||
|
||||
@@ -29,27 +29,27 @@ class EventValidatorTest extends TestCase
|
||||
$this->assertTrue($this->object->isValid('users.*.update.email'));
|
||||
$this->assertTrue($this->object->isValid('users.*.update'));
|
||||
$this->assertTrue($this->object->isValid('users.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters.documents.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters.documents.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters.documents.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters.documents.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*.documents.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*.documents.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*.documents.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*.documents.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.chapters.documents.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.chapters.documents.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.chapters.documents.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.chapters.documents.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*.documents.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*.documents.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*.documents.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*.documents.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters.rows.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters.rows.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters.rows.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters.rows.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*.rows.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*.rows.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*.rows.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*.rows.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.chapters.rows.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.chapters.rows.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.chapters.rows.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.chapters.rows.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*.rows.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*.rows.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*.rows.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*.rows.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*'));
|
||||
$this->assertTrue($this->object->isValid('functions.*'));
|
||||
$this->assertTrue($this->object->isValid('buckets.*'));
|
||||
$this->assertTrue($this->object->isValid('teams.*'));
|
||||
@@ -63,9 +63,9 @@ class EventValidatorTest extends TestCase
|
||||
$this->assertFalse($this->object->isValid(null));
|
||||
$this->assertFalse($this->object->isValid(''));
|
||||
$this->assertFalse($this->object->isValid('unknown.*'));
|
||||
$this->assertFalse($this->object->isValid('collections'));
|
||||
$this->assertFalse($this->object->isValid('collections.*.unknown'));
|
||||
$this->assertFalse($this->object->isValid('collections.*.documents.*.unknown'));
|
||||
$this->assertFalse($this->object->isValid('tables'));
|
||||
$this->assertFalse($this->object->isValid('tables.*.unknown'));
|
||||
$this->assertFalse($this->object->isValid('tables.*.rows.*.unknown'));
|
||||
$this->assertFalse($this->object->isValid('users.torsten.unknown'));
|
||||
$this->assertFalse($this->object->isValid('users.torsten.delete.email'));
|
||||
$this->assertFalse($this->object->isValid('teams.*.memberships.*.update.unknown'));
|
||||
|
||||
@@ -29,27 +29,27 @@ class FunctionEventValidatorTest extends TestCase
|
||||
$this->assertTrue($this->object->isValid('users.*.update.email'));
|
||||
$this->assertTrue($this->object->isValid('users.*.update'));
|
||||
$this->assertTrue($this->object->isValid('users.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters.documents.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters.documents.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters.documents.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters.documents.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*.documents.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*.documents.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*.documents.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*.documents.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.chapters.documents.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.chapters.documents.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.chapters.documents.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.chapters.documents.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*.documents.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*.documents.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*.documents.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*.documents.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.collections.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters.rows.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters.rows.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters.rows.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters.rows.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*.rows.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*.rows.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*.rows.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*.rows.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.chapters.rows.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.chapters.rows.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.chapters.rows.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.chapters.rows.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*.rows.prolog.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*.rows.prolog'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*.rows.*.create'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*.rows.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*.tables.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.chapters'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.collections.*'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.chapters'));
|
||||
$this->assertTrue($this->object->isValid('databases.books.tables.*'));
|
||||
$this->assertTrue($this->object->isValid('buckets.*'));
|
||||
$this->assertTrue($this->object->isValid('teams.*'));
|
||||
$this->assertTrue($this->object->isValid('users.*'));
|
||||
@@ -62,9 +62,9 @@ class FunctionEventValidatorTest extends TestCase
|
||||
$this->assertFalse($this->object->isValid(null));
|
||||
$this->assertFalse($this->object->isValid(''));
|
||||
$this->assertFalse($this->object->isValid('unknown.*'));
|
||||
$this->assertFalse($this->object->isValid('collections'));
|
||||
$this->assertFalse($this->object->isValid('collections.*.unknown'));
|
||||
$this->assertFalse($this->object->isValid('collections.*.documents.*.unknown'));
|
||||
$this->assertFalse($this->object->isValid('tables'));
|
||||
$this->assertFalse($this->object->isValid('tables.*.unknown'));
|
||||
$this->assertFalse($this->object->isValid('tables.*.rows.*.unknown'));
|
||||
$this->assertFalse($this->object->isValid('users.torsten.unknown'));
|
||||
$this->assertFalse($this->object->isValid('users.torsten.delete.email'));
|
||||
$this->assertFalse($this->object->isValid('teams.*.memberships.*.update.unknown'));
|
||||
|
||||
@@ -35,7 +35,7 @@ class MessagingTest extends TestCase
|
||||
Role::team(ID::custom('def'))->toString(),
|
||||
Role::team(ID::custom('def'), 'guest')->toString(),
|
||||
],
|
||||
['files' => 0, 'documents' => 0, 'documents.789' => 0, 'account.123' => 0]
|
||||
['files' => 0, 'rows' => 0, 'rows.789' => 0, 'account.123' => 0]
|
||||
);
|
||||
|
||||
$event = [
|
||||
@@ -115,13 +115,13 @@ class MessagingTest extends TestCase
|
||||
$this->assertEmpty($receivers);
|
||||
|
||||
$event['roles'] = [Role::any()->toString()];
|
||||
$event['data']['channels'] = ['documents.123'];
|
||||
$event['data']['channels'] = ['rows.123'];
|
||||
|
||||
$receivers = $realtime->getSubscribers($event);
|
||||
|
||||
$this->assertEmpty($receivers);
|
||||
|
||||
$event['data']['channels'] = ['documents.789'];
|
||||
$event['data']['channels'] = ['rows.789'];
|
||||
|
||||
$receivers = $realtime->getSubscribers($event);
|
||||
|
||||
@@ -153,8 +153,8 @@ class MessagingTest extends TestCase
|
||||
|
||||
$channels = [
|
||||
0 => 'files',
|
||||
1 => 'documents',
|
||||
2 => 'documents.789',
|
||||
1 => 'rows',
|
||||
2 => 'rows.789',
|
||||
3 => 'account',
|
||||
4 => 'account.456'
|
||||
];
|
||||
@@ -162,8 +162,8 @@ class MessagingTest extends TestCase
|
||||
$channels = Realtime::convertChannels($channels, $user->getId());
|
||||
$this->assertCount(4, $channels);
|
||||
$this->assertArrayHasKey('files', $channels);
|
||||
$this->assertArrayHasKey('documents', $channels);
|
||||
$this->assertArrayHasKey('documents.789', $channels);
|
||||
$this->assertArrayHasKey('rows', $channels);
|
||||
$this->assertArrayHasKey('rows.789', $channels);
|
||||
$this->assertArrayHasKey('account', $channels);
|
||||
$this->assertArrayNotHasKey('account.456', $channels);
|
||||
}
|
||||
@@ -190,8 +190,8 @@ class MessagingTest extends TestCase
|
||||
]);
|
||||
$channels = [
|
||||
0 => 'files',
|
||||
1 => 'documents',
|
||||
2 => 'documents.789',
|
||||
1 => 'rows',
|
||||
2 => 'rows.789',
|
||||
3 => 'account',
|
||||
4 => 'account.456'
|
||||
];
|
||||
@@ -200,8 +200,8 @@ class MessagingTest extends TestCase
|
||||
|
||||
$this->assertCount(5, $channels);
|
||||
$this->assertArrayHasKey('files', $channels);
|
||||
$this->assertArrayHasKey('documents', $channels);
|
||||
$this->assertArrayHasKey('documents.789', $channels);
|
||||
$this->assertArrayHasKey('rows', $channels);
|
||||
$this->assertArrayHasKey('rows.789', $channels);
|
||||
$this->assertArrayHasKey('account.123', $channels);
|
||||
$this->assertArrayHasKey('account', $channels);
|
||||
$this->assertArrayNotHasKey('account.456', $channels);
|
||||
@@ -213,10 +213,10 @@ class MessagingTest extends TestCase
|
||||
* Test Collection Level Permissions
|
||||
*/
|
||||
$result = Realtime::fromPayload(
|
||||
event: 'databases.database_id.collections.collection_id.documents.document_id.create',
|
||||
event: 'databases.database_id.tables.collection_id.rows.document_id.create',
|
||||
payload: new Document([
|
||||
'$id' => ID::custom('test'),
|
||||
'$collection' => ID::custom('collection'),
|
||||
'$collection' => ID::custom('table'),
|
||||
'$permissions' => [
|
||||
Permission::read(Role::team('123abc')),
|
||||
Permission::update(Role::team('123abc')),
|
||||
@@ -226,8 +226,8 @@ class MessagingTest extends TestCase
|
||||
database: new Document([
|
||||
'$id' => ID::custom('database'),
|
||||
]),
|
||||
collection: new Document([
|
||||
'$id' => ID::custom('collection'),
|
||||
table: new Document([
|
||||
'$id' => ID::custom('table'),
|
||||
'$permissions' => [
|
||||
Permission::read(Role::any()),
|
||||
Permission::update(Role::any()),
|
||||
@@ -243,10 +243,10 @@ class MessagingTest extends TestCase
|
||||
* Test Document Level Permissions
|
||||
*/
|
||||
$result = Realtime::fromPayload(
|
||||
event: 'databases.database_id.collections.collection_id.documents.document_id.create',
|
||||
event: 'databases.database_id.tables.collection_id.rows.document_id.create',
|
||||
payload: new Document([
|
||||
'$id' => ID::custom('test'),
|
||||
'$collection' => ID::custom('collection'),
|
||||
'$collection' => ID::custom('table'),
|
||||
'$permissions' => [
|
||||
Permission::read(Role::any()),
|
||||
Permission::update(Role::any()),
|
||||
@@ -256,8 +256,8 @@ class MessagingTest extends TestCase
|
||||
database: new Document([
|
||||
'$id' => ID::custom('database'),
|
||||
]),
|
||||
collection: new Document([
|
||||
'$id' => ID::custom('collection'),
|
||||
table: new Document([
|
||||
'$id' => ID::custom('table'),
|
||||
'$permissions' => [
|
||||
Permission::read(Role::team('123abc')),
|
||||
Permission::update(Role::team('123abc')),
|
||||
|
||||
Reference in New Issue
Block a user