/** * {@inheritdoc} */ public function command(Singo $application) { /** * register login command and handler */ $application->registerCommands([LoginCommand::class], function () use($application) { return new UserHandler($application["security.jwt.encoder"], $application["dispatcher"]); }); }
public function testCors() { $this->app->post("/", function () { return new Response("hello from controller"); }); $req = Request::create("/", "POST"); $req->headers->set("Origin", "notlocalhost"); $req->headers->set("Access-Control-Request-Method", "post"); $app = $this->app->builder->resolve($this->app); $response = $app->handle($req); $this->assertEquals(403, $response->getStatusCode()); }
/** * @param Application $container */ public function init(Application $container) { /** * container aware event dispatcher */ $container->register(new ContainerAwareEventDispatcher()); /** * cache */ $container->register(new CacheServiceProvider()); /** * configuration */ $container->register(new Config()); /** * logger */ $container->register(new Logger()); /** * doctrine orm */ $container->register(new Orm()); /** * validator */ $container->register(new Validator()); /** * mailer */ $container->register(new Mailer()); /** * command bus */ $container->register(new CommandBus()); /** * security */ $container->register(new Firewall()); /** * controller as a service */ $container->register(new ServiceControllerServiceProvider(), ["tactician.inflector" => "class_name", "tactician.middlewares" => [$container["command.bus.logger.middleware"], $container["command.bus.validation.middleware"]]]); /** * Save container in static variable */ self::$container = $container; if ($this instanceof Application) { /** * content negotiation middleware */ $container->registerStackMiddleware(Negotiation::class, null, null, null, ["language_priorities" => $container["config"]->get("api/content_negotiator/language") ?: ["en"], "format_priorities" => $container["config"]->get("api/content_negotiator/format") ?: ["*/*"]]); /** * cors */ $cors_config = $container["config"]->get("api/cors") ?: ["allowedHeaders" => ["*"], "allowedMethod" => ["*"], "allowedOrigins" => ["*"], "exposedHeaders" => false, "maxAge" => false, "supportsCredentials" => false]; $container->registerStackMiddleware(Cors::class, $cors_config); } /** * boot module if module feature enabled in configuration */ if ($container->offsetExists("use.module") && $container["use.module"] === true) { $this->bootModule(); } }
public function testLogin() { $req = Request::create("/user/login", "POST", ["username" => "admin", "password" => "singo"]); $response = $this->app->handle($req); $this->assertContains("data", $response->getContent()); }
public function testModule() { $req = Request::create("/home"); $response = $this->app->handle($req); $this->assertEquals("hello world", $response->getContent()); }