Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1307b21

Browse files
Add tests for custom validation
1 parent 9a3b692 commit 1307b21

File tree

5 files changed

+152
-103
lines changed

5 files changed

+152
-103
lines changed

‎app/Http/Controllers/HomeController.php‎

Lines changed: 91 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -4,77 +4,78 @@
44
use Illuminate\Http\Request;
55
use Illuminate\Support\Facades\Session;
66

7-
class HomeController extends Controller {
8-
9-
/**
10-
* Constructor.
11-
*/
12-
public function __construct()
13-
{
14-
$this->middleware('auth', ['only' => 'secure']);
15-
}
16-
17-
/**
18-
* @return \Illuminate\View\View
19-
*/
20-
public function index()
21-
{
22-
return view('hello');
23-
}
24-
25-
/**
26-
* @return \Illuminate\View\View
27-
*/
28-
public function flash()
29-
{
30-
Session::flash('message', "It's a flash");
31-
32-
return view('flash');
33-
}
34-
35-
/**
36-
* @return \Illuminate\Http\RedirectResponse
37-
*/
38-
public function back()
39-
{
40-
return redirect()->back();
41-
}
42-
43-
/**
44-
* @return \Illuminate\Http\RedirectResponse
45-
*/
46-
public function redirect()
47-
{
48-
return redirect()->route('homepage');
49-
}
50-
51-
/**
52-
* @return \Illuminate\View\View
53-
*/
54-
public function secure()
55-
{
56-
return view('hello');
57-
}
58-
59-
/**
60-
* @param Request $request
61-
* @param $message
62-
* @return void
63-
*/
64-
public function session(Request $request, $message)
65-
{
66-
$request->session()->set('message', $message);
67-
}
68-
69-
/**
70-
* @return \Illuminate\View\View
7+
class HomeController extends Controller
8+
{
9+
10+
/**
11+
* Constructor.
12+
*/
13+
public function __construct()
14+
{
15+
$this->middleware('auth', ['only' => 'secure']);
16+
}
17+
18+
/**
19+
* @return \Illuminate\View\View
20+
*/
21+
public function index()
22+
{
23+
return view('hello');
24+
}
25+
26+
/**
27+
* @return \Illuminate\View\View
28+
*/
29+
public function flash()
30+
{
31+
Session::flash('message', "It's a flash");
32+
33+
return view('flash');
34+
}
35+
36+
/**
37+
* @return \Illuminate\Http\RedirectResponse
38+
*/
39+
public function back()
40+
{
41+
return redirect()->back();
42+
}
43+
44+
/**
45+
* @return \Illuminate\Http\RedirectResponse
46+
*/
47+
public function redirect()
48+
{
49+
return redirect()->route('homepage');
50+
}
51+
52+
/**
53+
* @return \Illuminate\View\View
7154
*/
72-
public function form(Request $request)
73-
{
74-
$message = $request->get('message', '');
55+
public function secure()
56+
{
57+
return view('hello');
58+
}
7559

76-
return view('form', compact('message'));
77-
}
60+
/**
61+
* @param Request $request
62+
* @param $message
63+
* @return void
64+
*/
65+
public function session(Request $request, $message)
66+
{
67+
$request->session()->set('message', $message);
68+
}
69+
70+
/**
71+
* @return \Illuminate\View\View
72+
*/
73+
public function form(Request $request)
74+
{
75+
$message = $request->get('message', '');
76+
77+
return view('form', compact('message'));
78+
}
7879

7980
/**
8081
* @return \Illuminate\View\View
@@ -84,14 +85,27 @@ public function specialCharacters()
8485
return view('special-characters');
8586
}
8687

87-
/**
88-
* @return string
89-
*/
90-
public function fireEvent()
91-
{
92-
event(new TestEvent());
88+
/**
89+
* @return string
90+
*/
91+
public function fireEvent()
92+
{
93+
event(new TestEvent());
9394

94-
return '';
95-
}
95+
return '';
96+
}
97+
98+
/**
99+
* @param Request $request
100+
* @return string
101+
*/
102+
public function validation(Request $request)
103+
{
104+
$this->validate($request, [
105+
'postal_code' => 'required|postal_code'
106+
]);
107+
108+
return 'Validation success';
109+
}
96110

97111
}

‎app/Http/routes.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
Route::get('session/{message}', 'HomeController@session');
2020
Route::get('special-characters', 'HomeController@specialCharacters');
2121
Route::get('fire-event', 'HomeController@fireEvent');
22+
Route::get('validation', 'HomeController@validation');
2223
Route::match(['get', 'post'], 'form', 'HomeController@form');
2324

2425
Route::resource('posts', 'PostsController');

‎app/Providers/AppServiceProvider.php‎

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,39 @@
11
<?php namespace App\Providers;
22

3+
use App\Validation\CustomValidator;
4+
use Illuminate\Support\Facades\Validator;
35
use Illuminate\Support\ServiceProvider;
46

5-
class AppServiceProvider extends ServiceProvider {
7+
class AppServiceProvider extends ServiceProvider
8+
{
69

7-
/**
8-
* Bootstrap any application services.
9-
*
10-
* @return void
11-
*/
12-
public function boot()
13-
{
14-
//
15-
}
10+
/**
11+
* Bootstrap any application services.
12+
*
13+
* @return void
14+
*/
15+
public function boot()
16+
{
17+
Validator::resolver(function ($translator, $data, $rules, $messages) {
18+
return new CustomValidator($translator, $data, $rules, $messages);
19+
});
20+
}
1621

17-
/**
18-
* Register any application services.
19-
*
20-
* This service provider is a great spot to register your various container
21-
* bindings with the application. As you can see, we are registering our
22-
* "Registrar" implementation here. You can add your own bindings too!
23-
*
24-
* @return void
25-
*/
26-
public function register()
27-
{
28-
$this->app->bind(
29-
'Illuminate\Contracts\Auth\Registrar',
30-
'App\Services\Registrar'
31-
);
32-
}
22+
/**
23+
* Register any application services.
24+
*
25+
* This service provider is a great spot to register your various container
26+
* bindings with the application. As you can see, we are registering our
27+
* "Registrar" implementation here. You can add your own bindings too!
28+
*
29+
* @return void
30+
*/
31+
public function register()
32+
{
33+
$this->app->bind(
34+
'Illuminate\Contracts\Auth\Registrar',
35+
'App\Services\Registrar'
36+
);
37+
}
3338

3439
}

‎app/Validation/CustomValidator.php‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace App\Validation;
4+
5+
use Illuminate\Validation\Validator;
6+
7+
class CustomValidator extends Validator
8+
{
9+
public function validatePostalCode($attribute, $value, $parameters)
10+
{
11+
return (bool)preg_match('/^[1-9][0-9]{3} ?[a-zA-Z]{2}$/', $value);
12+
}
13+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
class CustomValidationCest
4+
{
5+
public function testCustomValidationSuccess(FunctionalTester $I)
6+
{
7+
$I->amOnPage('validation?postal_code=1234AB');
8+
$I->see('Validation success');
9+
}
10+
11+
public function testCustomValidationError(FunctionalTester $I)
12+
{
13+
$I->amOnPage('validation?postal_code=1234');
14+
$I->seeFormErrorMessage('postal_code');
15+
}
16+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /