2011-07-17 21 views
6

Bu konuda herhangi bir döküman bulamadık.Symfony 2'de kimlik doğrulaması gerektiren işlevsel testler nasıl yapılır?

İstemci nesnesini kullanarak/login isteği göndermek, formu doldurmak ve göndermek için kullanıyorum. Bu iyi çalışıyor, ancak kimlik bilgileri hatalıymış gibi/girişe 302 yanıtı alıyorum.

Her durumda, ilk istekten sonra oturumlar tablosunda en az bir satır olması gerektiğini düşünüyorum, ancak yok. Bu nasıl mümkün olabilir?

Herhangi bir düşünce?

Düzenleme:

 
security: 
    ... 
    firewalls: 
     functional_test: 
      pattern: /secure/.* 
      stateless: true 
      http_basic: 
       provider: provider_name 
    ... 

Sonra böyle bir istemci oluşturun:

// Go to login page 
    $client = $this->createClient(); 
    $crawler = $client->request('GET', '/login'); 
    $this->assertTrue($crawler->filter('html:contains("Username")')->count() > 0); 

    // Fill in the form and submit it 
    $form = $crawler->selectButton('login')->form(); 
    $form['_username'] = 'admin'; 
    $form['_password'] = 'admin'; 
    $client->submit($form); 
    $this->assertEquals(302,$client->getResponse()->getStatusCode()); 
    $this->assertFalse($client->getResponse()->isRedirect('http://localhost/login')); 

son assert

+0

Bu testi çalıştıran kodun bir kısmını gösterebilir misiniz? – Ibu

+0

@Ibu emin, işte sonunda bu test ile başarılı oldun – HappyDeveloper

+0

var? Biliyorum ki hatırlayacaksın, ama belki de ...? – mmmm

cevap

2

http temel kimlik doğrulaması kullanarak yeni firewal oluşturmalısınız başarısız: İşte kod:

$client = $this->createClient(array(), array(
    'PHP_AUTH_USER' => 'username', 
    'PHP_AUTH_PW' => 'password', 
)); 

Mutlu kodlama!

İlgili konular