Merge branch 'release/0.6'
This commit is contained in:
commit
d1b0f37f73
54 changed files with 1030 additions and 732 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -7,7 +7,7 @@
|
|||
/.vagrant
|
||||
Homestead.yaml
|
||||
Homestead.json
|
||||
.npm-debug.log
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
.env
|
||||
/public/files
|
||||
|
|
14
.travis.yml
14
.travis.yml
|
@ -7,6 +7,7 @@ cache:
|
|||
- apt
|
||||
|
||||
addons:
|
||||
chrome: stable
|
||||
postgresql: "9.6"
|
||||
apt:
|
||||
sources:
|
||||
|
@ -38,10 +39,6 @@ before_install:
|
|||
- echo 'error_log = "/tmp/php.error.log"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
|
||||
- psql -U travis -c 'create database travis_ci_test'
|
||||
- psql -U travis -d travis_ci_test -c 'create extension postgis'
|
||||
- mkdir travis-phantomjs
|
||||
- wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
|
||||
- tar -xvf $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis-phantomjs
|
||||
- export PATH=$PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH
|
||||
- travis_retry composer self-update --preview
|
||||
|
||||
install:
|
||||
|
@ -55,14 +52,9 @@ before_script:
|
|||
- php artisan migrate
|
||||
- php artisan db:seed
|
||||
- php artisan token:generate
|
||||
- phantomjs --webdriver=127.0.0.1:9515 --webdriver-loglevel=DEBUG &
|
||||
- sleep 5 # Give artisan some time to start serving
|
||||
- google-chrome-stable --headless --disable-gpu --remote-debugging-port=9515 http://localhost:8000 &
|
||||
|
||||
script:
|
||||
- php vendor/bin/phpunit --coverage-text
|
||||
- php artisan dusk
|
||||
- php vendor/bin/security-checker security:check ./composer.lock --end-point=http://security.sensiolabs.org/check_lock
|
||||
|
||||
after_script:
|
||||
- killall -9 postgresql
|
||||
- killall -9 php-fpm
|
||||
- killall -9 nginx
|
|
@ -32,12 +32,14 @@ class Kernel extends ConsoleKernel
|
|||
}
|
||||
|
||||
/**
|
||||
* Register the Closure based commands for the application.
|
||||
* Register the commands for the application.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function commands()
|
||||
{
|
||||
$this->load(__DIR__.'/Commands');
|
||||
|
||||
require base_path('routes/console.php');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,24 +4,28 @@ namespace App\Exceptions;
|
|||
|
||||
use Exception;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Auth\AuthenticationException;
|
||||
use Illuminate\Session\TokenMismatchException;
|
||||
use Illuminate\Foundation\Exceptions\Handler as 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
|
||||
*/
|
||||
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,
|
||||
\Illuminate\Validation\ValidationException::class,
|
||||
//
|
||||
];
|
||||
|
||||
/**
|
||||
* A list of the inputs that are never flashed for validation exceptions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $dontFlash = [
|
||||
'password',
|
||||
'password_confirmation',
|
||||
];
|
||||
|
||||
/**
|
||||
|
@ -52,20 +56,4 @@ class Handler extends ExceptionHandler
|
|||
|
||||
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;
|
||||
|
||||
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;
|
||||
|
||||
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.
|
||||
*
|
||||
* @param array $data
|
||||
* @return User
|
||||
* @return \App\User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
|
|
|
@ -19,9 +19,9 @@ class IndieAuthController extends Controller
|
|||
* @param \IndieAuth\Client $client
|
||||
* @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.
|
||||
*/
|
||||
public function __construct(
|
||||
IndieClient $indieClient = null,
|
||||
GuzzleClient $guzzleClient = null
|
||||
IndieClient $indieClient,
|
||||
GuzzleClient $guzzleClient
|
||||
) {
|
||||
$this->guzzleClient = $guzzleClient ?? new GuzzleClient();
|
||||
$this->indieClient = $indieClient ?? new IndieClient();
|
||||
$this->indieClient = $indieClient;
|
||||
$this->guzzleClient = $guzzleClient;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -34,13 +34,13 @@ class MicropubController extends Controller
|
|||
* Inject the dependencies.
|
||||
*/
|
||||
public function __construct(
|
||||
TokenService $tokenService = null,
|
||||
NoteService $noteService = null,
|
||||
PlaceService $placeService = null
|
||||
TokenService $tokenService,
|
||||
NoteService $noteService,
|
||||
PlaceService $placeService
|
||||
) {
|
||||
$this->tokenService = $tokenService ?? new TokenService();
|
||||
$this->noteService = $noteService ?? new NoteService();
|
||||
$this->placeService = $placeService ?? new PlaceService();
|
||||
$this->tokenService = $tokenService;
|
||||
$this->noteService = $noteService;
|
||||
$this->placeService = $placeService;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -26,11 +26,11 @@ class TokenEndpointController extends Controller
|
|||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
Client $client = null,
|
||||
TokenService $tokenService = null
|
||||
Client $client,
|
||||
TokenService $tokenService
|
||||
) {
|
||||
$this->client = $client ?? new Client();
|
||||
$this->tokenService = $tokenService ?? new TokenService();
|
||||
$this->client = $client;
|
||||
$this->tokenService = $tokenService;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -18,6 +18,7 @@ class Kernel extends HttpKernel
|
|||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
||||
\App\Http\Middleware\TrimStrings::class,
|
||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
||||
\App\Http\Middleware\TrustProxies::class,
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
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.
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
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.
|
||||
|
|
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;
|
||||
|
||||
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.
|
||||
|
|
4
artisan
4
artisan
|
@ -1,6 +1,8 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
define('LARAVEL_START', microtime(true));
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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';
|
||||
|
||||
|
|
|
@ -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';
|
|
@ -1,5 +1,9 @@
|
|||
# Changelog
|
||||
|
||||
## Version 0.6 (2017-09-06)
|
||||
- Update laravel version to 5.5
|
||||
- Improve .travis.yml and add back dusk tests
|
||||
|
||||
## Version 0.5.28 (2017-08-20)
|
||||
- Improve Swarm checkin code to allow checkins without text
|
||||
+ this required a change in the notes table schema
|
||||
|
|
|
@ -6,15 +6,16 @@
|
|||
"type": "project",
|
||||
"require": {
|
||||
"php": ">=7.1.0",
|
||||
"cviebrock/eloquent-sluggable": "^4.2",
|
||||
"cviebrock/eloquent-sluggable": "~4.3",
|
||||
"ezyang/htmlpurifier": "~4.6",
|
||||
"fideloper/proxy": "~3.3",
|
||||
"guzzlehttp/guzzle": "~6.0",
|
||||
"indieauth/client": "~0.1",
|
||||
"jonnybarnes/commonmark-linkify": "^0.2",
|
||||
"jonnybarnes/emoji-a11y": "^0.3",
|
||||
"jonnybarnes/indieweb": "dev-master",
|
||||
"jonnybarnes/webmentions-parser": "0.4.*",
|
||||
"laravel/framework": "5.4.*",
|
||||
"laravel/framework": "5.5.*",
|
||||
"laravel/scout": "^3.0",
|
||||
"laravel/tinker": "^1.0",
|
||||
"lcobucci/jwt": "^3.1",
|
||||
|
@ -22,25 +23,26 @@
|
|||
"league/flysystem-aws-s3-v3": "^1.0",
|
||||
"mf2/mf2": "~0.3",
|
||||
"phaza/laravel-postgis": "~3.1",
|
||||
"pmatseykanets/laravel-scout-postgres": "^0.5.0",
|
||||
"pmatseykanets/laravel-scout-postgres": "~1.0",
|
||||
"predis/predis": "~1.0",
|
||||
"ramsey/uuid": "^3.5",
|
||||
"sensiolabs/security-checker": "^4.0",
|
||||
"spatie/laravel-tinker-tools": "^1.0",
|
||||
"thujohn/twitter": "~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"barryvdh/laravel-debugbar": "~2.0",
|
||||
"barryvdh/laravel-debugbar": "~3.0",
|
||||
"filp/whoops": "~2.0",
|
||||
"fzaninotto/faker": "~1.4",
|
||||
"jakub-onderka/php-parallel-lint": "^0.9.2",
|
||||
"laravel/dusk": "^1.0",
|
||||
"laravel/dusk": "^2.0",
|
||||
"mockery/mockery": "0.9.*",
|
||||
"phpunit/phpunit": "~5.7",
|
||||
"phpunit/phpunit": "~6.0",
|
||||
"sebastian/phpcpd": "^3.0"
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"database"
|
||||
"database/seeds",
|
||||
"database/factories"
|
||||
],
|
||||
"psr-4": {
|
||||
"App\\": "app/"
|
||||
|
@ -54,20 +56,22 @@
|
|||
"Tests\\": "tests"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"dont-discover": [
|
||||
]
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"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": [
|
||||
"php artisan key:generate"
|
||||
"@php artisan key:generate"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postInstall",
|
||||
"php artisan optimize"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
|
||||
"php artisan optimize"
|
||||
"post-autoload-dump": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||
"@php artisan package:discover"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
|
|
1269
composer.lock
generated
1269
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
|
||||
| framework needs to place the application's name in a notification or
|
||||
| any other location as required by the application or its packages.
|
||||
|
|
||||
*/
|
||||
|
||||
'name' => 'jonnybarnes.uk',
|
||||
|
@ -205,41 +206,11 @@ return [
|
|||
App\Providers\EventServiceProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Laravel Debugbar
|
||||
*/
|
||||
Barryvdh\Debugbar\ServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Thujohn’s Twitter API client
|
||||
*/
|
||||
Thujohn\Twitter\TwitterServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Phaza’s Postgis library
|
||||
*/
|
||||
Phaza\LaravelPostgis\DatabaseServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Laravel scout
|
||||
*/
|
||||
Laravel\Scout\ScoutServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Postgres Engine for Scout
|
||||
*/
|
||||
ScoutEngines\Postgres\PostgresEngineServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Laravel Tinker
|
||||
*/
|
||||
Laravel\Tinker\TinkerServiceProvider::class,
|
||||
|
||||
/*
|
||||
* Eolquent Sluggable
|
||||
*/
|
||||
Cviebrock\EloquentSluggable\ServiceProvider::class,
|
||||
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
@ -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,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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"?>
|
||||
<phpunit backupGlobals="false"
|
||||
backupStaticAttributes="false"
|
||||
bootstrap="bootstrap/autoload.php"
|
||||
bootstrap="vendor/autoload.php"
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
* @author Taylor Otwell <taylor@laravel.com>
|
||||
*/
|
||||
|
||||
define('LARAVEL_START', microtime(true));
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register The Auto Loader
|
||||
|
@ -19,7 +21,7 @@
|
|||
|
|
||||
*/
|
||||
|
||||
require __DIR__.'/../bootstrap/autoload.php';
|
||||
require __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Browser;
|
||||
|
||||
use Tests\DuskTestCase;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
|
||||
class ArticlesTest extends DuskTestCase
|
||||
{
|
||||
/**
|
||||
* Test the `/blog` page.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_articles_page()
|
||||
{
|
||||
$this->browse(function ($browser) {
|
||||
$browser->visit('/blog')
|
||||
->assertSee('My New Blog');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the `/blog` page with a year scoping results.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_articles_page_with_specified_year()
|
||||
{
|
||||
$this->browse(function ($browser) {
|
||||
$browser->visit('/blog/2016')
|
||||
->assertSee('My New Blog');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the `/blog` page with a year and month scoping results.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_articles_page_with_specified_year_and_month()
|
||||
{
|
||||
$this->browse(function ($browser) {
|
||||
$browser->visit('/blog/2016/01')
|
||||
->assertSee('My New Blog');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test a single article page.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_single_article_page()
|
||||
{
|
||||
$this->browse(function ($browser) {
|
||||
$browser->visit('/blog/2016/01/my-new-blog')
|
||||
->assertSee('My New Blog');
|
||||
});
|
||||
}
|
||||
}
|
|
@ -13,7 +13,7 @@ class ExampleTest extends DuskTestCase
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testBasicExample()
|
||||
public function test_basic_example()
|
||||
{
|
||||
$this->browse(function (Browser $browser) {
|
||||
$browser->visit('/')
|
||||
|
|
|
@ -16,7 +16,7 @@ class MicropubClientTest extends DuskTestCase
|
|||
{
|
||||
$this->browse(function ($browser) {
|
||||
$browser->visit(route('micropub-client'))
|
||||
->assertSee('You are authenticated');
|
||||
->assertSee('You are authenticated as');
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -26,10 +26,10 @@ class MicropubClientTest extends DuskTestCase
|
|||
$faker = \Faker\Factory::create();
|
||||
$note = 'Fake note from #LaravelDusk: ' . $faker->text;
|
||||
$this->browse(function ($browser) use ($note) {
|
||||
$browser->visit(route('micropub-client'))
|
||||
$response = $browser->visit(route('micropub-client'))
|
||||
->assertSeeLink('log out')
|
||||
->type('content', $note)
|
||||
->press('Submit');
|
||||
->type('content', $note);
|
||||
$response->element('form')->submit();
|
||||
});
|
||||
sleep(2);
|
||||
$this->assertDatabaseHas('notes', ['note' => $note]);
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace Tests;
|
||||
|
||||
use Laravel\Dusk\TestCase as BaseTestCase;
|
||||
use Facebook\WebDriver\Chrome\ChromeOptions;
|
||||
use Facebook\WebDriver\Remote\RemoteWebDriver;
|
||||
use Facebook\WebDriver\Remote\DesiredCapabilities;
|
||||
|
||||
|
@ -18,7 +19,7 @@ abstract class DuskTestCase extends BaseTestCase
|
|||
*/
|
||||
public static function prepare()
|
||||
{
|
||||
//static::startChromeDriver();
|
||||
static::startChromeDriver();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,8 +29,18 @@ abstract class DuskTestCase extends BaseTestCase
|
|||
*/
|
||||
protected function driver()
|
||||
{
|
||||
$desiredCapabilities = DesiredCapabilities::chrome();
|
||||
|
||||
$options = new ChromeOptions();
|
||||
$options->addArguments([
|
||||
'headless',
|
||||
'disable-gpu'
|
||||
]);
|
||||
|
||||
$desiredCapabilities->setCapability(ChromeOptions::CAPABILITY, $options);
|
||||
|
||||
return RemoteWebDriver::create(
|
||||
'http://localhost:9515', DesiredCapabilities::phantomjs()
|
||||
'http://localhost:9515', $desiredCapabilities
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,8 +4,6 @@ namespace Tests\Feature;
|
|||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class ArticlesAdminTest extends TestCase
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
namespace Tests\Feature;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class BridgyPosseTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
namespace Tests\Feature;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class ContactsTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -3,9 +3,7 @@
|
|||
namespace Tests\Feature;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
|
||||
class ExampleTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
namespace Tests\Feature;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class FeedsTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
namespace Tests\Feature;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class IndieAuthControllerTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -2,17 +2,12 @@
|
|||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use Mockery;
|
||||
use Tests\TestCase;
|
||||
use App\IndieWebUser;
|
||||
use IndieAuth\Client as IndieClient;
|
||||
use GuzzleHttp\Client as GuzzleClient;
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\Middleware;
|
||||
use GuzzleHttp\HandlerStack;
|
||||
use GuzzleHttp\Psr7\Response;
|
||||
use GuzzleHttp\Handler\MockHandler;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class MicropubClientControllerTest extends TestCase
|
||||
|
@ -29,10 +24,11 @@ class MicropubClientControllerTest extends TestCase
|
|||
]);
|
||||
|
||||
$stack = HandlerStack::create($mock);
|
||||
// add the history middleware to the stack
|
||||
$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(
|
||||
'/micropub',
|
||||
|
@ -42,8 +38,8 @@ class MicropubClientControllerTest extends TestCase
|
|||
'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) {
|
||||
$this->assertEquals($expected, $transaction['request']->getBody()->getContents());
|
||||
}
|
||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Feature;
|
|||
use Tests\TestCase;
|
||||
use Lcobucci\JWT\Builder;
|
||||
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class MicropubControllerTest extends TestCase
|
||||
|
|
|
@ -7,8 +7,6 @@ use App\Services\NoteService;
|
|||
use App\Jobs\SyndicateToTwitter;
|
||||
use App\Jobs\SyndicateToFacebook;
|
||||
use Illuminate\Support\Facades\Queue;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class NoteServiceTest extends TestCase
|
||||
|
|
|
@ -4,9 +4,6 @@ namespace Tests\Feature;
|
|||
|
||||
use App\Note;
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class NotesControllerTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Feature;
|
|||
use Tests\TestCase;
|
||||
use Lcobucci\JWT\Builder;
|
||||
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class OwnYourGramTest extends TestCase
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
namespace Tests\Feature;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class PlacesTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Feature;
|
|||
use Tests\TestCase;
|
||||
use Lcobucci\JWT\Builder;
|
||||
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class SwarmTest extends TestCase
|
||||
|
|
|
@ -5,9 +5,6 @@ namespace Tests\Feature;
|
|||
use Mockery;
|
||||
use Tests\TestCase;
|
||||
use IndieAuth\Client;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class TokenEndpointTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -3,9 +3,7 @@
|
|||
namespace Tests\Feature;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
use App\Services\TokenService;
|
||||
|
||||
class TokenServiceTest extends TestCase
|
||||
{
|
||||
|
@ -17,7 +15,7 @@ class TokenServiceTest extends TestCase
|
|||
*/
|
||||
public function test_token_creation_and_validation()
|
||||
{
|
||||
$tokenService = new \App\Services\TokenService();
|
||||
$tokenService = new TokenService();
|
||||
$data = [
|
||||
'me' => 'https://example.org',
|
||||
'client_id' => 'https://quill.p3k.io',
|
||||
|
|
|
@ -5,9 +5,6 @@ namespace Tests\Feature;
|
|||
use Tests\TestCase;
|
||||
use App\Jobs\ProcessWebMention;
|
||||
use Illuminate\Support\Facades\Queue;
|
||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class WebMentionsControllerTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
namespace Tests\Unit;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
|
||||
class ExampleTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
namespace Tests\Unit;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class HelpersTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
namespace Tests\Unit;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
use App\Services\IndieAuthService;
|
||||
|
||||
class IndieAuthServiceTest extends TestCase
|
||||
{
|
||||
|
@ -15,7 +14,7 @@ class IndieAuthServiceTest extends TestCase
|
|||
*/
|
||||
public function test_indieauthservice_getauthorizationendpoint_method()
|
||||
{
|
||||
$service = new \App\Services\IndieAuthService();
|
||||
$service = new IndieAuthService();
|
||||
$result = $service->getAuthorizationEndpoint(config('app.url'));
|
||||
$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()
|
||||
{
|
||||
$service = new \App\Services\IndieAuthService();
|
||||
$service = new IndieAuthService();
|
||||
$result = $service->getAuthorizationEndpoint('http://example.org');
|
||||
$this->assertEquals(null, $result);
|
||||
}
|
||||
|
@ -39,7 +38,7 @@ class IndieAuthServiceTest extends TestCase
|
|||
*/
|
||||
public function test_indieauthservice_builds_correct_redirect_url()
|
||||
{
|
||||
$service = new \App\Services\IndieAuthService();
|
||||
$service = new IndieAuthService();
|
||||
$result = $service->buildAuthorizationURL(
|
||||
'https://indieauth.com/auth',
|
||||
config('app.url')
|
||||
|
@ -57,7 +56,7 @@ class IndieAuthServiceTest extends TestCase
|
|||
*/
|
||||
public function test_indieauthservice_gettokenendpoint_method()
|
||||
{
|
||||
$service = new \App\Services\IndieAuthService();
|
||||
$service = new IndieAuthService();
|
||||
$result = $service->getTokenEndpoint(config('app.url'));
|
||||
$this->assertEquals(config('app.url') . '/api/token', $result);
|
||||
}
|
||||
|
@ -69,7 +68,7 @@ class IndieAuthServiceTest extends TestCase
|
|||
*/
|
||||
public function test_indieauthservice_discovermicropubendpoint_method()
|
||||
{
|
||||
$service = new \App\Services\IndieAuthService();
|
||||
$service = new IndieAuthService();
|
||||
$result = $service->discoverMicropubEndpoint(config('app.url'));
|
||||
$this->assertEquals(config('app.url') . '/api/post', $result);
|
||||
}
|
||||
|
|
|
@ -4,8 +4,6 @@ namespace Tests\Unit;
|
|||
|
||||
use App\Note;
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class NotesTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Unit;
|
|||
use App\Place;
|
||||
use Tests\TestCase;
|
||||
use Phaza\LaravelPostgis\Geometries\Point;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class PlacesTest extends TestCase
|
||||
{
|
||||
|
|
|
@ -5,8 +5,6 @@ namespace Tests\Unit;
|
|||
use Cache;
|
||||
use App\WebMention;
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class WebMentionTest extends TestCase
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue