1
0
Fork 0
mirror of synced 2024-05-19 04:02:34 +12:00
appwrite/tests/unit/Event/Validator/EventValidatorTest.php

76 lines
4 KiB
PHP
Raw Normal View History

2022-04-04 18:30:07 +12:00
<?php
namespace Appwrite\Tests;
use Appwrite\Event\Validator\Event;
use PHPUnit\Framework\TestCase;
2022-04-21 01:34:55 +12:00
use Utopia\Config\Config;
2022-04-04 18:30:07 +12:00
class EventValidatorTest extends TestCase
{
protected ?Event $object = null;
public function setUp(): void
{
2022-05-24 02:54:50 +12:00
Config::load('events', __DIR__ . '/../../../../app/config/events.php');
2022-04-04 18:30:07 +12:00
$this->object = new Event();
}
public function tearDown(): void
{
}
public function testValues()
{
2022-04-21 01:34:55 +12:00
/**
* Test for SUCCESS
*/
2022-04-04 18:30:07 +12:00
$this->assertTrue($this->object->isValid('users.*.create'));
$this->assertTrue($this->object->isValid('users.torsten.update'));
$this->assertTrue($this->object->isValid('users.torsten'));
$this->assertTrue($this->object->isValid('users.*.update.email'));
$this->assertTrue($this->object->isValid('users.*.update'));
$this->assertTrue($this->object->isValid('users.*'));
Database layer (#3338) * database response model * database collection config * new database scopes * database service update * database execption codes * remove read write permission from database model * updating tests and fixing some bugs * server side tests are now passing * databases api * tests for database endpoint * composer update * fix error * formatting * formatting fixes * get database test * more updates to events and usage * more usage updates * fix delete type * fix test * delete database * more fixes * databaseId in attributes and indexes * more fixes * fix issues * fix index subquery * fix console scope and index query * updating tests as required * fix phpcs errors and warnings * updates to review suggestions * UI progress * ui updates and cleaning up * fix type * rework database events * update tests * update types * event generation fixed * events config updated * updating context to support multiple * realtime updates * fix ids * update context * validator updates * fix naming conflict * fix tests * fix lint errors * fix wprler and realtime tests * fix webhooks test * fix event validator and other tests * formatting fixes * removing leftover var_dumps * remove leftover comment * update usage params * usage metrics updates * update database usage * fix usage * specs update * updates to usage * fix UI and usage * fix lints * internal id fixes * fixes for internal Id * renaming services and related files * rename tests * rename doc link * rename readme * fix test name * tests: fixes for 0.15.x sync Co-authored-by: Torsten Dittmann <torsten.dittmann@googlemail.com>
2022-06-22 22:51:49 +12:00
$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.*'));
$this->assertTrue($this->object->isValid('databases.books'));
$this->assertTrue($this->object->isValid('databases.books.collections.chapters'));
$this->assertTrue($this->object->isValid('databases.books.collections.*'));
2022-04-04 18:30:07 +12:00
$this->assertTrue($this->object->isValid('functions.*'));
$this->assertTrue($this->object->isValid('buckets.*'));
$this->assertTrue($this->object->isValid('teams.*'));
$this->assertTrue($this->object->isValid('users.*'));
2022-05-09 02:31:32 +12:00
$this->assertTrue($this->object->isValid('teams.*.memberships.*.update.status'));
2022-04-04 18:30:07 +12:00
2022-04-21 01:34:55 +12:00
/**
* Test for FAILURE
*/
2022-04-04 18:30:07 +12:00
$this->assertFalse($this->object->isValid(false));
$this->assertFalse($this->object->isValid(null));
$this->assertFalse($this->object->isValid(''));
2022-04-21 01:34:55 +12:00
$this->assertFalse($this->object->isValid('unknown.*'));
2022-04-04 18:30:07 +12:00
$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('users.torsten.unknown'));
2022-04-21 01:34:55 +12:00
$this->assertFalse($this->object->isValid('users.torsten.delete.email'));
2022-05-09 02:31:32 +12:00
$this->assertFalse($this->object->isValid('teams.*.memberships.*.update.unknown'));
2022-04-04 18:30:07 +12:00
}
}