mirror of
https://github.com/godotengine/godot-question2answer.git
synced 2026-01-01 01:48:37 +03:00
This project lived only on the server without version control. This is now the starting point for the repository.
57 lines
2.0 KiB
PHP
57 lines
2.0 KiB
PHP
<?php
|
|
require_once QA_INCLUDE_DIR.'app/users.php';
|
|
require_once QA_INCLUDE_DIR.'app/options.php';
|
|
|
|
class AppUsersTest extends PHPUnit_Framework_TestCase
|
|
{
|
|
/**
|
|
* Test logic of permissions function.
|
|
* User level values: QA_USER_LEVEL_* in app/users.php [BASIC..SUPER]
|
|
* Permission values: QA_PERMIT_* in app/options.php [ALL..SUPERS]
|
|
* User flag values: QA_USER_FLAGS_* in app/users.php
|
|
*/
|
|
public function test__qa_permit_value_error()
|
|
{
|
|
// set options cache to bypass database
|
|
global $qa_options_cache;
|
|
$qa_options_cache['confirm_user_emails'] = '1';
|
|
$qa_options_cache['moderate_users'] = '0';
|
|
|
|
$userFlags = QA_USER_FLAGS_EMAIL_CONFIRMED;
|
|
$blockedFlags = QA_USER_FLAGS_EMAIL_CONFIRMED | QA_USER_FLAGS_USER_BLOCKED;
|
|
|
|
// Admin trying to do Super stuff
|
|
$error = qa_permit_value_error(QA_PERMIT_SUPERS, 1, QA_USER_LEVEL_ADMIN, $userFlags);
|
|
$this->assertSame('level', $error);
|
|
|
|
// Admin trying to do Admin stuff
|
|
$error = qa_permit_value_error(QA_PERMIT_ADMINS, 1, QA_USER_LEVEL_ADMIN, $userFlags);
|
|
$this->assertSame(false, $error);
|
|
|
|
// Admin trying to do Editor stuff
|
|
$error = qa_permit_value_error(QA_PERMIT_EDITORS, 1, QA_USER_LEVEL_ADMIN, $userFlags);
|
|
$this->assertSame(false, $error);
|
|
|
|
// Expert trying to do Moderator stuff
|
|
$error = qa_permit_value_error(QA_PERMIT_MODERATORS, 1, QA_USER_LEVEL_EXPERT, $userFlags);
|
|
$this->assertSame('level', $error);
|
|
|
|
// Unconfirmed User trying to do Confirmed stuff
|
|
$error = qa_permit_value_error(QA_PERMIT_CONFIRMED, 1, QA_USER_LEVEL_BASIC, 0);
|
|
$this->assertSame('confirm', $error);
|
|
|
|
// Blocked User trying to do anything
|
|
$error = qa_permit_value_error(QA_PERMIT_ALL, 1, QA_USER_LEVEL_BASIC, $blockedFlags);
|
|
$this->assertSame('userblock', $error);
|
|
|
|
// Logged Out User trying to do User stuff
|
|
$error = qa_permit_value_error(QA_PERMIT_USERS, null, null, 0);
|
|
$this->assertSame('login', $error);
|
|
|
|
// Logged Out User trying to do Moderator stuff
|
|
$error = qa_permit_value_error(QA_PERMIT_MODERATORS, null, null, 0);
|
|
$this->assertSame('level', $error);
|
|
|
|
}
|
|
}
|