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'), ]);