2020-04-15 07:53:41 +12:00
< ? php
2022-08-01 22:22:04 +12:00
namespace Tests\Unit\Network\Validators ;
2020-04-15 07:53:41 +12:00
2020-06-12 07:36:10 +12:00
use Appwrite\Network\Validator\Origin ;
2020-04-15 07:53:41 +12:00
use PHPUnit\Framework\TestCase ;
2022-12-15 04:42:25 +13:00
use Utopia\Database\Helpers\ID ;
2020-04-15 07:53:41 +12:00
class OriginTest extends TestCase
{
2022-08-01 22:22:04 +12:00
public function testValues () : void
2020-04-15 07:53:41 +12:00
{
$validator = new Origin ([
[
2022-08-14 22:33:36 +12:00
'$collection' => ID :: custom ( 'platforms' ),
2020-04-15 07:53:41 +12:00
'name' => 'Production' ,
2023-01-12 12:38:09 +13:00
'type' => Origin :: CLIENT_TYPE_WEB ,
2020-04-15 07:53:41 +12:00
'hostname' => 'appwrite.io' ,
],
[
2022-08-14 22:33:36 +12:00
'$collection' => ID :: custom ( 'platforms' ),
2020-04-15 07:53:41 +12:00
'name' => 'Development' ,
2023-01-12 12:38:09 +13:00
'type' => Origin :: CLIENT_TYPE_WEB ,
2020-04-15 07:53:41 +12:00
'hostname' => 'appwrite.test' ,
],
[
2022-08-14 22:33:36 +12:00
'$collection' => ID :: custom ( 'platforms' ),
2020-04-15 07:53:41 +12:00
'name' => 'Localhost' ,
2023-01-12 12:38:09 +13:00
'type' => Origin :: CLIENT_TYPE_WEB ,
2020-04-15 07:53:41 +12:00
'hostname' => 'localhost' ,
],
2023-01-12 12:38:09 +13:00
[
'$collection' => ID :: custom ( 'platforms' ),
'name' => 'Flutter' ,
'type' => Origin :: CLIENT_TYPE_FLUTTER_WEB ,
'hostname' => 'appwrite.flutter' ,
],
2020-04-15 07:53:41 +12:00
]);
$this -> assertEquals ( $validator -> isValid ( 'https://localhost' ), true );
$this -> assertEquals ( $validator -> isValid ( 'http://localhost' ), true );
$this -> assertEquals ( $validator -> isValid ( 'http://localhost:80' ), true );
$this -> assertEquals ( $validator -> isValid ( 'https://appwrite.io' ), true );
$this -> assertEquals ( $validator -> isValid ( 'http://appwrite.io' ), true );
$this -> assertEquals ( $validator -> isValid ( 'http://appwrite.io:80' ), true );
$this -> assertEquals ( $validator -> isValid ( 'https://appwrite.test' ), true );
$this -> assertEquals ( $validator -> isValid ( 'http://appwrite.test' ), true );
$this -> assertEquals ( $validator -> isValid ( 'http://appwrite.test:80' ), true );
2023-01-12 12:38:09 +13:00
$this -> assertEquals ( $validator -> isValid ( 'https://appwrite.flutter' ), true );
$this -> assertEquals ( $validator -> isValid ( 'http://appwrite.flutter' ), true );
$this -> assertEquals ( $validator -> isValid ( 'http://appwrite.flutter:80' ), true );
2020-04-15 07:53:41 +12:00
$this -> assertEquals ( $validator -> isValid ( 'https://example.com' ), false );
$this -> assertEquals ( $validator -> isValid ( 'http://example.com' ), false );
$this -> assertEquals ( $validator -> isValid ( 'http://example.com:80' ), false );
$this -> assertEquals ( $validator -> isValid ( 'appwrite-ios://com.company.appname' ), false );
2020-06-16 09:32:34 +12:00
$this -> assertEquals ( $validator -> getDescription (), 'Invalid Origin. Register your new client (com.company.appname) as a new iOS platform on your project console dashboard' );
2022-05-24 02:54:50 +12:00
2020-04-15 07:53:41 +12:00
$this -> assertEquals ( $validator -> isValid ( 'appwrite-android://com.company.appname' ), false );
2020-06-16 09:32:34 +12:00
$this -> assertEquals ( $validator -> getDescription (), 'Invalid Origin. Register your new client (com.company.appname) as a new Android platform on your project console dashboard' );
2022-05-24 02:54:50 +12:00
2020-04-15 07:53:41 +12:00
$this -> assertEquals ( $validator -> isValid ( 'appwrite-macos://com.company.appname' ), false );
2020-06-16 09:32:34 +12:00
$this -> assertEquals ( $validator -> getDescription (), 'Invalid Origin. Register your new client (com.company.appname) as a new macOS platform on your project console dashboard' );
2022-05-24 02:54:50 +12:00
2020-04-15 07:53:41 +12:00
$this -> assertEquals ( $validator -> isValid ( 'appwrite-linux://com.company.appname' ), false );
2020-06-16 09:32:34 +12:00
$this -> assertEquals ( $validator -> getDescription (), 'Invalid Origin. Register your new client (com.company.appname) as a new Linux platform on your project console dashboard' );
2020-04-15 07:53:41 +12:00
$this -> assertEquals ( $validator -> isValid ( 'appwrite-windows://com.company.appname' ), false );
2020-06-16 09:32:34 +12:00
$this -> assertEquals ( $validator -> getDescription (), 'Invalid Origin. Register your new client (com.company.appname) as a new Windows platform on your project console dashboard' );
2020-04-15 07:53:41 +12:00
}
2022-05-24 02:54:50 +12:00
}