Update the app to Laravel 5.5
Squashed commit of the following: commit 070f46bbacd91855730d467cc2806183441791ae Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Sep 4 18:06:04 2017 +0100 Now we now how the laravel IoC conatiner works, no need to be newing class dependencies commit 57eeacdef178532a681f774f8c6738950d40c964 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Sep 4 17:59:28 2017 +0100 Get json test working again commit 81c3cfc9b432241d8a4df7f1e0511a50ea4f9b90 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Sep 4 14:38:10 2017 +0100 Can’t use RefreshDatabase yet commit 4ba5ff724d50ca86b3fa90c7bb4e71ad9e4dad79 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Sep 4 14:10:33 2017 +0100 Initial attempt at updating to Laravel 5.5
This commit is contained in:
parent
9f3375c478
commit
3f15291d16
48 changed files with 947 additions and 587 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -7,7 +7,7 @@
|
||||||
/.vagrant
|
/.vagrant
|
||||||
Homestead.yaml
|
Homestead.yaml
|
||||||
Homestead.json
|
Homestead.json
|
||||||
.npm-debug.log
|
npm-debug.log
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
.env
|
.env
|
||||||
/public/files
|
/public/files
|
||||||
|
|
|
@ -32,12 +32,14 @@ class Kernel extends ConsoleKernel
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register the Closure based commands for the application.
|
* Register the commands for the application.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function commands()
|
protected function commands()
|
||||||
{
|
{
|
||||||
|
$this->load(__DIR__.'/Commands');
|
||||||
|
|
||||||
require base_path('routes/console.php');
|
require base_path('routes/console.php');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,24 +4,28 @@ namespace App\Exceptions;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Illuminate\Auth\AuthenticationException;
|
|
||||||
use Illuminate\Session\TokenMismatchException;
|
use Illuminate\Session\TokenMismatchException;
|
||||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||||
|
|
||||||
class Handler extends ExceptionHandler
|
class Handler extends ExceptionHandler
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* A list of the exception types that should not be reported.
|
* A list of the exception types that are not reported.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $dontReport = [
|
protected $dontReport = [
|
||||||
\Illuminate\Auth\AuthenticationException::class,
|
//
|
||||||
\Illuminate\Auth\Access\AuthorizationException::class,
|
];
|
||||||
\Symfony\Component\HttpKernel\Exception\HttpException::class,
|
|
||||||
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
|
/**
|
||||||
\Illuminate\Session\TokenMismatchException::class,
|
* A list of the inputs that are never flashed for validation exceptions.
|
||||||
\Illuminate\Validation\ValidationException::class,
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $dontFlash = [
|
||||||
|
'password',
|
||||||
|
'password_confirmation',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -52,20 +56,4 @@ class Handler extends ExceptionHandler
|
||||||
|
|
||||||
return parent::render($request, $exception);
|
return parent::render($request, $exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert an authentication exception into an unauthenticated response.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \Illuminate\Auth\AuthenticationException $exception
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
protected function unauthenticated($request, AuthenticationException $exception)
|
|
||||||
{
|
|
||||||
if ($request->expectsJson()) {
|
|
||||||
return response()->json(['error' => 'Unauthenticated.'], 401);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->guest('login');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,9 +13,9 @@ class NotesController extends Controller
|
||||||
{
|
{
|
||||||
protected $noteService;
|
protected $noteService;
|
||||||
|
|
||||||
public function __construct(NoteService $noteService = null)
|
public function __construct(NoteService $noteService)
|
||||||
{
|
{
|
||||||
$this->noteService = $noteService ?? new NoteService();
|
$this->noteService = $noteService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -12,9 +12,9 @@ class PlacesController extends Controller
|
||||||
{
|
{
|
||||||
protected $placeService;
|
protected $placeService;
|
||||||
|
|
||||||
public function __construct(PlaceService $placeService = null)
|
public function __construct(PlaceService $placeService)
|
||||||
{
|
{
|
||||||
$this->placeService = $placeService ?? new PlaceService();
|
$this->placeService = $placeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -58,7 +58,7 @@ class RegisterController extends Controller
|
||||||
* Create a new user instance after a valid registration.
|
* Create a new user instance after a valid registration.
|
||||||
*
|
*
|
||||||
* @param array $data
|
* @param array $data
|
||||||
* @return User
|
* @return \App\User
|
||||||
*/
|
*/
|
||||||
protected function create(array $data)
|
protected function create(array $data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,9 +19,9 @@ class IndieAuthController extends Controller
|
||||||
* @param \IndieAuth\Client $client
|
* @param \IndieAuth\Client $client
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function __construct(Client $client = null)
|
public function __construct(Client $client)
|
||||||
{
|
{
|
||||||
$this->client = $client ?? new Client();
|
$this->client = $client;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,11 +14,11 @@ class MicropubClientController extends Controller
|
||||||
* Inject the dependencies.
|
* Inject the dependencies.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
IndieClient $indieClient = null,
|
IndieClient $indieClient,
|
||||||
GuzzleClient $guzzleClient = null
|
GuzzleClient $guzzleClient
|
||||||
) {
|
) {
|
||||||
$this->guzzleClient = $guzzleClient ?? new GuzzleClient();
|
$this->indieClient = $indieClient;
|
||||||
$this->indieClient = $indieClient ?? new IndieClient();
|
$this->guzzleClient = $guzzleClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -34,13 +34,13 @@ class MicropubController extends Controller
|
||||||
* Inject the dependencies.
|
* Inject the dependencies.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
TokenService $tokenService = null,
|
TokenService $tokenService,
|
||||||
NoteService $noteService = null,
|
NoteService $noteService,
|
||||||
PlaceService $placeService = null
|
PlaceService $placeService
|
||||||
) {
|
) {
|
||||||
$this->tokenService = $tokenService ?? new TokenService();
|
$this->tokenService = $tokenService;
|
||||||
$this->noteService = $noteService ?? new NoteService();
|
$this->noteService = $noteService;
|
||||||
$this->placeService = $placeService ?? new PlaceService();
|
$this->placeService = $placeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -26,11 +26,11 @@ class TokenEndpointController extends Controller
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
Client $client = null,
|
Client $client,
|
||||||
TokenService $tokenService = null
|
TokenService $tokenService
|
||||||
) {
|
) {
|
||||||
$this->client = $client ?? new Client();
|
$this->client = $client;
|
||||||
$this->tokenService = $tokenService ?? new TokenService();
|
$this->tokenService = $tokenService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,6 +18,7 @@ class Kernel extends HttpKernel
|
||||||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
||||||
\App\Http\Middleware\TrimStrings::class,
|
\App\Http\Middleware\TrimStrings::class,
|
||||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
||||||
|
\App\Http\Middleware\TrustProxies::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter;
|
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
|
||||||
|
|
||||||
class EncryptCookies extends BaseEncrypter
|
class EncryptCookies extends Middleware
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The names of the cookies that should not be encrypted.
|
* The names of the cookies that should not be encrypted.
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Middleware\TrimStrings as BaseTrimmer;
|
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
|
||||||
|
|
||||||
class TrimStrings extends BaseTrimmer
|
class TrimStrings extends Middleware
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The names of the attributes that should not be trimmed.
|
* The names of the attributes that should not be trimmed.
|
||||||
|
|
29
app/Http/Middleware/TrustProxies.php
Normal file
29
app/Http/Middleware/TrustProxies.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Fideloper\Proxy\TrustProxies as Middleware;
|
||||||
|
|
||||||
|
class TrustProxies extends Middleware
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The trusted proxies for this application.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $proxies;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The current proxy header mappings.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $headers = [
|
||||||
|
Request::HEADER_FORWARDED => 'FORWARDED',
|
||||||
|
Request::HEADER_X_FORWARDED_FOR => 'X_FORWARDED_FOR',
|
||||||
|
Request::HEADER_X_FORWARDED_HOST => 'X_FORWARDED_HOST',
|
||||||
|
Request::HEADER_X_FORWARDED_PORT => 'X_FORWARDED_PORT',
|
||||||
|
Request::HEADER_X_FORWARDED_PROTO => 'X_FORWARDED_PROTO',
|
||||||
|
];
|
||||||
|
}
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
|
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
|
||||||
|
|
||||||
class VerifyCsrfToken extends BaseVerifier
|
class VerifyCsrfToken extends Middleware
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The URIs that should be excluded from CSRF verification.
|
* The URIs that should be excluded from CSRF verification.
|
||||||
|
|
4
artisan
4
artisan
|
@ -1,6 +1,8 @@
|
||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
define('LARAVEL_START', microtime(true));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Register The Auto Loader
|
| Register The Auto Loader
|
||||||
|
@ -13,7 +15,7 @@
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require __DIR__.'/bootstrap/autoload.php';
|
require __DIR__.'/vendor/autoload.php';
|
||||||
|
|
||||||
$app = require_once __DIR__.'/bootstrap/app.php';
|
$app = require_once __DIR__.'/bootstrap/app.php';
|
||||||
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
define('LARAVEL_START', microtime(true));
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Register The Composer Auto Loader
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Composer provides a convenient, automatically generated class loader
|
|
||||||
| for our application. We just need to utilize it! We'll require it
|
|
||||||
| into the script here so we do not have to manually load any of
|
|
||||||
| our application's PHP classes. It just feels great to relax.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
require __DIR__.'/../vendor/autoload.php';
|
|
|
@ -8,13 +8,14 @@
|
||||||
"php": ">=7.1.0",
|
"php": ">=7.1.0",
|
||||||
"cviebrock/eloquent-sluggable": "^4.2",
|
"cviebrock/eloquent-sluggable": "^4.2",
|
||||||
"ezyang/htmlpurifier": "~4.6",
|
"ezyang/htmlpurifier": "~4.6",
|
||||||
|
"fideloper/proxy": "~3.3",
|
||||||
"guzzlehttp/guzzle": "~6.0",
|
"guzzlehttp/guzzle": "~6.0",
|
||||||
"indieauth/client": "~0.1",
|
"indieauth/client": "~0.1",
|
||||||
"jonnybarnes/commonmark-linkify": "^0.2",
|
"jonnybarnes/commonmark-linkify": "^0.2",
|
||||||
"jonnybarnes/emoji-a11y": "^0.3",
|
"jonnybarnes/emoji-a11y": "^0.3",
|
||||||
"jonnybarnes/indieweb": "dev-master",
|
"jonnybarnes/indieweb": "dev-master",
|
||||||
"jonnybarnes/webmentions-parser": "0.4.*",
|
"jonnybarnes/webmentions-parser": "0.4.*",
|
||||||
"laravel/framework": "5.4.*",
|
"laravel/framework": "5.5.*",
|
||||||
"laravel/scout": "^3.0",
|
"laravel/scout": "^3.0",
|
||||||
"laravel/tinker": "^1.0",
|
"laravel/tinker": "^1.0",
|
||||||
"lcobucci/jwt": "^3.1",
|
"lcobucci/jwt": "^3.1",
|
||||||
|
@ -22,25 +23,26 @@
|
||||||
"league/flysystem-aws-s3-v3": "^1.0",
|
"league/flysystem-aws-s3-v3": "^1.0",
|
||||||
"mf2/mf2": "~0.3",
|
"mf2/mf2": "~0.3",
|
||||||
"phaza/laravel-postgis": "~3.1",
|
"phaza/laravel-postgis": "~3.1",
|
||||||
"pmatseykanets/laravel-scout-postgres": "^0.5.0",
|
"pmatseykanets/laravel-scout-postgres": "~1.0",
|
||||||
"predis/predis": "~1.0",
|
"predis/predis": "~1.0",
|
||||||
"ramsey/uuid": "^3.5",
|
"ramsey/uuid": "^3.5",
|
||||||
"sensiolabs/security-checker": "^4.0",
|
"sensiolabs/security-checker": "^4.0",
|
||||||
"spatie/laravel-tinker-tools": "^1.0",
|
|
||||||
"thujohn/twitter": "~2.0"
|
"thujohn/twitter": "~2.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"barryvdh/laravel-debugbar": "~2.0",
|
"barryvdh/laravel-debugbar": "~2.0",
|
||||||
|
"filp/whoops": "~2.0",
|
||||||
"fzaninotto/faker": "~1.4",
|
"fzaninotto/faker": "~1.4",
|
||||||
"jakub-onderka/php-parallel-lint": "^0.9.2",
|
"jakub-onderka/php-parallel-lint": "^0.9.2",
|
||||||
"laravel/dusk": "^1.0",
|
"laravel/dusk": "^2.0",
|
||||||
"mockery/mockery": "0.9.*",
|
"mockery/mockery": "0.9.*",
|
||||||
"phpunit/phpunit": "~5.7",
|
"phpunit/phpunit": "~6.0",
|
||||||
"sebastian/phpcpd": "^3.0"
|
"sebastian/phpcpd": "^3.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"classmap": [
|
"classmap": [
|
||||||
"database"
|
"database/seeds",
|
||||||
|
"database/factories"
|
||||||
],
|
],
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"App\\": "app/"
|
"App\\": "app/"
|
||||||
|
@ -54,20 +56,22 @@
|
||||||
"Tests\\": "tests"
|
"Tests\\": "tests"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"extra": {
|
||||||
|
"laravel": {
|
||||||
|
"dont-discover": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-root-package-install": [
|
"post-root-package-install": [
|
||||||
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||||
],
|
],
|
||||||
"post-create-project-cmd": [
|
"post-create-project-cmd": [
|
||||||
"php artisan key:generate"
|
"@php artisan key:generate"
|
||||||
],
|
],
|
||||||
"post-install-cmd": [
|
"post-autoload-dump": [
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postInstall",
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||||
"php artisan optimize"
|
"@php artisan package:discover"
|
||||||
],
|
|
||||||
"post-update-cmd": [
|
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
|
|
||||||
"php artisan optimize"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
|
|
1179
composer.lock
generated
1179
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -10,6 +10,7 @@ return [
|
||||||
| This value is the name of your application. This value is used when the
|
| This value is the name of your application. This value is used when the
|
||||||
| framework needs to place the application's name in a notification or
|
| framework needs to place the application's name in a notification or
|
||||||
| any other location as required by the application or its packages.
|
| any other location as required by the application or its packages.
|
||||||
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'name' => 'jonnybarnes.uk',
|
'name' => 'jonnybarnes.uk',
|
||||||
|
|
|
@ -122,7 +122,10 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'cookie' => 'laravel_session',
|
'cookie' => env(
|
||||||
|
'SESSION_COOKIE',
|
||||||
|
str_slug(env('APP_NAME', 'laravel'), '_').'_session'
|
||||||
|
),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -176,4 +179,19 @@ return [
|
||||||
|
|
||||||
'http_only' => true,
|
'http_only' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Same-Site Cookies
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This option determines how your cookies behave when cross-site requests
|
||||||
|
| take place, and can be used to mitigate CSRF attacks. By default, we
|
||||||
|
| do not enable this as other CSRF protection services are in place.
|
||||||
|
|
|
||||||
|
| Supported: "lax", "strict"
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'same_site' => null,
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Model Factories
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Here you may define all of your model factories. Model factories give
|
|
||||||
| you a convenient way to create models for testing and seeding your
|
|
||||||
| database. Just tell the factory how a default model should look.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** @var \Illuminate\Database\Eloquent\Factory $factory */
|
|
||||||
$factory->define(App\User::class, function (Faker\Generator $faker) {
|
|
||||||
static $password;
|
|
||||||
|
|
||||||
return [
|
|
||||||
'name' => $faker->name,
|
|
||||||
'email' => $faker->safeEmail,
|
|
||||||
'password' => $password ?: $password = bcrypt('secret'),
|
|
||||||
'remember_token' => str_random(10),
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
$factory->define(App\Note::class, function (Faker\Generator $faker) {
|
|
||||||
return [
|
|
||||||
'note' => $faker->paragraph,
|
|
||||||
'tweet_id' => $faker->randomNumber(9),
|
|
||||||
'facebook_url' => 'https://facebook.com/' . $faker->randomNumber(9),
|
|
||||||
];
|
|
||||||
});
|
|
11
database/factories/NoteFactory.php
Normal file
11
database/factories/NoteFactory.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Faker\Generator as Faker;
|
||||||
|
|
||||||
|
$factory->define(App\Note::class, function (Faker $faker) {
|
||||||
|
return [
|
||||||
|
'note' => $faker->paragraph,
|
||||||
|
'tweet_id' => $faker->randomNumber(9),
|
||||||
|
'facebook_url' => 'https://facebook.com/' . $faker->randomNumber(9),
|
||||||
|
];
|
||||||
|
});
|
23
database/factories/UserFactory.php
Normal file
23
database/factories/UserFactory.php
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Faker\Generator as Faker;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Model Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This directory should contain each of the model factory definitions for
|
||||||
|
| your application. Factories provide a convenient way to generate new
|
||||||
|
| model instances for testing / seeding your application's database.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$factory->define(App\User::class, function (Faker $faker) {
|
||||||
|
static $password;
|
||||||
|
return [
|
||||||
|
'name' => $faker->name,
|
||||||
|
'email' => $faker->unique()->safeEmail,
|
||||||
|
'password' => $password ?: $password = bcrypt('secret'),
|
||||||
|
'remember_token' => str_random(10),
|
||||||
|
];
|
||||||
|
});
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<phpunit backupGlobals="false"
|
<phpunit backupGlobals="false"
|
||||||
backupStaticAttributes="false"
|
backupStaticAttributes="false"
|
||||||
bootstrap="bootstrap/autoload.php"
|
bootstrap="vendor/autoload.php"
|
||||||
colors="true"
|
colors="true"
|
||||||
convertErrorsToExceptions="true"
|
convertErrorsToExceptions="true"
|
||||||
convertNoticesToExceptions="true"
|
convertNoticesToExceptions="true"
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
* @author Taylor Otwell <taylor@laravel.com>
|
* @author Taylor Otwell <taylor@laravel.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
define('LARAVEL_START', microtime(true));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Register The Auto Loader
|
| Register The Auto Loader
|
||||||
|
@ -19,7 +21,7 @@
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require __DIR__.'/../bootstrap/autoload.php';
|
require __DIR__.'/../vendor/autoload.php';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
@ -4,8 +4,6 @@ namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Http\UploadedFile;
|
use Illuminate\Http\UploadedFile;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
|
||||||
class ArticlesAdminTest extends TestCase
|
class ArticlesAdminTest extends TestCase
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class BridgyPosseTest extends TestCase
|
class BridgyPosseTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class ContactsTest extends TestCase
|
class ContactsTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,9 +3,7 @@
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class ExampleTest extends TestCase
|
class ExampleTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class FeedsTest extends TestCase
|
class FeedsTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class IndieAuthControllerTest extends TestCase
|
class IndieAuthControllerTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,17 +2,12 @@
|
||||||
|
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Mockery;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use App\IndieWebUser;
|
use GuzzleHttp\Client;
|
||||||
use IndieAuth\Client as IndieClient;
|
|
||||||
use GuzzleHttp\Client as GuzzleClient;
|
|
||||||
use GuzzleHttp\Middleware;
|
use GuzzleHttp\Middleware;
|
||||||
use GuzzleHttp\HandlerStack;
|
use GuzzleHttp\HandlerStack;
|
||||||
use GuzzleHttp\Psr7\Response;
|
use GuzzleHttp\Psr7\Response;
|
||||||
use GuzzleHttp\Handler\MockHandler;
|
use GuzzleHttp\Handler\MockHandler;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
|
||||||
class MicropubClientControllerTest extends TestCase
|
class MicropubClientControllerTest extends TestCase
|
||||||
|
@ -29,10 +24,11 @@ class MicropubClientControllerTest extends TestCase
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$stack = HandlerStack::create($mock);
|
$stack = HandlerStack::create($mock);
|
||||||
|
// add the history middleware to the stack
|
||||||
$stack->push($history);
|
$stack->push($history);
|
||||||
$guzzleClient = new GuzzleClient(['handler' => $stack]);
|
$client = new Client(['handler' => $stack]);
|
||||||
|
|
||||||
$this->app->instance(GuzzleClient::class, $guzzleClient);
|
app()->instance(Client::class, $client);
|
||||||
|
|
||||||
$response = $this->post(
|
$response = $this->post(
|
||||||
'/micropub',
|
'/micropub',
|
||||||
|
@ -42,8 +38,8 @@ class MicropubClientControllerTest extends TestCase
|
||||||
'mp-syndicate-to' => ['https://twitter.com/jonnybarnes', 'https://facebook.com/jonnybarnes'],
|
'mp-syndicate-to' => ['https://twitter.com/jonnybarnes', 'https://facebook.com/jonnybarnes'],
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$expected = '{"type":["h-entry"],"properties":{"content":["Hello Fred"],"in-reply-to":["https:\/\/fredbloggs.com\/note\/abc"],"mp-syndicate-to":["https:\/\/twitter.com\/jonnybarnes","https:\/\/facebook.com\/jonnybarnes"]}}';
|
$expected = '{"type":["h-entry"],"properties":{"content":["Hello Fred"],"in-reply-to":["https:\/\/fredbloggs.com\/note\/abc"],"mp-syndicate-to":["https:\/\/twitter.com\/jonnybarnes","https:\/\/facebook.com\/jonnybarnes"]}}';
|
||||||
|
|
||||||
foreach ($container as $transaction) {
|
foreach ($container as $transaction) {
|
||||||
$this->assertEquals($expected, $transaction['request']->getBody()->getContents());
|
$this->assertEquals($expected, $transaction['request']->getBody()->getContents());
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Feature;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Lcobucci\JWT\Builder;
|
use Lcobucci\JWT\Builder;
|
||||||
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
|
||||||
class MicropubControllerTest extends TestCase
|
class MicropubControllerTest extends TestCase
|
||||||
|
|
|
@ -7,8 +7,6 @@ use App\Services\NoteService;
|
||||||
use App\Jobs\SyndicateToTwitter;
|
use App\Jobs\SyndicateToTwitter;
|
||||||
use App\Jobs\SyndicateToFacebook;
|
use App\Jobs\SyndicateToFacebook;
|
||||||
use Illuminate\Support\Facades\Queue;
|
use Illuminate\Support\Facades\Queue;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
|
||||||
class NoteServiceTest extends TestCase
|
class NoteServiceTest extends TestCase
|
||||||
|
|
|
@ -4,9 +4,6 @@ namespace Tests\Feature;
|
||||||
|
|
||||||
use App\Note;
|
use App\Note;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class NotesControllerTest extends TestCase
|
class NotesControllerTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Feature;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Lcobucci\JWT\Builder;
|
use Lcobucci\JWT\Builder;
|
||||||
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
|
||||||
class OwnYourGramTest extends TestCase
|
class OwnYourGramTest extends TestCase
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class PlacesTest extends TestCase
|
class PlacesTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Feature;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Lcobucci\JWT\Builder;
|
use Lcobucci\JWT\Builder;
|
||||||
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
|
||||||
class SwarmTest extends TestCase
|
class SwarmTest extends TestCase
|
||||||
|
|
|
@ -5,9 +5,6 @@ namespace Tests\Feature;
|
||||||
use Mockery;
|
use Mockery;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use IndieAuth\Client;
|
use IndieAuth\Client;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class TokenEndpointTest extends TestCase
|
class TokenEndpointTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,9 +3,7 @@
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
use App\Services\TokenService;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class TokenServiceTest extends TestCase
|
class TokenServiceTest extends TestCase
|
||||||
{
|
{
|
||||||
|
@ -17,7 +15,7 @@ class TokenServiceTest extends TestCase
|
||||||
*/
|
*/
|
||||||
public function test_token_creation_and_validation()
|
public function test_token_creation_and_validation()
|
||||||
{
|
{
|
||||||
$tokenService = new \App\Services\TokenService();
|
$tokenService = new TokenService();
|
||||||
$data = [
|
$data = [
|
||||||
'me' => 'https://example.org',
|
'me' => 'https://example.org',
|
||||||
'client_id' => 'https://quill.p3k.io',
|
'client_id' => 'https://quill.p3k.io',
|
||||||
|
|
|
@ -5,9 +5,6 @@ namespace Tests\Feature;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use App\Jobs\ProcessWebMention;
|
use App\Jobs\ProcessWebMention;
|
||||||
use Illuminate\Support\Facades\Queue;
|
use Illuminate\Support\Facades\Queue;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class WebMentionsControllerTest extends TestCase
|
class WebMentionsControllerTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,8 +3,7 @@
|
||||||
namespace Tests\Unit;
|
namespace Tests\Unit;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class ExampleTest extends TestCase
|
class ExampleTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
namespace Tests\Unit;
|
namespace Tests\Unit;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class HelpersTest extends TestCase
|
class HelpersTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,8 +3,7 @@
|
||||||
namespace Tests\Unit;
|
namespace Tests\Unit;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
use App\Services\IndieAuthService;
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class IndieAuthServiceTest extends TestCase
|
class IndieAuthServiceTest extends TestCase
|
||||||
{
|
{
|
||||||
|
@ -15,7 +14,7 @@ class IndieAuthServiceTest extends TestCase
|
||||||
*/
|
*/
|
||||||
public function test_indieauthservice_getauthorizationendpoint_method()
|
public function test_indieauthservice_getauthorizationendpoint_method()
|
||||||
{
|
{
|
||||||
$service = new \App\Services\IndieAuthService();
|
$service = new IndieAuthService();
|
||||||
$result = $service->getAuthorizationEndpoint(config('app.url'));
|
$result = $service->getAuthorizationEndpoint(config('app.url'));
|
||||||
$this->assertEquals('https://indieauth.com/auth', $result);
|
$this->assertEquals('https://indieauth.com/auth', $result);
|
||||||
}
|
}
|
||||||
|
@ -27,7 +26,7 @@ class IndieAuthServiceTest extends TestCase
|
||||||
*/
|
*/
|
||||||
public function test_indieauthservice_getauthorizationendpoint_method_returns_null_on_failure()
|
public function test_indieauthservice_getauthorizationendpoint_method_returns_null_on_failure()
|
||||||
{
|
{
|
||||||
$service = new \App\Services\IndieAuthService();
|
$service = new IndieAuthService();
|
||||||
$result = $service->getAuthorizationEndpoint('http://example.org');
|
$result = $service->getAuthorizationEndpoint('http://example.org');
|
||||||
$this->assertEquals(null, $result);
|
$this->assertEquals(null, $result);
|
||||||
}
|
}
|
||||||
|
@ -39,7 +38,7 @@ class IndieAuthServiceTest extends TestCase
|
||||||
*/
|
*/
|
||||||
public function test_indieauthservice_builds_correct_redirect_url()
|
public function test_indieauthservice_builds_correct_redirect_url()
|
||||||
{
|
{
|
||||||
$service = new \App\Services\IndieAuthService();
|
$service = new IndieAuthService();
|
||||||
$result = $service->buildAuthorizationURL(
|
$result = $service->buildAuthorizationURL(
|
||||||
'https://indieauth.com/auth',
|
'https://indieauth.com/auth',
|
||||||
config('app.url')
|
config('app.url')
|
||||||
|
@ -57,7 +56,7 @@ class IndieAuthServiceTest extends TestCase
|
||||||
*/
|
*/
|
||||||
public function test_indieauthservice_gettokenendpoint_method()
|
public function test_indieauthservice_gettokenendpoint_method()
|
||||||
{
|
{
|
||||||
$service = new \App\Services\IndieAuthService();
|
$service = new IndieAuthService();
|
||||||
$result = $service->getTokenEndpoint(config('app.url'));
|
$result = $service->getTokenEndpoint(config('app.url'));
|
||||||
$this->assertEquals(config('app.url') . '/api/token', $result);
|
$this->assertEquals(config('app.url') . '/api/token', $result);
|
||||||
}
|
}
|
||||||
|
@ -69,7 +68,7 @@ class IndieAuthServiceTest extends TestCase
|
||||||
*/
|
*/
|
||||||
public function test_indieauthservice_discovermicropubendpoint_method()
|
public function test_indieauthservice_discovermicropubendpoint_method()
|
||||||
{
|
{
|
||||||
$service = new \App\Services\IndieAuthService();
|
$service = new IndieAuthService();
|
||||||
$result = $service->discoverMicropubEndpoint(config('app.url'));
|
$result = $service->discoverMicropubEndpoint(config('app.url'));
|
||||||
$this->assertEquals(config('app.url') . '/api/post', $result);
|
$this->assertEquals(config('app.url') . '/api/post', $result);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,6 @@ namespace Tests\Unit;
|
||||||
|
|
||||||
use App\Note;
|
use App\Note;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class NotesTest extends TestCase
|
class NotesTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Unit;
|
||||||
use App\Place;
|
use App\Place;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Phaza\LaravelPostgis\Geometries\Point;
|
use Phaza\LaravelPostgis\Geometries\Point;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class PlacesTest extends TestCase
|
class PlacesTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Unit;
|
||||||
use Cache;
|
use Cache;
|
||||||
use App\WebMention;
|
use App\WebMention;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
|
|
||||||
class WebMentionTest extends TestCase
|
class WebMentionTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue