diff --git a/tests/AdminConfigurationsTest.php b/tests/AdminConfigurationsTest.php
new file mode 100644
index 00000000..d0b6ae79
--- /dev/null
+++ b/tests/AdminConfigurationsTest.php
@@ -0,0 +1,217 @@
+actAs('admin');
+ }
+
+ public function testCustomize()
+ {
+ // Change color
+ $this->visit('/admin/customize')
+ ->select('skin-purple', 'color')
+ ->press('submit_color');
+ $this->assertEquals('skin-purple', option('color_scheme'));
+
+ $this->visit('/admin/customize')
+ ->type('url', 'home_pic_url')
+ ->type('url', 'favicon_url')
+ ->check('transparent_navbar')
+ ->select('1', 'copyright_prefer')
+ ->type('copyright', 'copyright_text')
+ ->press('submit_homepage');
+ $this->assertEquals('url', option('home_pic_url'));
+ $this->assertEquals('url', option('favicon_url'));
+ $this->assertTrue(option('transparent_navbar'));
+ $this->assertEquals('1', option('copyright_prefer'));
+ $this->assertEquals('copyright', option('copyright_text'));
+
+ $this->visit('/admin/customize')
+ ->type('css', 'custom_css')
+ ->type('js', 'custom_js')
+ ->press('submit_customJsCss');
+ $this->assertEquals('css', option('custom_css'));
+ $this->assertEquals('js', option('custom_js'));
+ }
+
+ public function testScore()
+ {
+ $this->visit('/admin/score')
+ ->type('4', 'score_per_storage')
+ ->type('6', 'private_score_per_storage')
+ ->type('8', 'score_per_closet_item')
+ ->uncheck('return_score')
+ ->type('12', 'score_per_player')
+ ->type('500', 'user_initial_score')
+ ->press('submit_rate');
+ $this->assertEquals('4', option('score_per_storage'));
+ $this->assertEquals('6', option('private_score_per_storage'));
+ $this->assertEquals('8', option('score_per_closet_item'));
+ $this->assertFalse(option('return_score'));
+ $this->assertEquals('12', option('score_per_player'));
+ $this->assertEquals('500', option('user_initial_score'));
+
+ $this->visit('/admin/score')
+ ->type('1', 'reporter_score_modification')
+ ->type('2', 'reporter_reward_score')
+ ->press('submit_report');
+ $this->assertEquals('1', option('reporter_score_modification'));
+ $this->assertEquals('2', option('reporter_reward_score'));
+
+ $this->visit('/admin/score')
+ ->type('233', 'sign_score_from')
+ ->type('666', 'sign_score_to')
+ ->type('7', 'sign_gap_time')
+ ->check('sign_after_zero')
+ ->press('submit_sign');
+ $this->assertEquals('233,666', option('sign_score'));
+ $this->assertEquals('7', option('sign_gap_time'));
+ $this->assertTrue(option('sign_after_zero'));
+
+ $this->visit('/admin/score')
+ ->type('1', 'score_award_per_texture')
+ ->uncheck('take_back_scores_after_deletion')
+ ->type('1', 'score_award_per_like')
+ ->press('submit_sharing');
+ $this->assertEquals('1', option('score_award_per_texture'));
+ $this->assertFalse(option('take_back_scores_after_deletion'));
+ $this->assertEquals('1', option('score_award_per_like'));
+ }
+
+ public function testOptions()
+ {
+ $this->visit('/admin/options')
+ ->type('My Site', 'site_name')
+ ->type('hi', 'site_description')
+ ->type('http://blessing.skin/', 'site_url')
+ ->uncheck('user_can_register')
+ ->type('8', 'regs_per_ip')
+ ->select('1', 'ip_get_method')
+ ->type('2048', 'max_upload_file_size')
+ ->see(trans(
+ 'options.general.max_upload_file_size.hint',
+ ['size' => ini_get('upload_max_filesize')]
+ ))
+ ->select('cjk', 'player_name_rule')
+ ->type('/^([0-9]+)$/', 'custom_player_name_regexp')
+ ->select('1', 'api_type')
+ ->check('auto_del_invalid_texture')
+ ->uncheck('allow_downloading_texture')
+ ->select('404', 'status_code_for_private')
+ ->type('abc', 'texture_name_regexp')
+ ->type('policy', 'content_policy')
+ ->type('code', 'comment_script')
+ ->press('submit_general');
+ $this->assertEquals('My Site', option_localized('site_name'));
+ $this->assertEquals('hi', option_localized('site_description'));
+ $this->assertEquals('http://blessing.skin', option('site_url'));
+ $this->assertFalse(option('user_can_register'));
+ $this->assertEquals('8', option('regs_per_ip'));
+ $this->assertEquals('1', option('ip_get_method'));
+ $this->assertEquals('2048', option('max_upload_file_size'));
+ $this->assertEquals('cjk', option('player_name_rule'));
+ $this->assertEquals('/^([0-9]+)$/', option('custom_player_name_regexp'));
+ $this->assertEquals('1', option('api_type'));
+ $this->assertTrue(option('auto_del_invalid_texture'));
+ $this->assertFalse(option('allow_downloading_texture'));
+ $this->assertEquals('404', option('status_code_for_private'));
+ $this->assertEquals('abc', option('texture_name_regexp'));
+ $this->assertEquals('policy', option_localized('content_policy'));
+ $this->assertEquals('code', option('comment_script'));
+
+ $this->visit('/admin/options')
+ ->type('http://blessing.skin/index.php', 'site_url')
+ ->press('submit_general');
+ $this->assertEquals('http://blessing.skin', option('site_url'));
+
+ $this->visit('/admin/options')
+ ->type('announcement', 'announcement')
+ ->press('submit_announ');
+ $this->assertEquals('announcement', option_localized('announcement'));
+
+ $this->visit('/admin/options')
+ ->type('kw', 'meta_keywords')
+ ->type('desc', 'meta_description')
+ ->type('', 'meta_extras')
+ ->press('submit_meta');
+ $this->visit('/')
+ ->see('')
+ ->see('')
+ ->see('');
+
+ $this->visit('/admin/options')
+ ->type('key', 'recaptcha_sitekey')
+ ->type('secret', 'recaptcha_secretkey')
+ ->check('recaptcha_invisible')
+ ->press('submit_recaptcha');
+ $this->assertEquals('key', option('recaptcha_sitekey'));
+ $this->assertEquals('secret', option('recaptcha_secretkey'));
+ $this->assertTrue(option('recaptcha_invisible'));
+ }
+
+ public function testResource()
+ {
+ $this->visit('/admin/resource')
+ ->check('force_ssl')
+ ->uncheck('auto_detect_asset_url')
+ ->check('return_204_when_notfound')
+ ->type('0', 'cache_expire_time')
+ ->type('url/', 'cdn_address')
+ ->press('submit_resources');
+ $this->assertTrue(option('force_ssl'));
+ $this->assertFalse(option('auto_detect_asset_url'));
+ $this->assertTrue(option('return_204_when_notfound'));
+ $this->assertEquals('0', option('cache_expire_time'));
+ $this->visit('/')->see('url/app/');
+
+ $this->visit('/admin/resource')
+ ->type('', 'cdn_address')
+ ->press('submit_resources');
+ $this->visit('/')->dontSee('url/app/index.js');
+
+ $this->visit('/admin/resource')
+ ->check('enable_redis')
+ ->press('submit_redis');
+ $this->assertTrue(option('enable_redis'));
+
+ Redis::shouldReceive('ping')->once()->andReturn(true);
+ $this->visit('/admin/resource')->see(trans('options.redis.connect.success'));
+
+ Redis::shouldReceive('ping')->once()->andThrow(new \Exception('fake'));
+ $this->visit('/admin/resource')
+ ->see(trans('options.redis.connect.failed', ['msg' => 'fake']));
+
+ option(['enable_redis' => false]);
+
+ $this->visit('/admin/resource')
+ ->see(trans('options.cache.driver', ['driver' => config('cache.default')]))
+ ->check('enable_avatar_cache')
+ ->check('enable_preview_cache')
+ ->check('enable_json_cache')
+ ->check('enable_notfound_cache')
+ ->press('submit_cache');
+ $this->assertTrue(option('enable_avatar_cache'));
+ $this->assertTrue(option('enable_preview_cache'));
+ $this->assertTrue(option('enable_json_cache'));
+ $this->assertTrue(option('enable_notfound_cache'));
+
+ Cache::shouldReceive('flush');
+ $this->visit('/admin/resource')
+ ->click(trans('options.cache.clear'))
+ ->see(trans('options.cache.cleared'));
+ }
+}
diff --git a/tests/AdminControllerTest.php b/tests/AdminControllerTest.php
index 005ff99f..a52573b1 100644
--- a/tests/AdminControllerTest.php
+++ b/tests/AdminControllerTest.php
@@ -2,8 +2,6 @@
namespace Tests;
-use Cache;
-use Redis;
use App\Models\User;
use App\Models\Player;
use App\Models\Texture;
@@ -11,7 +9,7 @@ use Illuminate\Support\Str;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseTransactions;
-class AdminControllerTest extends BrowserKitTestCase
+class AdminControllerTest extends TestCase
{
use DatabaseTransactions;
@@ -27,218 +25,24 @@ class AdminControllerTest extends BrowserKitTestCase
factory(User::class)->create();
factory(Texture::class)->create();
$this->getJson('/admin/chart')
- ->seeJson(['labels' => [
+ ->assertJson(['labels' => [
trans('admin.index.user-registration'),
trans('admin.index.texture-uploads'),
]])
- ->seeJsonStructure(['labels', 'xAxis', 'data']);
+ ->assertJsonStructure(['labels', 'xAxis', 'data']);
}
- public function testCustomize()
- {
- // Change color
- $this->visit('/admin/customize')
- ->select('skin-purple', 'color')
- ->press('submit_color');
- $this->assertEquals('skin-purple', option('color_scheme'));
- $this->visit('/admin/customize')
- ->type('url', 'home_pic_url')
- ->type('url', 'favicon_url')
- ->check('transparent_navbar')
- ->select('1', 'copyright_prefer')
- ->type('copyright', 'copyright_text')
- ->press('submit_homepage');
- $this->assertEquals('url', option('home_pic_url'));
- $this->assertEquals('url', option('favicon_url'));
- $this->assertTrue(option('transparent_navbar'));
- $this->assertEquals('1', option('copyright_prefer'));
- $this->assertEquals('copyright', option('copyright_text'));
-
- $this->visit('/admin/customize')
- ->type('css', 'custom_css')
- ->type('js', 'custom_js')
- ->press('submit_customJsCss');
- $this->assertEquals('css', option('custom_css'));
- $this->assertEquals('js', option('custom_js'));
- }
-
- public function testScore()
- {
- $this->visit('/admin/score')
- ->type('4', 'score_per_storage')
- ->type('6', 'private_score_per_storage')
- ->type('8', 'score_per_closet_item')
- ->uncheck('return_score')
- ->type('12', 'score_per_player')
- ->type('500', 'user_initial_score')
- ->press('submit_rate');
- $this->assertEquals('4', option('score_per_storage'));
- $this->assertEquals('6', option('private_score_per_storage'));
- $this->assertEquals('8', option('score_per_closet_item'));
- $this->assertFalse(option('return_score'));
- $this->assertEquals('12', option('score_per_player'));
- $this->assertEquals('500', option('user_initial_score'));
-
- $this->visit('/admin/score')
- ->type('1', 'reporter_score_modification')
- ->type('2', 'reporter_reward_score')
- ->press('submit_report');
- $this->assertEquals('1', option('reporter_score_modification'));
- $this->assertEquals('2', option('reporter_reward_score'));
-
- $this->visit('/admin/score')
- ->type('233', 'sign_score_from')
- ->type('666', 'sign_score_to')
- ->type('7', 'sign_gap_time')
- ->check('sign_after_zero')
- ->press('submit_sign');
- $this->assertEquals('233,666', option('sign_score'));
- $this->assertEquals('7', option('sign_gap_time'));
- $this->assertTrue(option('sign_after_zero'));
-
- $this->visit('/admin/score')
- ->type('1', 'score_award_per_texture')
- ->uncheck('take_back_scores_after_deletion')
- ->type('1', 'score_award_per_like')
- ->press('submit_sharing');
- $this->assertEquals('1', option('score_award_per_texture'));
- $this->assertFalse(option('take_back_scores_after_deletion'));
- $this->assertEquals('1', option('score_award_per_like'));
- }
-
- public function testOptions()
- {
- $this->visit('/admin/options')
- ->type('My Site', 'site_name')
- ->type('hi', 'site_description')
- ->type('http://blessing.skin/', 'site_url')
- ->uncheck('user_can_register')
- ->type('8', 'regs_per_ip')
- ->select('1', 'ip_get_method')
- ->type('2048', 'max_upload_file_size')
- ->see(trans(
- 'options.general.max_upload_file_size.hint',
- ['size' => ini_get('upload_max_filesize')]
- ))
- ->select('cjk', 'player_name_rule')
- ->type('/^([0-9]+)$/', 'custom_player_name_regexp')
- ->select('1', 'api_type')
- ->check('auto_del_invalid_texture')
- ->uncheck('allow_downloading_texture')
- ->select('404', 'status_code_for_private')
- ->type('abc', 'texture_name_regexp')
- ->type('policy', 'content_policy')
- ->type('code', 'comment_script')
- ->press('submit_general');
- $this->assertEquals('My Site', option_localized('site_name'));
- $this->assertEquals('hi', option_localized('site_description'));
- $this->assertEquals('http://blessing.skin', option('site_url'));
- $this->assertFalse(option('user_can_register'));
- $this->assertEquals('8', option('regs_per_ip'));
- $this->assertEquals('1', option('ip_get_method'));
- $this->assertEquals('2048', option('max_upload_file_size'));
- $this->assertEquals('cjk', option('player_name_rule'));
- $this->assertEquals('/^([0-9]+)$/', option('custom_player_name_regexp'));
- $this->assertEquals('1', option('api_type'));
- $this->assertTrue(option('auto_del_invalid_texture'));
- $this->assertFalse(option('allow_downloading_texture'));
- $this->assertEquals('404', option('status_code_for_private'));
- $this->assertEquals('abc', option('texture_name_regexp'));
- $this->assertEquals('policy', option_localized('content_policy'));
- $this->assertEquals('code', option('comment_script'));
-
- $this->visit('/admin/options')
- ->type('http://blessing.skin/index.php', 'site_url')
- ->press('submit_general');
- $this->assertEquals('http://blessing.skin', option('site_url'));
-
- $this->visit('/admin/options')
- ->type('announcement', 'announcement')
- ->press('submit_announ');
- $this->assertEquals('announcement', option_localized('announcement'));
-
- $this->visit('/admin/options')
- ->type('kw', 'meta_keywords')
- ->type('desc', 'meta_description')
- ->type('', 'meta_extras')
- ->press('submit_meta');
- $this->visit('/')
- ->see('')
- ->see('')
- ->see('');
-
- $this->visit('/admin/options')
- ->type('key', 'recaptcha_sitekey')
- ->type('secret', 'recaptcha_secretkey')
- ->check('recaptcha_invisible')
- ->press('submit_recaptcha');
- $this->assertEquals('key', option('recaptcha_sitekey'));
- $this->assertEquals('secret', option('recaptcha_secretkey'));
- $this->assertTrue(option('recaptcha_invisible'));
- }
-
- public function testResource()
- {
- $this->visit('/admin/resource')
- ->check('force_ssl')
- ->uncheck('auto_detect_asset_url')
- ->check('return_204_when_notfound')
- ->type('0', 'cache_expire_time')
- ->type('url/', 'cdn_address')
- ->press('submit_resources');
- $this->assertTrue(option('force_ssl'));
- $this->assertFalse(option('auto_detect_asset_url'));
- $this->assertTrue(option('return_204_when_notfound'));
- $this->assertEquals('0', option('cache_expire_time'));
- $this->visit('/')->see('url/app/');
-
- $this->visit('/admin/resource')
- ->type('', 'cdn_address')
- ->press('submit_resources');
- $this->visit('/')->dontSee('url/app/index.js');
-
- $this->visit('/admin/resource')
- ->check('enable_redis')
- ->press('submit_redis');
- $this->assertTrue(option('enable_redis'));
-
- Redis::shouldReceive('ping')->once()->andReturn(true);
- $this->visit('/admin/resource')->see(trans('options.redis.connect.success'));
-
- Redis::shouldReceive('ping')->once()->andThrow(new \Exception('fake'));
- $this->visit('/admin/resource')
- ->see(trans('options.redis.connect.failed', ['msg' => 'fake']));
-
- option(['enable_redis' => false]);
-
- $this->visit('/admin/resource')
- ->see(trans('options.cache.driver', ['driver' => config('cache.default')]))
- ->check('enable_avatar_cache')
- ->check('enable_preview_cache')
- ->check('enable_json_cache')
- ->check('enable_notfound_cache')
- ->press('submit_cache');
- $this->assertTrue(option('enable_avatar_cache'));
- $this->assertTrue(option('enable_preview_cache'));
- $this->assertTrue(option('enable_json_cache'));
- $this->assertTrue(option('enable_notfound_cache'));
-
- Cache::shouldReceive('flush');
- $this->visit('/admin/resource')
- ->click(trans('options.cache.clear'))
- ->see(trans('options.cache.cleared'));
- }
public function testUsers()
{
- $this->visit('/admin/users')->see(trans('general.user-manage'));
+ $this->get('/admin/users')->assertSee(trans('general.user-manage'));
}
public function testGetUserData()
{
$this->getJson('/admin/user-data')
- ->seeJsonStructure([
+ ->assertJsonStructure([
'data' => [[
'uid',
'email',
@@ -253,7 +57,7 @@ class AdminControllerTest extends BrowserKitTestCase
$user = factory(User::class)->create();
$this->getJson('/admin/user-data?uid='.$user->uid)
- ->seeJsonSubset([
+ ->assertJson([
'data' => [[
'uid' => $user->uid,
'email' => $user->email,
@@ -267,7 +71,7 @@ class AdminControllerTest extends BrowserKitTestCase
public function testPlayers()
{
- $this->visit('/admin/players')->see(trans('general.player-manage'));
+ $this->get('/admin/players')->assertSee(trans('general.player-manage'));
}
public function testGetPlayerData()
@@ -276,7 +80,7 @@ class AdminControllerTest extends BrowserKitTestCase
$user = $player->user;
$this->getJson('/admin/player-data')
- ->seeJsonStructure([
+ ->assertJsonStructure([
'data' => [[
'pid',
'uid',
@@ -288,7 +92,7 @@ class AdminControllerTest extends BrowserKitTestCase
]);
$this->getJson('/admin/player-data?uid='.$user->uid)
- ->seeJsonSubset([
+ ->assertJson([
'data' => [[
'pid' => $player->pid,
'uid' => $user->uid,
@@ -303,7 +107,7 @@ class AdminControllerTest extends BrowserKitTestCase
{
// Operate on an not-existed user
$this->postJson('/admin/users')
- ->seeJson([
+ ->assertJson([
'code' => 1,
'message' => trans('admin.users.operations.non-existent'),
]);
@@ -312,7 +116,7 @@ class AdminControllerTest extends BrowserKitTestCase
// Operate without `action` field
$this->postJson('/admin/users', ['uid' => $user->uid])
- ->seeJson([
+ ->assertJson([
'code' => 1,
'message' => trans('admin.users.operations.invalid'),
]);
@@ -320,7 +124,7 @@ class AdminControllerTest extends BrowserKitTestCase
// An admin operating on a super admin should be forbidden
$superAdmin = factory(User::class, 'superAdmin')->create();
$this->postJson('/admin/users', ['uid' => $superAdmin->uid])
- ->seeJson([
+ ->assertJson([
'code' => 1,
'message' => trans('admin.users.operations.no-permission'),
]);
@@ -328,22 +132,20 @@ class AdminControllerTest extends BrowserKitTestCase
// Action is `email` but without `email` field
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'email'],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['email']]);
+ ['uid' => $user->uid, 'action' => 'email']
+ )->assertJsonValidationErrors(['email']);
// Action is `email` but with an invalid email address
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'email', 'email' => 'invalid'],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['email']]);
+ ['uid' => $user->uid, 'action' => 'email', 'email' => 'invalid']
+ )->assertJsonValidationErrors(['email']);
// Using an existed email address
$this->postJson(
'/admin/users',
['uid' => $user->uid, 'action' => 'email', 'email' => $superAdmin->email]
- )->seeJson([
+ )->assertJson([
'code' => 1,
'message' => trans('admin.users.operations.email.existed', ['email' => $superAdmin->email]),
]);
@@ -352,11 +154,11 @@ class AdminControllerTest extends BrowserKitTestCase
$this->postJson(
'/admin/users',
['uid' => $user->uid, 'action' => 'email', 'email' => 'a@b.c']
- )->seeJson([
+ )->assertJson([
'code' => 0,
'message' => trans('admin.users.operations.email.success'),
]);
- $this->seeInDatabase('users', [
+ $this->assertDatabaseHas('users', [
'uid' => $user->uid,
'email' => 'a@b.c',
]);
@@ -365,11 +167,11 @@ class AdminControllerTest extends BrowserKitTestCase
$this->postJson(
'/admin/users',
['uid' => $user->uid, 'action' => 'verification']
- )->seeJson([
+ )->assertJson([
'code' => 0,
'message' => trans('admin.users.operations.verification.success'),
]);
- $this->seeInDatabase('users', [
+ $this->assertDatabaseHas('users', [
'uid' => $user->uid,
'verified' => 0,
]);
@@ -377,26 +179,24 @@ class AdminControllerTest extends BrowserKitTestCase
// Action is `nickname` but without `nickname` field
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'nickname'],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['nickname']]);
+ ['uid' => $user->uid, 'action' => 'nickname']
+ )->assertJsonValidationErrors(['nickname']);
// Action is `nickname` but with an invalid nickname
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'nickname', 'nickname' => '\\'],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['nickname']]);
+ ['uid' => $user->uid, 'action' => 'nickname', 'nickname' => '\\']
+ )->assertJsonValidationErrors(['nickname']);
// Set nickname successfully
$this->postJson(
'/admin/users',
['uid' => $user->uid, 'action' => 'nickname', 'nickname' => 'nickname']
- )->seeJson([
+ )->assertJson([
'code' => 0,
'message' => trans('admin.users.operations.nickname.success', ['new' => 'nickname']),
]);
- $this->seeInDatabase('users', [
+ $this->assertDatabaseHas('users', [
'uid' => $user->uid,
'nickname' => 'nickname',
]);
@@ -404,29 +204,26 @@ class AdminControllerTest extends BrowserKitTestCase
// Action is `password` but without `password` field
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'password'],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['password']]);
+ ['uid' => $user->uid, 'action' => 'password']
+ )->assertJsonValidationErrors(['password']);
// Set a too short password
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'password', 'password' => '1'],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['password']]);
+ ['uid' => $user->uid, 'action' => 'password', 'password' => '1']
+ )->assertJsonValidationErrors(['password']);
// Set a too long password
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'password', 'password' => Str::random(17)],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['password']]);
+ ['uid' => $user->uid, 'action' => 'password', 'password' => Str::random(17)]
+ )->assertJsonValidationErrors(['password']);
// Set password successfully
$this->postJson(
'/admin/users',
['uid' => $user->uid, 'action' => 'password', 'password' => '12345678']
- )->seeJson([
+ )->assertJson([
'code' => 0,
'message' => trans('admin.users.operations.password.success'),
]);
@@ -436,26 +233,24 @@ class AdminControllerTest extends BrowserKitTestCase
// Action is `score` but without `score` field
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'score'],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['score']]);
+ ['uid' => $user->uid, 'action' => 'score']
+ )->assertJsonValidationErrors(['score']);
// Action is `score` but with an not-an-integer value
$this->postJson(
'/admin/users',
- ['uid' => $user->uid, 'action' => 'score', 'score' => 'string'],
- ['Accept' => 'application/json']
- )->seeJsonStructure(['errors' => ['score']]);
+ ['uid' => $user->uid, 'action' => 'score', 'score' => 'string']
+ )->assertJsonValidationErrors(['score']);
// Set score successfully
$this->postJson(
'/admin/users',
['uid' => $user->uid, 'action' => 'score', 'score' => 123]
- )->seeJson([
+ )->assertJson([
'code' => 0,
'message' => trans('admin.users.operations.score.success'),
]);
- $this->seeInDatabase('users', [
+ $this->assertDatabaseHas('users', [
'uid' => $user->uid,
'score' => 123,
]);
@@ -465,7 +260,7 @@ class AdminControllerTest extends BrowserKitTestCase
'uid' => $user->uid,
'action' => 'permission',
'permission' => -2,
- ])->seeJsonStructure(['errors' => ['permission']]);
+ ])->assertJsonValidationErrors(['permission']);
$user = User::find($user->uid);
$this->assertEquals(User::NORMAL, $user->permission);
@@ -474,7 +269,7 @@ class AdminControllerTest extends BrowserKitTestCase
'uid' => $user->uid,
'action' => 'permission',
'permission' => -1,
- ])->seeJson([
+ ])->assertJson([
'code' => 0,
'message' => trans('admin.users.operations.permission'),
]);
@@ -483,7 +278,7 @@ class AdminControllerTest extends BrowserKitTestCase
// Delete a user
$this->postJson('/admin/users', ['uid' => $user->uid, 'action' => 'delete'])
- ->seeJson([
+ ->assertJson([
'code' => 0,
'message' => trans('admin.users.operations.delete.success'),
]);
@@ -496,7 +291,7 @@ class AdminControllerTest extends BrowserKitTestCase
// Operate on a not-existed player
$this->postJson('/admin/players', ['pid' => -1])
- ->seeJson([
+ ->assertJson([
'code' => 1,
'message' => trans('general.unexistent-player'),
]);
@@ -506,7 +301,7 @@ class AdminControllerTest extends BrowserKitTestCase
$this->postJson(
'/admin/players',
['pid' => factory(Player::class)->create(['uid' => $admin->uid])->pid]
- )->seeJson([
+ )->assertJson([
'code' => 1,
'message' => trans('admin.players.no-permission'),
]);
@@ -514,7 +309,7 @@ class AdminControllerTest extends BrowserKitTestCase
$this->postJson(
'/admin/players',
['pid' => factory(Player::class)->create(['uid' => $superAdmin->uid])->pid]
- )->seeJson([
+ )->assertJson([
'code' => 1,
'message' => trans('admin.players.no-permission'),
]);
@@ -522,7 +317,7 @@ class AdminControllerTest extends BrowserKitTestCase
$this->actingAs($admin)->postJson(
'/admin/players',
['pid' => factory(Player::class)->create(['uid' => $admin->uid])->pid]
- )->seeJson([
+ )->assertJson([
'code' => 1,
'message' => trans('admin.users.operations.invalid'),
]);
@@ -531,18 +326,14 @@ class AdminControllerTest extends BrowserKitTestCase
$this->postJson('/admin/players', [
'pid' => $player->pid,
'action' => 'texture',
- ], [
- 'Accept' => 'application/json',
- ])->seeJsonStructure(['errors' => ['type']]);
+ ])->assertJsonValidationErrors(['type']);
// Change texture without `tid` field
$this->postJson('/admin/players', [
'pid' => $player->pid,
'action' => 'texture',
'type' => 'skin',
- ], [
- 'Accept' => 'application/json',
- ])->seeJsonStructure(['errors' => ['tid']]);
+ ])->assertJsonValidationErrors(['tid']);
// Change texture with a not-integer value
$this->postJson('/admin/players', [
@@ -550,9 +341,7 @@ class AdminControllerTest extends BrowserKitTestCase
'action' => 'texture',
'type' => 'skin',
'tid' => 'string',
- ], [
- 'Accept' => 'application/json',
- ])->seeJsonStructure(['errors' => ['tid']]);
+ ])->assertJsonValidationErrors(['tid']);
// Invalid texture
$this->postJson('/admin/players', [
@@ -560,7 +349,7 @@ class AdminControllerTest extends BrowserKitTestCase
'action' => 'texture',
'type' => 'skin',
'tid' => -1,
- ])->seeJson([
+ ])->assertJson([
'code' => 1,
'message' => trans('admin.players.textures.non-existent', ['tid' => -1]),
]);
@@ -574,7 +363,7 @@ class AdminControllerTest extends BrowserKitTestCase
'action' => 'texture',
'type' => 'skin',
'tid' => $skin->tid,
- ])->seeJson([
+ ])->assertJson([
'code' => 0,
'message' => trans('admin.players.textures.success', ['player' => $player->name]),
]);
@@ -587,7 +376,7 @@ class AdminControllerTest extends BrowserKitTestCase
'action' => 'texture',
'type' => 'cape',
'tid' => $cape->tid,
- ])->seeJson([
+ ])->assertJson([
'code' => 0,
'message' => trans('admin.players.textures.success', ['player' => $player->name]),
]);
@@ -600,7 +389,7 @@ class AdminControllerTest extends BrowserKitTestCase
'action' => 'texture',
'type' => 'skin',
'tid' => 0,
- ])->seeJson([
+ ])->assertJson([
'code' => 0,
'message' => trans('admin.players.textures.success', ['player' => $player->name]),
]);
@@ -613,7 +402,7 @@ class AdminControllerTest extends BrowserKitTestCase
'action' => 'texture',
'type' => 'cape',
'tid' => 0,
- ])->seeJson([
+ ])->assertJson([
'code' => 0,
'message' => trans('admin.players.textures.success', ['player' => $player->name]),
]);
@@ -624,25 +413,21 @@ class AdminControllerTest extends BrowserKitTestCase
$this->postJson('/admin/players', [
'pid' => $player->pid,
'action' => 'owner',
- ], [
- 'Accept' => 'application/json',
- ])->seeJsonStructure(['errors' => ['uid']]);
+ ])->assertJsonValidationErrors(['uid']);
// Change owner with a not-integer `uid` value
$this->postJson('/admin/players', [
'pid' => $player->pid,
'action' => 'owner',
'uid' => 'string',
- ], [
- 'Accept' => 'application/json',
- ])->seeJsonStructure(['errors' => ['uid']]);
+ ])->assertJsonValidationErrors(['uid']);
// Change owner to a not-existed user
$this->postJson('/admin/players', [
'pid' => $player->pid,
'action' => 'owner',
'uid' => -1,
- ])->seeJson([
+ ])->assertJson([
'code' => 1,
'message' => trans('admin.users.operations.non-existent'),
]);
@@ -653,7 +438,7 @@ class AdminControllerTest extends BrowserKitTestCase
'pid' => $player->pid,
'action' => 'owner',
'uid' => $user->uid,
- ])->seeJson([
+ ])->assertJson([
'code' => 0,
'message' => trans(
'admin.players.owner.success',
@@ -665,16 +450,14 @@ class AdminControllerTest extends BrowserKitTestCase
$this->postJson('/admin/players', [
'pid' => $player->pid,
'action' => 'name',
- ], [
- 'Accept' => 'application/json',
- ])->seeJsonStructure(['errors' => ['name']]);
+ ])->assertJsonValidationErrors(['name']);
// Rename a player successfully
$this->postJson('/admin/players', [
'pid' => $player->pid,
'action' => 'name',
'name' => 'new_name',
- ])->seeJson([
+ ])->assertJson([
'code' => 0,
'message' => trans('admin.players.name.success', ['player' => 'new_name']),
]);
@@ -685,7 +468,7 @@ class AdminControllerTest extends BrowserKitTestCase
'pid' => $player->pid,
'action' => 'name',
'name' => 'abc',
- ])->seeJson(['code' => 0]);
+ ])->assertJson(['code' => 0]);
$player->refresh();
$this->assertEquals('abc', $player->user->nickname);
@@ -693,7 +476,7 @@ class AdminControllerTest extends BrowserKitTestCase
$this->postJson('/admin/players', [
'pid' => $player->pid,
'action' => 'delete',
- ])->seeJson([
+ ])->assertJson([
'code' => 0,
'message' => trans('admin.players.delete.success'),
]);