Kaynağa Gözat

Merge branch 'functionalTests' into security

Johannes Schmitt 14 yıl önce
ebeveyn
işleme
439699daeb

+ 5 - 0
src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LoginController.php

@@ -24,6 +24,11 @@ class LoginController extends ContainerAware
         ));
     }
 
+    public function afterLoginAction()
+    {
+        return $this->container->get('templating')->renderResponse('FormLoginBundle:Login:after_login.html.twig');
+    }
+
     public function loginCheckAction()
     {
         return new Response('', 400);

+ 12 - 0
src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Resources/config/routing.yml

@@ -5,3 +5,15 @@ form_login:
 form_login_check:
     pattern: /login_check
     defaults: { _controller: FormLoginBundle:Login:loginCheck }
+
+form_login_homepage:
+    pattern: /
+    defaults: { _controller: FormLoginBundle:Login:afterLogin }
+    
+form_login_custom_target_path:
+    pattern: /foo
+    defaults: { _controller: FormLoginBundle:Login:afterLogin }
+    
+form_login_redirect_to_protected_resource_after_login:
+    pattern: /protected-resource
+    defaults: { _controller: FormLoginBundle:Login:afterLogin }

+ 6 - 0
src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Resources/views/Login/after_login.html.twig

@@ -0,0 +1,6 @@
+{% extends "::base.html.twig" %}
+
+{% block body %}
+    Hello {{ app.user.username }}!<br /><br />
+    You're browsing to path "{{ app.request.pathInfo }}".
+{% endblock %}

+ 29 - 2
src/Symfony/Bundle/SecurityBundle/Tests/Functional/FormLoginTest.php

@@ -17,6 +17,10 @@ class FormLoginTest extends WebTestCase
         $client->submit($form);
 
         $this->assertRedirect($client->getResponse(), '/');
+
+        $text = $client->followRedirect()->text();
+        $this->assertContains('Hello johannes!', $text);
+        $this->assertContains('You\'re browsing to path "/".', $text);
     }
 
     public function testFormLoginWithCustomTargetPath()
@@ -30,11 +34,34 @@ class FormLoginTest extends WebTestCase
         $client->submit($form);
 
         $this->assertRedirect($client->getResponse(), '/foo');
+
+        $text = $client->followRedirect()->text();
+        $this->assertContains('Hello johannes!', $text);
+        $this->assertContains('You\'re browsing to path "/foo".', $text);
     }
 
-    protected function tearDown()
+    public function testFormLoginRedirectsToProtectedResourceAfterLogin()
     {
-        parent::tearDown();
+        $client = $this->createClient(array('test_case' => 'StandardFormLogin'));
+
+        $client->request('GET', '/protected-resource');
+        $this->assertRedirect($client->getResponse(), '/login');
+
+        $form = $client->followRedirect()->selectButton('login')->form();
+        $form['_username'] = 'johannes';
+        $form['_password'] = 'test';
+        $client->submit($form);
+        $this->assertRedirect($client->getResponse(), '/protected-resource');
+
+        $text = $client->followRedirect()->text();
+        $this->assertContains('Hello johannes!', $text);
+        $this->assertContains('You\'re browsing to path "/protected-resource".', $text);
+    }
+
+    protected function setUp()
+    {
+        parent::setUp();
+
         $this->deleteTmpDir('StandardFormLogin');
     }
 }

+ 1 - 1
src/Symfony/Bundle/SecurityBundle/Tests/Functional/WebTestCase.php

@@ -20,7 +20,7 @@ class WebTestCase extends BaseWebTestCase
         }
 
         $fs = new Filesystem();
-        $fs->remove($testCase);
+        $fs->remove($dir);
     }
 
     protected function getKernelClass()