@@ -270,4 +270,35 @@ public function testRouteWorksWithFilters()
270270 }
271271
272272 //--------------------------------------------------------------------
273+
274+ /**
275+ * @see https://github.com/bcit-ci/CodeIgniter4/issues/1240
276+ */
277+ public function testMatchesCorrectlyWithMixedVerbs ()
278+ {
279+ $ this ->collection ->setHTTPVerb ('get ' );
280+
281+ $ this ->collection ->add ('/ ' , 'Home::index ' );
282+ $ this ->collection ->get ('news ' , 'News::index ' );
283+ $ this ->collection ->get ('news/(:segment) ' , 'News::view/$1 ' );
284+ $ this ->collection ->add ('(:any) ' , 'Pages::view/$1 ' );
285+
286+ $ router = new Router ($ this ->collection );
287+
288+ $ router ->handle ('/ ' );
289+ $ this ->assertEquals ('\Home ' , $ router ->controllerName ());
290+ $ this ->assertEquals ('index ' , $ router ->methodName ());
291+
292+ $ router ->handle ('news ' );
293+ $ this ->assertEquals ('\News ' , $ router ->controllerName ());
294+ $ this ->assertEquals ('index ' , $ router ->methodName ());
295+
296+ $ router ->handle ('news/daily ' );
297+ $ this ->assertEquals ('\News ' , $ router ->controllerName ());
298+ $ this ->assertEquals ('view ' , $ router ->methodName ());
299+
300+ $ router ->handle ('about ' );
301+ $ this ->assertEquals ('\Pages ' , $ router ->controllerName ());
302+ $ this ->assertEquals ('view ' , $ router ->methodName ());
303+ }
273304}
0 commit comments