@@ -326,7 +326,7 @@ public function testHostnameOption()
326326
327327 //--------------------------------------------------------------------
328328
329- public function testResourcesScaffoldsCorrectly ()
329+ public function testResourceScaffoldsCorrectly ()
330330 {
331331 $ routes = $ this ->getCollector ();
332332 $ routes ->setHTTPVerb ('get ' );
@@ -383,6 +383,97 @@ public function testResourcesScaffoldsCorrectly()
383383 $ this ->assertEquals ($ expected , $ routes ->getRoutes ());
384384 }
385385
386+ // Similar to the above, but with a more typical endpoint
387+
388+ public function testResourceAPIScaffoldsCorrectly ()
389+ {
390+ $ routes = $ this ->getCollector ();
391+ $ routes ->setHTTPVerb ('get ' );
392+
393+ $ routes ->resource ('api/photos ' , ['controller ' => 'Photos ' ]);
394+
395+ $ expected = [
396+ 'api/photos ' => '\Photos::index ' ,
397+ 'api/photos/new ' => '\Photos::new ' ,
398+ 'api/photos/(.*)/edit ' => '\Photos::edit/$1 ' ,
399+ 'api/photos/(.*) ' => '\Photos::show/$1 ' ,
400+ ];
401+
402+ $ this ->assertEquals ($ expected , $ routes ->getRoutes ());
403+
404+ $ routes = $ this ->getCollector ();
405+ $ routes ->setHTTPVerb ('post ' );
406+ $ routes ->resource ('api/photos ' , ['controller ' => 'Photos ' ]);
407+
408+ $ expected = [
409+ 'api/photos ' => '\Photos::create ' ,
410+ ];
411+
412+ $ this ->assertEquals ($ expected , $ routes ->getRoutes ());
413+
414+ $ routes = $ this ->getCollector ();
415+ $ routes ->setHTTPVerb ('put ' );
416+ $ routes ->resource ('api/photos ' , ['controller ' => 'Photos ' ]);
417+
418+ $ expected = [
419+ 'api/photos/(.*) ' => '\Photos::update/$1 ' ,
420+ ];
421+
422+ $ this ->assertEquals ($ expected , $ routes ->getRoutes ());
423+
424+ $ routes = $ this ->getCollector ();
425+ $ routes ->setHTTPVerb ('patch ' );
426+ $ routes ->resource ('api/photos ' , ['controller ' => 'Photos ' ]);
427+
428+ $ expected = [
429+ 'api/photos/(.*) ' => '\Photos::update/$1 ' ,
430+ ];
431+
432+ $ this ->assertEquals ($ expected , $ routes ->getRoutes ());
433+
434+ $ routes = $ this ->getCollector ();
435+ $ routes ->setHTTPVerb ('delete ' );
436+ $ routes ->resource ('api/photos ' , ['controller ' => 'Photos ' ]);
437+
438+ $ expected = [
439+ 'api/photos/(.*) ' => '\Photos::delete/$1 ' ,
440+ ];
441+
442+ $ this ->assertEquals ($ expected , $ routes ->getRoutes ());
443+ }
444+
445+ public function testPresenterScaffoldsCorrectly ()
446+ {
447+ $ routes = $ this ->getCollector ();
448+ $ routes ->setHTTPVerb ('get ' );
449+
450+ $ routes ->presenter ('photos ' );
451+
452+ $ expected = [
453+ 'photos ' => '\Photos::index ' ,
454+ 'photos/show/(.*) ' => '\Photos::show/$1 ' ,
455+ 'photos/new ' => '\Photos::new ' ,
456+ 'photos/edit/(.*) ' => '\Photos::edit/$1 ' ,
457+ 'photos/remove/(.*) ' => '\Photos::remove/$1 ' ,
458+ 'photos/(.*) ' => '\Photos::show/$1 ' ,
459+ ];
460+
461+ $ this ->assertEquals ($ expected , $ routes ->getRoutes ());
462+
463+ $ routes = $ this ->getCollector ();
464+ $ routes ->setHTTPVerb ('post ' );
465+ $ routes ->presenter ('photos ' );
466+
467+ $ expected = [
468+ 'photos/create ' => '\Photos::create ' ,
469+ 'photos/update/(.*) ' => '\Photos::update/$1 ' ,
470+ 'photos/delete/(.*) ' => '\Photos::delete/$1 ' ,
471+ 'photos ' => '\Photos::create ' ,
472+ ];
473+
474+ $ this ->assertEquals ($ expected , $ routes ->getRoutes ());
475+ }
476+
386477 //--------------------------------------------------------------------
387478
388479 public function testResourcesWithCustomController ()
0 commit comments