Skip to content

Commit 10f49b9

Browse files
committed
Refactor/cleanup tests
1 parent fa7b3ef commit 10f49b9

File tree

4 files changed

+85
-48
lines changed

4 files changed

+85
-48
lines changed

tests/TestCase.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,29 @@
55
use CodeZero\LocalizedRoutes\LocalizedRoutesServiceProvider;
66
use CodeZero\Localizer\LocalizerServiceProvider;
77
use Illuminate\Support\Collection;
8+
use Illuminate\Support\Facades\App;
89
use Illuminate\Support\Facades\Config;
910
use Illuminate\Support\Facades\Route;
1011
use Orchestra\Testbench\TestCase as BaseTestCase;
1112

1213
abstract class TestCase extends BaseTestCase
1314
{
15+
/**
16+
* Set the app locale.
17+
*
18+
* @param string $locale
19+
*
20+
* @return void
21+
*/
22+
protected function setAppLocale($locale)
23+
{
24+
App::setLocale($locale);
25+
}
26+
1427
/**
1528
* Set the supported locales config option.
1629
*
17-
* @param $locales
30+
* @param array $locales
1831
*
1932
* @return void
2033
*/

tests/Unit/Macros/UriTranslationMacroTest.php

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,10 @@
33
namespace CodeZero\LocalizedRoutes\Tests\Unit\Macros;
44

55
use CodeZero\LocalizedRoutes\Tests\TestCase;
6-
use Illuminate\Support\Facades\App;
76
use Illuminate\Support\Facades\Lang;
87

98
class UriTranslationMacroTest extends TestCase
109
{
11-
protected function setTranslations($translations)
12-
{
13-
// Fake that we created a routes.php file in
14-
// 'resources/lang/' for each language
15-
// with the given translations.
16-
Lang::setLoaded([
17-
'*' => [
18-
'routes' => $translations
19-
]
20-
]);
21-
}
22-
2310
/** @test */
2411
public function it_translates_every_segment_in_a_uri_to_the_current_locale()
2512
{
@@ -31,10 +18,10 @@ public function it_translates_every_segment_in_a_uri_to_the_current_locale()
3118
]
3219
]);
3320

34-
App::setLocale('en');
21+
$this->setAppLocale('en');
3522
$this->assertEquals('my/new/page', Lang::uri('my/new/page'));
3623

37-
App::setLocale('nl');
24+
$this->setAppLocale('nl');
3825
$this->assertEquals('mijn/nieuwe/pagina', Lang::uri('my/new/page'));
3926
}
4027

@@ -91,4 +78,21 @@ public function it_skips_placeholders_in_a_uri()
9178

9279
$this->assertEquals('artikels/{article}', Lang::uri('articles/{article}', 'nl'));
9380
}
81+
82+
/**
83+
* Fake that we created a routes.php file in 'resources/lang/'
84+
* for each language with the given translations.
85+
*
86+
* @param $translations
87+
*
88+
* @return void
89+
*/
90+
protected function setTranslations($translations)
91+
{
92+
Lang::setLoaded([
93+
'*' => [
94+
'routes' => $translations
95+
]
96+
]);
97+
}
9498
}

