public function testRequestMethods()
 {
     // Create Router
     $router = new \Bramus\Router\Router();
     $router->get('/', function () {
         echo 'get';
     });
     $router->post('/', function () {
         echo 'post';
     });
     $router->put('/', function () {
         echo 'put';
     });
     $router->patch('/', function () {
         echo 'patch';
     });
     $router->delete('/', function () {
         echo 'delete';
     });
     $router->options('/', function () {
         echo 'options';
     });
     // Test GET
     ob_start();
     $_SERVER['REQUEST_URI'] = '/';
     $router->run();
     $this->assertEquals('get', ob_get_contents());
     // Test POST
     ob_clean();
     $_SERVER['REQUEST_METHOD'] = 'POST';
     $router->run();
     $this->assertEquals('post', ob_get_contents());
     // Test PUT
     ob_clean();
     $_SERVER['REQUEST_METHOD'] = 'PUT';
     $router->run();
     $this->assertEquals('put', ob_get_contents());
     // Test PATCH
     ob_clean();
     $_SERVER['REQUEST_METHOD'] = 'PATCH';
     $router->run();
     $this->assertEquals('patch', ob_get_contents());
     // Test DELETE
     ob_clean();
     $_SERVER['REQUEST_METHOD'] = 'DELETE';
     $router->run();
     $this->assertEquals('delete', ob_get_contents());
     // Test OPTIONS
     ob_clean();
     $_SERVER['REQUEST_METHOD'] = 'OPTIONS';
     $router->run();
     $this->assertEquals('options', ob_get_contents());
     // Test HEAD
     ob_clean();
     $_SERVER['REQUEST_METHOD'] = 'HEAD';
     $router->run();
     $this->assertEquals('', ob_get_contents());
     // Cleanup
     ob_end_clean();
 }
Esempio n. 2
0
    $dotenv->load();
} catch (InvalidArgumentException $ex) {
    // Ignore if no dotenv
}
$app = new \App\Main();
// Create Router instance
$router = new \Bramus\Router\Router();
// Activate CORS
function sendCorsHeaders()
{
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Headers: Authorization");
    header("Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE");
}
$router->options('/.*', function () {
    sendCorsHeaders();
});
sendCorsHeaders();
// Check JWT on /secured routes
$router->before('GET', '/secured/.*', function () use($app) {
    $requestHeaders = apache_request_headers();
    if (!isset($requestHeaders['Authorization'])) {
        header('HTTP/1.0 401 Unauthorized');
        echo "No token provided.";
        exit;
    }
    $authorizationHeader = $requestHeaders['Authorization'];
    if ($authorizationHeader == null) {
        header('HTTP/1.0 401 Unauthorized');
        echo "No authorization header sent";
        exit;