示例#1
0
 public function test_switch_env_in_env_aware_mode()
 {
     $app = new HttpApp();
     $request = new HttpRequest();
     $app->handleRequest($request);
     $this->assertEquals('dev', $app->getEnvironment());
     $request = new HttpRequest();
     $app->setDebug(false);
     $request->getHeaders()->set('x-env', 'prod');
     $app->handleRequest($request);
     $this->assertEquals('dev', $app->getEnvironment());
     $this->assertNull($request->getHeaders()->find('x-env'));
     $request = new HttpRequest();
     $request->getHeaders()->set('x-env', 'prod');
     $app->setDebug(true);
     $app->handleRequest($request);
     $this->assertEquals('prod', $app->getEnvironment());
     $this->assertNull($request->getHeaders()->find('x-env'));
     $request = new HttpRequest();
     $request->getUrl()->getQuery()->set('env', 'stage');
     $app->setDebug(true);
     $app->handleRequest($request);
     $this->assertEquals('stage', $app->getEnvironment());
     $this->assertNull($request->getUrl()->getQuery()->get('env'));
     $request = new HttpRequest();
     $request->getUrl()->setPath('/env=test/some/url');
     $app->setDebug(true);
     $app->handleRequest($request);
     $this->assertEquals('test', $app->getEnvironment());
     $this->assertEquals('/some/url', $request->getUrl()->getPath());
     $request = new HttpRequest();
     $request->getUrl()->setPath('/some/url/env=demo');
     $app->setDebug(true);
     $app->handleRequest($request);
     $this->assertEquals('demo', $app->getEnvironment());
     $this->assertEquals('/some/url', $request->getUrl()->getPath());
     $request = new HttpRequest();
     $request->getUrl()->setPath('/some/env=stage/url');
     $app->setDebug(true);
     $app->handleRequest($request);
     $this->assertEquals('stage', $app->getEnvironment());
     $this->assertEquals('/some/url', $request->getUrl()->getPath());
 }
 public function test_create()
 {
     $app = new HttpApp();
     $config = new Config();
     $config->set('routing', ['routes' => [['method' => 'GET', 'path' => '/foo', 'action' => 'foo']]]);
     $app->getConfigLoader()->addConfig($config);
     $app->getKernel()->addProvider(RequestHandlerProvider::class);
     $app->handleRequest(new HttpRequest());
     /** @var IRouter $router */
     $router = $app->getContainer()->get(IRouter::class);
     $handler = $app->getContainer()->get(IRequestHandler::class);
     $routes = $router->getRoutes();
     $this->assertEquals(1, count($routes));
     $route = $routes[0];
     $this->assertEquals(['GET'], $route->getMethods());
     $this->assertEquals('/foo', $route->getPath());
     $this->assertEquals('foo', $route->getAction());
 }