tests/Unit/Middleware/SetLocaleTest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,7 @@ public function it_still_sets_the_app_locale_for_localized_routes_if_localizer_i
167167
{
168168
$this->setSupportedLocales(['en']);
169169
$this->setUseLocalizer(false);
170-
171-
App::setLocale('fr');
170+
$this->setAppLocale('fr');
172171

173172
Route::localized(function () {
174173
Route::get('localized-route', function () {
@@ -186,8 +185,7 @@ public function it_does_not_set_the_app_locale_for_non_localized_routes_if_local
186185
{
187186
$this->setSupportedLocales(['en', 'nl']);
188187
$this->setUseLocalizer(false);
189-
190-
App::setLocale('fr');
188+
$this->setAppLocale('fr');
191189

192190
Route::get('non-localized-route', function () {
193191
return App::getLocale();

tests/Unit/UrlGeneratorTest.php

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,39 +6,26 @@
66
use CodeZero\LocalizedRoutes\Tests\TestCase;
77
use CodeZero\LocalizedRoutes\UrlGenerator;
88
use Illuminate\Support\Facades\App;
9-
use Illuminate\Support\Facades\Config;
9+
use Illuminate\Support\Facades\Request;
1010
use Illuminate\Support\Facades\Route;
1111
use Illuminate\Support\Facades\URL;
1212
use InvalidArgumentException;
1313

1414
class UrlGeneratorTest extends TestCase
1515
{
16-
protected function setUp(): void
17-
{
18-
parent::setUp();
19-
20-
Config::set('localized-routes.supported-locales', ['en', 'nl']);
21-
22-
App::setLocale('en');
23-
}
24-
25-
protected function registerRoute($url, $name, $callback = null)
26-
{
27-
Route::getRoutes()->add(
28-
Route::name($name)->get($url, $callback ?: function () {})
29-
);
30-
}
31-
3216
/** @test */
3317
public function it_binds_our_custom_url_generator_class()
3418
{
35-
$this->assertInstanceOf(UrlGenerator::class, app('url'));
36-
$this->assertInstanceOf(UrlGenerator::class, redirect()->getUrlGenerator());
19+
$this->assertInstanceOf(UrlGenerator::class, App::make('url'));
20+
$this->assertInstanceOf(UrlGenerator::class, App::make('redirect')->getUrlGenerator());
3721
}
3822

3923
/** @test */
40-
public function it_gets_the_url_of_a_named_route()
24+
public function it_gets_the_url_of_a_named_route_as_usual()
4125
{
26+
$this->setSupportedLocales(['en', 'nl']);
27+
$this->setAppLocale('en');
28+
4229
$this->registerRoute('weirdly-named-route', 'en');
4330
$this->registerRoute('route', 'route');
4431
$this->registerRoute('en/route', 'en.route');
@@ -59,15 +46,20 @@ public function it_gets_the_url_of_a_named_route()
5946
/** @test */
6047
public function it_gets_the_url_of_a_route_in_the_current_locale_if_the_given_route_name_does_not_exist()
6148
{
49+
$this->setSupportedLocales(['en', 'nl']);
50+
$this->setAppLocale('en');
51+
6252
$this->registerRoute('en/route', 'en.route.name');
6353

64-
$this->assertEquals('en', App::getLocale());
6554
$this->assertEquals(url('en/route'), route('route.name'));
6655
}
6756

6857
/** @test */
6958
public function it_throws_if_no_valid_route_can_be_found()
7059
{
60+
$this->setSupportedLocales(['en', 'nl']);
61+
$this->setAppLocale('en');
62+
7163
$this->registerRoute('wrong-route', 'wrong-route');
7264

7365
$this->expectException(InvalidArgumentException::class);
@@ -78,9 +70,11 @@ public function it_throws_if_no_valid_route_can_be_found()
7870
/** @test */
7971
public function it_throws_if_no_valid_localized_route_can_be_found()
8072
{
73+
$this->setSupportedLocales(['en', 'nl']);
74+
$this->setAppLocale('en');
75+
8176
$this->registerRoute('nl/route', 'nl.route.name');
8277

83-
$this->assertEquals('en', App::getLocale());
8478
$this->expectException(InvalidArgumentException::class);
8579

8680
route('route.name');
@@ -89,10 +83,12 @@ public function it_throws_if_no_valid_localized_route_can_be_found()
8983
/** @test */
9084
public function it_gets_the_url_of_a_route_in_the_given_locale()
9185
{
86+
$this->setSupportedLocales(['en', 'nl']);
87+
$this->setAppLocale('en');
88+
9289
$this->registerRoute('en/route', 'en.route.name');
9390
$this->registerRoute('nl/route', 'nl.route.name');
9491

95-
$this->assertEquals('en', App::getLocale());
9692
$this->assertEquals(url('nl/route'), route('route.name', [], true, 'nl'));
9793
$this->assertEquals(url('nl/route'), route('en.route.name', [], true, 'nl'));
9894
$this->assertEquals(url('nl/route'), route('nl.route.name', [], true, 'nl'));
@@ -101,6 +97,9 @@ public function it_gets_the_url_of_a_route_in_the_given_locale()
10197
/** @test */
10298
public function it_always_gets_the_url_of_a_localized_route_if_a_locale_is_specified()
10399
{
100+
$this->setSupportedLocales(['en', 'nl']);
101+
$this->setAppLocale('en');
102+
104103
$this->registerRoute('route', 'route.name');
105104
$this->registerRoute('nl/route', 'nl.route.name');
106105

@@ -110,9 +109,11 @@ public function it_always_gets_the_url_of_a_localized_route_if_a_locale_is_speci
110109
/** @test */
111110
public function it_throws_if_no_valid_route_can_be_found_for_the_given_locale()
112111
{
112+
$this->setSupportedLocales(['en', 'nl']);
113+
$this->setAppLocale('en');
114+
113115
$this->registerRoute('en/route', 'en.route.name');
114116

115-
$this->assertEquals('en', App::getLocale());
116117
$this->expectException(InvalidArgumentException::class);
117118

118119
route('en.route.name', [], true, 'nl');
@@ -121,11 +122,12 @@ public function it_throws_if_no_valid_route_can_be_found_for_the_given_locale()
121122
/** @test */
122123
public function it_temporarily_changes_the_app_locale_when_generating_a_route_url()
123124
{
125+
$this->setSupportedLocales(['en', 'nl']);
126+
$this->setAppLocale('en');
127+
124128
$this->registerRoute('en/route/{slug}', 'en.route.name');
125129
$this->registerRoute('nl/route/{slug}', 'nl.route.name');
126130

127-
App::setLocale('en');
128-
129131
$this->assertEquals(url('en/route/en-slug'), route('route.name', [new Model]));
130132
$this->assertEquals(url('en/route/en-slug'), route('route.name', [new Model], true, 'en'));
131133
$this->assertEquals(url('nl/route/nl-slug'), route('route.name', [new Model], true, 'nl'));
@@ -134,8 +136,11 @@ public function it_temporarily_changes_the_app_locale_when_generating_a_route_ur
134136
/** @test */
135137
public function it_generates_a_signed_route_url_for_the_current_locale()
136138
{
139+
$this->setSupportedLocales(['en', 'nl']);
140+
$this->setAppLocale('en');
141+
137142
$callback = function () {
138-
return request()->hasValidSignature()
143+
return Request::hasValidSignature()
139144
? 'Valid Signature'
140145
: 'Invalid Signature';
141146
};
@@ -153,8 +158,11 @@ public function it_generates_a_signed_route_url_for_the_current_locale()
153158
/** @test */
154159
public function it_generates_a_signed_route_url_for_a_specific_locale()
155160
{
161+
$this->setSupportedLocales(['en', 'nl']);
162+
$this->setAppLocale('en');
163+
156164
$callback = function () {
157-
return request()->hasValidSignature()
165+
return Request::hasValidSignature()
158166
? 'Valid Signature'
159167
: 'Invalid Signature';
160168
};
@@ -168,4 +176,18 @@ public function it_generates_a_signed_route_url_for_a_specific_locale()
168176
$this->get($validUrl)->assertSee('Valid Signature');
169177
$this->get($tamperedUrl)->assertSee('Invalid Signature');
170178
}
179+
180+
/**
181+
* Register a route.
182+
*
183+
* @param string $url
184+
* @param string $name
185+
* @param \Closure|null $callback
186+
*
187+
* @return void
188+
*/
189+
protected function registerRoute($url, $name, $callback = null)
190+
{
191+
Route::name($name)->get($url, $callback ?: function () {});
192+
}
171193
}

0 commit comments

Comments
 (0)