refactor routes

This commit is contained in:
Pig Fang 2020-01-13 08:37:57 +08:00
parent 1807309449
commit 092eedfdf4
27 changed files with 209 additions and 199 deletions

View File

@ -23,8 +23,7 @@ class UserMenuComposer
public function compose(View $view) public function compose(View $view)
{ {
$user = auth()->user(); $user = auth()->user();
$email = base64_encode($user->email); $avatarUrl = route('avatar.user', ['uid' => $user->uid, 'size' => 25]);
$avatarUrl = url('/avatar/user/'.$user->uid.'?size=25');
$avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]); $avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]);
$view->with(compact('user', 'avatar')); $view->with(compact('user', 'avatar'));

View File

@ -23,7 +23,7 @@ class UserPanelComposer
public function compose(View $view) public function compose(View $view)
{ {
$user = auth()->user(); $user = auth()->user();
$avatarUrl = url('/avatar/user/'.$user->uid.'?size=45'); $avatarUrl = route('avatar.user', ['uid' => $user->uid, 'size' => 45]);
$avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]); $avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]);
$badges = []; $badges = [];

View File

@ -130,7 +130,7 @@ export default {
}, },
methods: { methods: {
async fetchData() { async fetchData() {
this.plugins = await this.$http.get('/admin/plugins/market-data') this.plugins = await this.$http.get('/admin/plugins/market/list')
}, },
async installPlugin({ name, originalIndex }) { async installPlugin({ name, originalIndex }) {
this.installing = name this.installing = name

View File

@ -149,7 +149,7 @@ export default {
methods: { methods: {
async fetchData() { async fetchData() {
const { data, totalRecords } = await this.$http.get( const { data, totalRecords } = await this.$http.get(
`/admin/player-data${location.search}`, `/admin/players/list${location.search}`,
!location.search && this.serverParams, !location.search && this.serverParams,
) )
this.totalRecords = totalRecords this.totalRecords = totalRecords

View File

@ -110,7 +110,7 @@ export default {
methods: { methods: {
async fetchData() { async fetchData() {
const { data, totalRecords } = await this.$http.get( const { data, totalRecords } = await this.$http.get(
'/admin/report-data', '/admin/reports/list',
this.serverParams, this.serverParams,
) )
this.totalRecords = totalRecords this.totalRecords = totalRecords

View File

@ -199,7 +199,7 @@ export default {
methods: { methods: {
async fetchData() { async fetchData() {
const { data, totalRecords } = await this.$http.get( const { data, totalRecords } = await this.$http.get(
`/admin/user-data${location.search}`, `/admin/users/list${location.search}`,
!location.search && this.serverParams, !location.search && this.serverParams,
) )
this.totalRecords = totalRecords this.totalRecords = totalRecords

View File

@ -245,7 +245,7 @@ export default {
items, category, total_pages: totalPages, items, category, total_pages: totalPages,
}, },
} = await this.$http.get( } = await this.$http.get(
'/user/closet-data', '/user/closet/list',
{ {
category: this.category, category: this.category,
q: this.query, q: this.query,

View File

@ -75,7 +75,7 @@ export default {
}, },
methods: { methods: {
async fetchData() { async fetchData() {
this.reports = await this.$http.get('/user/report-list') this.reports = await this.$http.get('/user/reports/list')
}, },
}, },
} }

View File

@ -11,7 +11,7 @@ test('fetch data after initializing', () => {
Vue.prototype.$http.get.mockResolvedValue({ data: [] }) Vue.prototype.$http.get.mockResolvedValue({ data: [] })
mount(Players) mount(Players)
expect(Vue.prototype.$http.get).toBeCalledWith( expect(Vue.prototype.$http.get).toBeCalledWith(
'/admin/player-data', '/admin/players/list',
{ {
page: 1, perPage: 10, search: '', sortField: 'pid', sortType: 'asc', page: 1, perPage: 10, search: '', sortField: 'pid', sortType: 'asc',
}, },

View File

@ -15,7 +15,7 @@ test('fetch data after initializing', () => {
Vue.prototype.$http.get.mockResolvedValue({ data: [] }) Vue.prototype.$http.get.mockResolvedValue({ data: [] })
mount(Users) mount(Users)
expect(Vue.prototype.$http.get).toBeCalledWith( expect(Vue.prototype.$http.get).toBeCalledWith(
'/admin/user-data', '/admin/users/list',
{ {
page: 1, perPage: 10, search: '', sortField: 'uid', sortType: 'asc', page: 1, perPage: 10, search: '', sortField: 'uid', sortType: 'asc',
}, },

View File

@ -14,7 +14,7 @@ test('fetch closet data before mount', () => {
mount(Closet) mount(Closet)
jest.runAllTicks() jest.runAllTicks()
expect(Vue.prototype.$http.get).toBeCalledWith( expect(Vue.prototype.$http.get).toBeCalledWith(
'/user/closet-data', '/user/closet/list',
{ {
category: 'skin', category: 'skin',
q: '', q: '',
@ -46,7 +46,7 @@ test('switch tabs', () => {
.trigger('click') .trigger('click')
jest.runAllTicks() jest.runAllTicks()
expect(Vue.prototype.$http.get).toBeCalledWith( expect(Vue.prototype.$http.get).toBeCalledWith(
'/user/closet-data', '/user/closet/list',
{ {
category: 'skin', category: 'skin',
q: '', q: '',
@ -59,7 +59,7 @@ test('switch tabs', () => {
.trigger('click') .trigger('click')
jest.runAllTicks() jest.runAllTicks()
expect(Vue.prototype.$http.get).toBeCalledWith( expect(Vue.prototype.$http.get).toBeCalledWith(
'/user/closet-data', '/user/closet/list',
{ {
category: 'cape', category: 'cape',
q: '', q: '',
@ -100,7 +100,7 @@ test('search textures', () => {
jest.runAllTimers() jest.runAllTimers()
jest.runAllTicks() jest.runAllTicks()
expect(Vue.prototype.$http.get).toBeCalledWith( expect(Vue.prototype.$http.get).toBeCalledWith(
'/user/closet-data', '/user/closet/list',
{ {
category: 'skin', category: 'skin',
q: 'q', q: 'q',

View File

@ -1,6 +1,6 @@
<?php <?php
Route::any('/', 'HomeController@apiRoot'); Route::any('', 'HomeController@apiRoot');
Route::prefix('auth')->group(function () { Route::prefix('auth')->group(function () {
Route::post('login', 'AuthController@jwtLogin'); Route::post('login', 'AuthController@jwtLogin');

View File

@ -1,14 +1,15 @@
<?php <?php
Route::get('/{player}.json', 'TextureController@json'); Route::get('{player}.json', 'TextureController@json');
Route::get('/csl/{player}.json', 'TextureController@json'); Route::get('csl/{player}.json', 'TextureController@json');
Route::get('/textures/{hash}', 'TextureController@texture'); Route::get('textures/{hash}', 'TextureController@texture');
Route::get('raw/{tid}', 'TextureController@raw');
Route::get('/avatar/player/{name}', 'TextureController@avatarByPlayer'); Route::prefix('avatar')->name('avatar.')->group(function () {
Route::get('/avatar/user/{uid}', 'TextureController@avatarByUser'); Route::get('player/{name}', 'TextureController@avatarByPlayer')->name('player');
Route::get('/avatar/{tid}', 'TextureController@avatarByTexture'); Route::get('user/{uid}', 'TextureController@avatarByUser')->name('user');
Route::get('{tid}', 'TextureController@avatarByTexture')->name('texture');
});
Route::get('/raw/{tid}', 'TextureController@raw'); Route::get('preview/{tid}', 'TextureController@preview');
Route::get('/preview/{tid}', 'TextureController@preview');

View File

@ -13,173 +13,181 @@ use App\Http\Middleware;
| |
*/ */
Route::get('/', 'HomeController@index'); Route::get('', 'HomeController@index');
Route::get('/index.php', 'HomeController@index');
Route::get('/locale/{lang}', 'HomeController@locale'); Route::prefix('auth')->name('auth.')->group(function () {
Route::middleware('guest')->group(function () {
Route::get('login', 'AuthController@login')->name('login');
Route::post('login', 'AuthController@handleLogin')->name('login');
/* Route::get('register', 'AuthController@register')->name('register');
* Auth Route::post('register', 'AuthController@handleRegister')->name('register');
*/
Route::group(['prefix' => 'auth'], function () {
Route::group(['middleware' => 'guest'], function () {
Route::get('/login', 'AuthController@login');
Route::get('/register', 'AuthController@register');
Route::get('/forgot', 'AuthController@forgot');
Route::get('/reset/{uid}', 'AuthController@reset')->name('auth.reset')->middleware('signed');
Route::get('/login/{driver}', 'AuthController@oauthLogin'); Route::get('forgot', 'AuthController@forgot')->name('forgot');
Route::get('/login/{driver}/callback', 'AuthController@oauthCallback'); Route::post('forgot', 'AuthController@handleForgot')->name('forgot');
Route::middleware('signed')->name('reset')->group(function () {
Route::get('reset/{uid}', 'AuthController@reset');
Route::post('reset/{uid}', 'AuthController@handleReset');
});
Route::get('login/{driver}', 'AuthController@oauthLogin');
Route::get('login/{driver}/callback', 'AuthController@oauthCallback');
}); });
Route::post('/logout', 'AuthController@logout')->middleware('authorize'); Route::post('logout', 'AuthController@logout')->name('logout')->middleware('authorize');
Route::any('/captcha', 'AuthController@captcha'); Route::any('captcha', 'AuthController@captcha');
Route::post('/login', 'AuthController@handleLogin'); Route::middleware(['authorize', Middleware\EnsureEmailFilled::class])
Route::post('/register', 'AuthController@handleRegister'); ->name('bind')
Route::post('/forgot', 'AuthController@handleForgot'); ->group(function () {
Route::post('/reset/{uid}', 'AuthController@handleReset')->middleware('signed'); Route::view('bind', 'auth.bind');
Route::view('/bind', 'auth.bind')->middleware(['authorize', Middleware\EnsureEmailFilled::class]); Route::post('bind', 'AuthController@fillEmail');
Route::post('/bind', 'AuthController@fillEmail')->middleware(['authorize', Middleware\EnsureEmailFilled::class]); });
Route::get('/verify/{uid}', 'AuthController@verify')->name('auth.verify')->middleware('signed');
Route::get('verify/{uid}', 'AuthController@verify')->name('verify')->middleware('signed');
}); });
/* Route::prefix('user')
* User Center ->name('user.')
*/ ->middleware(['authorize', Middleware\RequireBindPlayer::class])
Route::group([ ->group(function () {
'middleware' => ['authorize', Middleware\RequireBindPlayer::class], Route::get('', 'UserController@index')->name('home');
'prefix' => 'user', Route::get('notifications/{id}', 'UserController@readNotification')->name('notification');
], function () { Route::get('score-info', 'UserController@scoreInfo')->name('score');
Route::any('', 'UserController@index'); Route::post('sign', 'UserController@sign')->name('sign');
Route::get('/notifications/{id}', 'UserController@readNotification');
Route::get('/score-info', 'UserController@scoreInfo');
Route::post('/sign', 'UserController@sign');
Route::view('/reports', 'user.report'); Route::prefix('reports')->group(function () {
Route::get('/report-list', 'ReportController@track'); Route::view('', 'user.report');
Route::get('list', 'ReportController@track');
});
// Profile Route::prefix('profile')->group(function () {
Route::get('/profile', 'UserController@profile'); Route::get('', 'UserController@profile')->name('profile');
Route::post('/profile', 'UserController@handleProfile'); Route::post('', 'UserController@handleProfile')->name('profile');
Route::post('/profile/avatar', 'UserController@setAvatar'); Route::post('avatar', 'UserController@setAvatar')->name('profile.avatar');
});
// Email Verification Route::post('email-verification', 'UserController@sendVerificationEmail');
Route::post('/email-verification', 'UserController@sendVerificationEmail');
// Player Route::prefix('player')
Route::group(['prefix' => 'player', 'middleware' => 'verified'], function () { ->name('player.')
Route::any('', 'PlayerController@index'); ->middleware('verified')
Route::get('/list', 'PlayerController@listAll'); ->group(function () {
Route::post('/add', 'PlayerController@add'); Route::get('', 'PlayerController@index')->name('page');
Route::post('/set/{pid}', 'PlayerController@setTexture'); Route::get('list', 'PlayerController@listAll')->name('list');
Route::post('/texture/clear/{pid}', 'PlayerController@clearTexture'); Route::post('add', 'PlayerController@add')->name('add');
Route::post('/rename/{pid}', 'PlayerController@rename'); Route::post('set/{pid}', 'PlayerController@setTexture')->name('set');
Route::post('/delete/{pid}', 'PlayerController@delete'); Route::post('texture/clear/{pid}', 'PlayerController@clearTexture')->name('clear');
Route::view('/bind', 'user.bind'); Route::post('rename/{pid}', 'PlayerController@rename')->name('rename');
Route::post('/bind', 'PlayerController@bind'); Route::post('delete/{pid}', 'PlayerController@delete')->name('delete');
Route::view('bind', 'user.bind')->name('bind');
Route::post('bind', 'PlayerController@bind')->name('bind');
});
Route::prefix('closet')->name('closet.')->group(function () {
Route::get('', 'ClosetController@index')->name('page');
Route::get('list', 'ClosetController@getClosetData')->name('list');
Route::post('add', 'ClosetController@add')->name('add');
Route::post('remove/{tid}', 'ClosetController@remove')->name('remove');
Route::post('rename/{tid}', 'ClosetController@rename')->name('rename');
});
// OAuth2 Management
Route::view('oauth/manage', 'user.oauth')->middleware('verified');
}); });
// Closet Route::prefix('skinlib')->name('skinlib.')->group(function () {
Route::get('/closet', 'ClosetController@index'); Route::view('', 'skinlib.index')->name('home');
Route::get('/closet-data', 'ClosetController@getClosetData'); Route::any('info/{tid}', 'SkinlibController@info')->name('info');
Route::post('/closet/add', 'ClosetController@add'); Route::any('show/{tid}', 'SkinlibController@show')->name('show');
Route::post('/closet/remove/{tid}', 'ClosetController@remove'); Route::any('data', 'SkinlibController@getSkinlibFiltered')->name('list');
Route::post('/closet/rename/{tid}', 'ClosetController@rename');
// OAuth2 Management Route::middleware(['authorize', 'verified'])->group(function () {
Route::view('/oauth/manage', 'user.oauth')->middleware('verified'); Route::prefix('upload')->name('upload')->group(function () {
}); Route::get('', 'SkinlibController@upload');
Route::post('', 'SkinlibController@handleUpload');
/* });
* Skin Library Route::post('model', 'SkinlibController@model');
*/ Route::post('rename', 'SkinlibController@rename');
Route::group(['prefix' => 'skinlib'], function () { Route::post('privacy', 'SkinlibController@privacy');
Route::view('', 'skinlib.index'); Route::post('delete', 'SkinlibController@delete');
Route::any('/info/{tid}', 'SkinlibController@info'); Route::post('report', 'ReportController@submit');
Route::any('/show/{tid}', 'SkinlibController@show');
Route::any('/data', 'SkinlibController@getSkinlibFiltered');
Route::group([
'middleware' => ['authorize', 'verified'],
], function () {
Route::get('/upload', 'SkinlibController@upload');
Route::post('/upload', 'SkinlibController@handleUpload');
Route::post('/model', 'SkinlibController@model');
Route::post('/rename', 'SkinlibController@rename');
Route::post('/privacy', 'SkinlibController@privacy');
Route::post('/delete', 'SkinlibController@delete');
Route::post('/report', 'ReportController@submit');
}); });
}); });
/* Route::prefix('admin')
* Admin Panel ->name('admin.')
*/ ->middleware(['authorize', 'admin'])
Route::group(['middleware' => ['authorize', 'admin'], 'prefix' => 'admin'], function () { ->group(function () {
Route::get('/', 'AdminController@index'); Route::get('', 'AdminController@index');
Route::get('/chart', 'AdminController@chartData'); Route::get('chart', 'AdminController@chartData');
Route::post('/notifications/send', 'AdminController@sendNotification'); Route::post('notifications/send', 'AdminController@sendNotification');
Route::any('/customize', 'AdminController@customize'); Route::any('customize', 'AdminController@customize');
Route::any('/score', 'AdminController@score'); Route::any('score', 'AdminController@score');
Route::any('/options', 'AdminController@options'); Route::any('options', 'AdminController@options');
Route::any('/resource', 'AdminController@resource'); Route::any('resource', 'AdminController@resource');
Route::get('/status', 'AdminController@status'); Route::get('status', 'AdminController@status');
Route::view('/users', 'admin.users'); Route::prefix('users')->group(function () {
Route::post('/users', 'AdminController@userAjaxHandler'); Route::view('', 'admin.users');
Route::any('/user-data', 'AdminController@getUserData'); Route::post('', 'AdminController@userAjaxHandler');
Route::get('list', 'AdminController@getUserData');
});
Route::view('/players', 'admin.players'); Route::prefix('players')->group(function () {
Route::post('/players', 'AdminController@playerAjaxHandler'); Route::view('', 'admin.players');
Route::any('/player-data', 'AdminController@getPlayerData'); Route::post('', 'AdminController@playerAjaxHandler');
Route::get('list', 'AdminController@getPlayerData');
});
Route::view('/reports', 'admin.reports'); Route::prefix('reports')->group(function () {
Route::post('/reports', 'ReportController@review'); Route::view('', 'admin.reports');
Route::any('/report-data', 'ReportController@manage'); Route::post('', 'ReportController@review');
Route::any('list', 'ReportController@manage');
});
Route::group(['prefix' => 'i18n'], function () { Route::prefix('i18n')->group(function () {
Route::view('', 'admin.i18n'); Route::view('', 'admin.i18n');
Route::get('list', 'TranslationsController@list'); Route::get('list', 'TranslationsController@list');
Route::post('', 'TranslationsController@create'); Route::post('', 'TranslationsController@create');
Route::put('', 'TranslationsController@update'); Route::put('', 'TranslationsController@update');
Route::delete('', 'TranslationsController@delete'); Route::delete('', 'TranslationsController@delete');
});
Route::prefix('plugins')->group(function () {
Route::get('data', 'PluginController@getPluginData');
Route::view('manage', 'admin.plugins');
Route::post('manage', 'PluginController@manage');
Route::any('config/{name}', 'PluginController@config');
Route::get('readme/{name}', 'PluginController@readme');
Route::prefix('market')->group(function () {
Route::view('', 'admin.market');
Route::get('list', 'MarketController@marketData');
Route::post('download', 'MarketController@download');
});
});
Route::prefix('update')->middleware('super-admin')->group(function () {
Route::get('', 'UpdateController@showUpdatePage');
Route::post('download', 'UpdateController@download');
});
}); });
Route::group(['prefix' => 'plugins', 'middleware' => 'super-admin'], function () { Route::prefix('setup')->group(function () {
Route::get('/data', 'PluginController@getPluginData'); Route::middleware('setup')->group(function () {
Route::view('', 'setup.wizard.welcome');
Route::view('/manage', 'admin.plugins'); Route::any('database', 'SetupController@database');
Route::post('/manage', 'PluginController@manage'); Route::view('info', 'setup.wizard.info');
Route::any('/config/{name}', 'PluginController@config'); Route::post('finish', 'SetupController@finish');
Route::get('/readme/{name}', 'PluginController@readme');
Route::view('/market', 'admin.market');
Route::get('/market-data', 'MarketController@marketData');
Route::post('/market/download', 'MarketController@download');
}); });
Route::group(['prefix' => 'update', 'middleware' => 'super-admin'], function () { Route::middleware('authorize')->group(function () {
Route::any('', 'UpdateController@showUpdatePage'); Route::view('update', 'setup.updates.welcome')->middleware('setup');
Route::any('/download', 'UpdateController@download'); Route::any('exec-update', 'UpdateController@update')->middleware('setup');
});
});
/*
* Setup and Update
*/
Route::group(['prefix' => 'setup'], function () {
Route::group(['middleware' => 'setup'], function () {
Route::view('/', 'setup.wizard.welcome');
Route::any('/database', 'SetupController@database');
Route::view('/info', 'setup.wizard.info');
Route::post('/finish', 'SetupController@finish');
});
Route::group(['middleware' => 'authorize'], function () {
Route::view('/update', 'setup.updates.welcome')->middleware('setup');
Route::any('/exec-update', 'UpdateController@update')->middleware('setup');
}); });
}); });

View File

@ -151,7 +151,7 @@ class AdminControllerTest extends TestCase
public function testGetUserData() public function testGetUserData()
{ {
$this->getJson('/admin/user-data') $this->getJson('/admin/users/list')
->assertJsonStructure([ ->assertJsonStructure([
'data' => [[ 'data' => [[
'uid', 'uid',
@ -166,7 +166,7 @@ class AdminControllerTest extends TestCase
]); ]);
$user = factory(User::class)->create(); $user = factory(User::class)->create();
$this->getJson('/admin/user-data?uid='.$user->uid) $this->getJson('/admin/users/list?uid='.$user->uid)
->assertJson([ ->assertJson([
'data' => [[ 'data' => [[
'uid' => $user->uid, 'uid' => $user->uid,
@ -189,7 +189,7 @@ class AdminControllerTest extends TestCase
$player = factory(Player::class)->create(); $player = factory(Player::class)->create();
$user = $player->user; $user = $player->user;
$this->getJson('/admin/player-data') $this->getJson('/admin/players/list')
->assertJsonStructure([ ->assertJsonStructure([
'data' => [[ 'data' => [[
'pid', 'pid',
@ -201,7 +201,7 @@ class AdminControllerTest extends TestCase
]], ]],
]); ]);
$this->getJson('/admin/player-data?uid='.$user->uid) $this->getJson('/admin/players/list?uid='.$user->uid)
->assertJson([ ->assertJson([
'data' => [[ 'data' => [[
'pid' => $player->pid, 'pid' => $player->pid,

View File

@ -177,6 +177,7 @@ class AuthControllerTest extends TestCase
$this->flushSession(); $this->flushSession();
// Logged in should be in success if logged in with player name // Logged in should be in success if logged in with player name
auth()->logout();
$this->postJson( $this->postJson(
'/auth/login', [ '/auth/login', [
'identification' => $player->name, 'identification' => $player->name,
@ -453,6 +454,7 @@ class AuthControllerTest extends TestCase
// Require player name // Require player name
option(['register_with_player_name' => true]); option(['register_with_player_name' => true]);
auth()->logout();
$this->postJson( $this->postJson(
'/auth/register', '/auth/register',
[ [

View File

@ -38,7 +38,7 @@ class ClosetControllerTest extends TestCase
}); });
// Use default query parameters // Use default query parameters
$this->getJson('/user/closet-data') $this->getJson('/user/closet/list')
->assertJsonStructure([ ->assertJsonStructure([
'data' => [ 'data' => [
'category', 'category',
@ -48,17 +48,17 @@ class ClosetControllerTest extends TestCase
]); ]);
// Responsive // Responsive
$result = $this->json('get', '/user/closet-data?perPage=0')->json()['data']; $result = $this->json('get', '/user/closet/list?perPage=0')->json()['data'];
$this->assertCount(6, $result['items']); $this->assertCount(6, $result['items']);
$result = $this->json('get', '/user/closet-data?perPage=8')->json()['data']; $result = $this->json('get', '/user/closet/list?perPage=8')->json()['data'];
$this->assertCount(8, $result['items']); $this->assertCount(8, $result['items']);
$result = $this->json('get', '/user/closet-data?perPage=8&page=2')->json()['data']; $result = $this->json('get', '/user/closet/list?perPage=8&page=2')->json()['data'];
$this->assertCount(2, $result['items']); $this->assertCount(2, $result['items']);
// Get capes // Get capes
$cape = factory(Texture::class, 'cape')->create(); $cape = factory(Texture::class, 'cape')->create();
$this->user->closet()->attach($cape->tid, ['item_name' => 'custom_name']); $this->user->closet()->attach($cape->tid, ['item_name' => 'custom_name']);
$this->getJson('/user/closet-data?category=cape') $this->getJson('/user/closet/list?category=cape')
->assertJson(['data' => [ ->assertJson(['data' => [
'category' => 'cape', 'category' => 'cape',
'total_pages' => 1, 'total_pages' => 1,
@ -71,7 +71,7 @@ class ClosetControllerTest extends TestCase
// Search by keyword // Search by keyword
$random = $textures->random(); $random = $textures->random();
$this->getJson('/user/closet-data?q='.$random->name) $this->getJson('/user/closet/list?q='.$random->name)
->assertJson(['data' => [ ->assertJson(['data' => [
'category' => 'skin', 'category' => 'skin',
'total_pages' => 1, 'total_pages' => 1,

View File

@ -119,7 +119,7 @@ class MarketControllerTest extends TestCase
]); ]);
// Expected an exception, but unable to be asserted. // Expected an exception, but unable to be asserted.
$this->getJson('/admin/plugins/market-data'); $this->getJson('/admin/plugins/market/list');
$this->mock(PluginManager::class, function ($mock) { $this->mock(PluginManager::class, function ($mock) {
$mock->shouldReceive('get') $mock->shouldReceive('get')
@ -132,7 +132,7 @@ class MarketControllerTest extends TestCase
->andReturn(null); ->andReturn(null);
$mock->shouldReceive('getUnsatisfied')->twice(); $mock->shouldReceive('getUnsatisfied')->twice();
}); });
$this->getJson('/admin/plugins/market-data') $this->getJson('/admin/plugins/market/list')
->assertJsonStructure([ ->assertJsonStructure([
[ [
'name', 'name',
@ -146,7 +146,7 @@ class MarketControllerTest extends TestCase
], ],
]); ]);
$this->getJson('/admin/plugins/market-data') $this->getJson('/admin/plugins/market/list')
->assertJson(['message' => 'Only version 1 of market registry is accepted.']); ->assertJson(['message' => 'Only version 1 of market registry is accepted.']);
} }
} }

View File

@ -113,7 +113,7 @@ class ReportControllerTest extends TestCase
$report->save(); $report->save();
$this->actingAs($user) $this->actingAs($user)
->getJson('/user/report-list') ->getJson('/user/reports/list')
->assertJson([[ ->assertJson([[
'tid' => 1, 'tid' => 1,
'reason' => 'test', 'reason' => 'test',
@ -136,7 +136,7 @@ class ReportControllerTest extends TestCase
$report->save(); $report->save();
$this->actingAs($reporter) $this->actingAs($reporter)
->getJson('/admin/report-data') ->getJson('/admin/reports/list')
->assertJson([ ->assertJson([
'totalRecords' => 1, 'totalRecords' => 1,
'data' => [[ 'data' => [[

View File

@ -60,7 +60,7 @@ class UpdateControllerTest extends TestCase
$this->appendToGuzzleQueue([ $this->appendToGuzzleQueue([
new Response(200, [], $this->mockFakeUpdateInfo('1.2.3')), new Response(200, [], $this->mockFakeUpdateInfo('1.2.3')),
]); ]);
$this->getJson('/admin/update/download') $this->postJson('/admin/update/download')
->assertJson([ ->assertJson([
'code' => 1, 'code' => 1,
'message' => trans('admin.update.info.up-to-date'), 'message' => trans('admin.update.info.up-to-date'),
@ -74,7 +74,7 @@ class UpdateControllerTest extends TestCase
$this->mock(PackageManager::class, function ($mock) { $this->mock(PackageManager::class, function ($mock) {
$mock->shouldReceive('download')->andThrow(new \Exception('ddd')); $mock->shouldReceive('download')->andThrow(new \Exception('ddd'));
}); });
$this->getJson('/admin/update/download')->assertJson(['code' => 1]); $this->postJson('/admin/update/download')->assertJson(['code' => 1]);
$this->mock(PackageManager::class, function ($mock) { $this->mock(PackageManager::class, function ($mock) {
$mock->shouldReceive('download')->andReturnSelf(); $mock->shouldReceive('download')->andReturnSelf();
$mock->shouldReceive('extract')->andReturn(true); $mock->shouldReceive('extract')->andReturn(true);
@ -83,7 +83,7 @@ class UpdateControllerTest extends TestCase
$mock->shouldReceive('delete')->with(storage_path('options.php'))->once(); $mock->shouldReceive('delete')->with(storage_path('options.php'))->once();
$mock->shouldReceive('exists')->with(storage_path('install.lock'))->andReturn(true); $mock->shouldReceive('exists')->with(storage_path('install.lock'))->andReturn(true);
}); });
$this->getJson('/admin/update/download') $this->postJson('/admin/update/download')
->assertJson(['code' => 0, 'message' => trans('admin.update.complete')]); ->assertJson(['code' => 0, 'message' => trans('admin.update.complete')]);
} }

View File

@ -12,17 +12,17 @@ class CheckAdministratorTest extends TestCase
$this->get('/admin')->assertRedirect('/auth/login'); $this->get('/admin')->assertRedirect('/auth/login');
// Normal user // Normal user
$this->actingAs(factory(User::class)->make()) $this->actingAs(factory(User::class)->create())
->get('/admin') ->get('/admin')
->assertStatus(403); ->assertStatus(403);
// Admin // Admin
$this->actingAs(factory(User::class, 'admin')->make()) $this->actingAs(factory(User::class, 'admin')->create())
->get('/admin') ->get('/admin')
->assertSuccessful(); ->assertSuccessful();
// Super admin // Super admin
$this->actingAs(factory(User::class, 'superAdmin')->make()) $this->actingAs(factory(User::class, 'superAdmin')->create())
->get('/admin') ->get('/admin')
->assertSuccessful(); ->assertSuccessful();
} }

View File

@ -9,13 +9,13 @@ class CheckSuperAdminTest extends TestCase
public function testHandle() public function testHandle()
{ {
// Admin // Admin
$this->actAs(factory(User::class, 'admin')->make()) $this->actAs(factory(User::class, 'admin')->create())
->get('/admin/plugins/manage') ->get('/admin/update')
->assertForbidden(); ->assertForbidden();
// Super admin // Super admin
$this->actAs(factory(User::class, 'superAdmin')->make()) $this->actAs(factory(User::class, 'superAdmin')->create())
->get('/admin/plugins/manage') ->get('/admin/update')
->assertSuccessful(); ->assertSuccessful();
} }
} }

View File

@ -12,7 +12,7 @@ class RedirectToSetupTest extends TestCase
public function testHandle() public function testHandle()
{ {
$superAdmin = factory(User::class, 'superAdmin')->make(); $superAdmin = factory(User::class, 'superAdmin')->create();
$current = config('app.version'); $current = config('app.version');
config(['app.version' => '100.0.0']); config(['app.version' => '100.0.0']);

View File

@ -18,7 +18,7 @@ class FootComposerTest extends TestCase
option([ option([
'custom_js' => '"<div></div>"</script><h1 id=disallowed></h1><script>', 'custom_js' => '"<div></div>"</script><h1 id=disallowed></h1><script>',
]); ]);
$user = factory(User::class)->make(); $user = factory(User::class)->create();
$this->actingAs($user); $this->actingAs($user);
$this->get('/user')->assertSee('"<div></div>"'); $this->get('/user')->assertSee('"<div></div>"');
$crawler = new Crawler($this->get('/user')->getContent()); $crawler = new Crawler($this->get('/user')->getContent());
@ -60,7 +60,7 @@ class FootComposerTest extends TestCase
$event->contents[] = '<div id=appended></div>'; $event->contents[] = '<div id=appended></div>';
}); });
$user = factory(User::class)->make(); $user = factory(User::class)->create();
$this->actingAs($user); $this->actingAs($user);
$this->get('/user')->assertSee('<div id=appended></div>'); $this->get('/user')->assertSee('<div id=appended></div>');
} }

View File

@ -15,7 +15,7 @@ class SideMenuComposerTest extends TestCase
{ {
Event::fake(); Event::fake();
$admin = factory(User::class, 'admin')->make(); $admin = factory(User::class, 'admin')->create();
$this->actingAs($admin)->get('/user'); $this->actingAs($admin)->get('/user');
Event::assertDispatched(Events\ConfigureUserMenu::class); Event::assertDispatched(Events\ConfigureUserMenu::class);
Event::assertDispatched(Events\ConfigureExploreMenu::class); Event::assertDispatched(Events\ConfigureExploreMenu::class);
@ -26,7 +26,7 @@ class SideMenuComposerTest extends TestCase
public function testTransform() public function testTransform()
{ {
$user = factory(User::class)->make(); $user = factory(User::class)->create();
$this->actingAs($user); $this->actingAs($user);
$crawler = new Crawler($this->get('/user/oauth/manage')->getContent()); $crawler = new Crawler($this->get('/user/oauth/manage')->getContent());
@ -53,7 +53,7 @@ class SideMenuComposerTest extends TestCase
); );
}); });
$admin = factory(User::class, 'admin')->make(); $admin = factory(User::class, 'admin')->create();
$this->actingAs($admin) $this->actingAs($admin)
->get('/admin') ->get('/admin')
->assertDontSee(trans('general.plugin-configs')); ->assertDontSee(trans('general.plugin-configs'));

View File

@ -8,7 +8,7 @@ class UserMenuComposerTest extends TestCase
{ {
public function testAvatar() public function testAvatar()
{ {
$user = factory(User::class)->make(); $user = factory(User::class)->create();
$this->actingAs($user) $this->actingAs($user)
->get('/') ->get('/')
->assertSee(url('/avatar/user/'.$user->uid.'?size=25')); ->assertSee(url('/avatar/user/'.$user->uid.'?size=25'));

View File

@ -9,7 +9,7 @@ class UserPanelComposerTest extends TestCase
{ {
public function testRenderUser() public function testRenderUser()
{ {
$user = factory(User::class)->make(); $user = factory(User::class)->create();
$this->actingAs($user); $this->actingAs($user);
$this->get('/user')->assertSee(url('/avatar/user/'.$user->uid.'?size=45')); $this->get('/user')->assertSee(url('/avatar/user/'.$user->uid.'?size=45'));
@ -17,7 +17,7 @@ class UserPanelComposerTest extends TestCase
public function testBadges() public function testBadges()
{ {
$user = factory(User::class)->make(); $user = factory(User::class)->create();
$this->actingAs($user); $this->actingAs($user);
Event::listen(\App\Events\RenderingBadges::class, function ($event) { Event::listen(\App\Events\RenderingBadges::class, function ($event) {