public function testNonUniqueMultipleTextRelationPassesThroughData() { $router = new \Respect\Rest\Router(); $router->get('/', function () { return array(); })->rel(array('item' => array('/foo', '/bar')))->rel(array('item' => array('/baz'))); $response = $router->dispatch('GET', '/')->response(); $this->assertCount(3, $response['links']['item'], 'The related link key should contain the exact number of related items'); $this->assertContains('/foo', $response['links']['item'], 'The related link key should contain the specified rel value'); $this->assertContains('/bar', $response['links']['item'], 'The related link key should contain the specified rel value'); $this->assertContains('/baz', $response['links']['item'], 'The related link key should contain the specified rel value'); }
public function testRoutineWhenShouldConsiderSyncedCallbackParameters() { $phpUnit = $this; $router = new \Respect\Rest\Router(); $router->get('/speakers/*', function ($speakerName) { return "Hello {$speakerName}"; })->when(function ($speakerName) use($phpUnit) { $phpUnit->assertEquals('alganet', $speakerName); return strlen($speakerName) >= 3; }); $response = $router->dispatch('GET', '/speakers/alganet')->response(); $this->assertEquals('Hello alganet', $response, 'This When routine accepts parameters longer than 3 chars, alganet is, so it should pass'); }
function test_request_should_be_available_from_router_after_dispatching() { $request = new \Respect\Rest\Request('get', '/foo'); $router = new \Respect\Rest\Router(); $router->isAutoDispatched = false; $phpunit = $this; $router->get('/foo', function () use($router, $request, $phpunit) { $phpunit->assertSame($request, $router->request); return spl_object_hash($router->request); }); $out = $router->run($request); $this->assertEquals($out, spl_object_hash($request)); }
<?php require __DIR__ . '/../boot.php'; $quotes = ["Gozado, justamente quando você pensa que a vida não pode ser pior, de repente ela piora ainda mais.", "Ah, a vida! Pode-se odiá-la ou ignorá-la, mas é impossivel gostar dela.", "Vida? Não me fale de vida.", "É bom que vocês saibam, hoje eu estou muuuito deprimido...", "Eu tenho milhões de idéias, mas todas apontam para morte certa.", "Eu poderia calcular suas chances de sobrevivência... mas você não iria gostar...", "Eu desprezo todos vocês.", "Eu fico com dor de cabeça só de tentar rebaixar meu intelecto ao seu nível.", "E eu com essa dor terrível nos meus diodos esquerdos.", "Estive conversando com o computador da nave. Ele me odeia.", "Isso tudo terminará em lágrimas.", "Minha felicidade caberia numa caixa de fósforos. Com os fósforos.", "São as pessoas com quem trabalho que realmente me deprimem.", "Não finja que você quer falar comigo, eu sei que você me odeia.", "A melhor conversa que tive foi há 40 milhões de anos, com uma máquina de café.", "Eu não vou gostar disso.", "Este é o tipo de coisa que vocês, formas de vida, gostam. Não é?", "Odeio oceanos.", "Esse sou eu, cérebro do tamanho de um planeta e você me pede para levá-lo pra ponte de comando. Você chama isso de satisfação profissional? Pois eu não!"]; session_start(); session_set_cookie_params(10 * 60, '/', '.pascutti.localhost'); $userName = isset($_SESSION['userName']) ? $_SESSION['userName'] : '******'; $router = new Respect\Rest\Router(); $router->head('/health', function () { header('HTTP/1.1 204 Like you care...'); }); $router->get('/', function () use($quotes) { header('HTTP/1.1 307 Get a random quote'); header('Cache-Control: no-cache, no-store'); header('Pragma: no-cache'); header('Location: /quote/random'); }); $router->get('/quote/random', function () use($quotes) { $amountOfQuotes = count($quotes); $randomQuoteIndex = mt_rand(0, $amountOfQuotes - 1); header('HTTP/1.1 307 Random generator'); header('Cache-Control: no-cache, no-store'); header('Pragma: no-cache'); header('Location: /quote/index/' . $randomQuoteIndex); }); $router->get('/quote/index/*', function ($index) use($quotes, $userName) { if (false === isset($quotes[$index])) { header('HTTP/1.1 404 Quote not found'); } $quote = $quotes[$index]; header('HTTP/1.1 200 42');