Skip to content

Commit 48e8303

Browse files
committed
test: add tests for filter order
1 parent 2228085 commit 48e8303

File tree

1 file changed

+128
-0
lines changed

1 file changed

+128
-0
lines changed

tests/system/Commands/Utilities/Routes/FilterFinderTest.php

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use CodeIgniter\Router\Router;
2424
use CodeIgniter\Test\CIUnitTestCase;
2525
use CodeIgniter\Test\ConfigFromArrayTrait;
26+
use Config\Feature;
2627
use Config\Filters as FiltersConfig;
2728
use Config\Modules;
2829
use Config\Routing;
@@ -186,4 +187,131 @@ public function testFindGlobalsAndRouteMultipleFilters(): void
186187
];
187188
$this->assertSame($expected, $filters);
188189
}
190+
191+
public function testFilterOrder()
192+
{
193+
$collection = $this->createRouteCollection([]);
194+
$collection->get('/', ' Home::index', ['filter' => ['route1', 'route2']]);
195+
$router = $this->createRouter($collection);
196+
$filters = $this->createFilters([
197+
'aliases' => [
198+
'global1' => 'Dummy',
199+
'global2' => 'Dummy',
200+
'method1' => 'Dummy',
201+
'method2' => 'Dummy',
202+
'filter1' => 'Dummy',
203+
'filter2' => 'Dummy',
204+
'route1' => 'Dummy',
205+
'route2' => 'Dummy',
206+
],
207+
'globals' => [
208+
'before' => [
209+
'global1',
210+
'global2',
211+
],
212+
'after' => [
213+
'global1',
214+
'global2',
215+
],
216+
],
217+
'methods' => [
218+
'get' => ['method1', 'method2'],
219+
],
220+
'filters' => [
221+
'filter1' => ['before' => '*', 'after' => '*'],
222+
'filter2' => ['before' => '*', 'after' => '*'],
223+
],
224+
]);
225+
226+
$finder = new FilterFinder($router, $filters);
227+
228+
$filters = $finder->find('/');
229+
230+
$expected = [
231+
'before' => [
232+
'global1',
233+
'global2',
234+
'method1',
235+
'method2',
236+
'filter1',
237+
'filter2',
238+
'route1',
239+
'route2',
240+
],
241+
'after' => [
242+
'route1',
243+
'route2',
244+
'filter1',
245+
'filter2',
246+
'global1',
247+
'global2',
248+
],
249+
];
250+
$this->assertSame($expected, $filters);
251+
}
252+
253+
public function testFilterOrderWithOldFilterOrder()
254+
{
255+
$feature = config(Feature::class);
256+
$feature->oldFilterOrder = true;
257+
258+
$collection = $this->createRouteCollection([]);
259+
$collection->get('/', ' Home::index', ['filter' => ['route1', 'route2']]);
260+
$router = $this->createRouter($collection);
261+
$filters = $this->createFilters([
262+
'aliases' => [
263+
'global1' => 'Dummy',
264+
'global2' => 'Dummy',
265+
'method1' => 'Dummy',
266+
'method2' => 'Dummy',
267+
'filter1' => 'Dummy',
268+
'filter2' => 'Dummy',
269+
'route1' => 'Dummy',
270+
'route2' => 'Dummy',
271+
],
272+
'globals' => [
273+
'before' => [
274+
'global1',
275+
'global2',
276+
],
277+
'after' => [
278+
'global1',
279+
'global2',
280+
],
281+
],
282+
'methods' => [
283+
'get' => ['method1', 'method2'],
284+
],
285+
'filters' => [
286+
'filter1' => ['before' => '*', 'after' => '*'],
287+
'filter2' => ['before' => '*', 'after' => '*'],
288+
],
289+
]);
290+
291+
$finder = new FilterFinder($router, $filters);
292+
293+
$filters = $finder->find('/');
294+
295+
$expected = [
296+
'before' => [
297+
'route1',
298+
'route2',
299+
'global1',
300+
'global2',
301+
'method1',
302+
'method2',
303+
'filter1',
304+
'filter2',
305+
],
306+
'after' => [
307+
'route1',
308+
'route2',
309+
'global1',
310+
'global2',
311+
'filter1',
312+
'filter2',
313+
],
314+
];
315+
$this->assertSame($expected, $filters);
316+
}
189317
}

0 commit comments

Comments
 (0)