2012-11-09 130 views
1

我寫作一些功能測試的symfony的1.4.19的網站,使用的Propel ORM的過程中功能測試。我的一些頁面顯示不同,具體取決於用戶是否登錄(已驗證)。Symfony的1.4:經過身份驗證的和未經驗證的用戶

我一直在尋找的online documentation,看看如何實現:運行取決於用戶是否在(認證)否(視情況而定)

  • 記錄與

    1. 測試如何登錄或註銷用戶作爲功能測試的一部分。

    不過,我似乎無法找到任何說明如何做到這一點。

  • +0

    爲什麼你不只是一個用戶連接,讓您的測試,斷開,繼續等..? – j0k

    +0

    @ j0k:那是什麼我想做的事情,它只是它不是我清楚如何「連接與用戶」的代碼(在功能測試)。你能展示一個片段,展示如何做到這一點? –

    回答

    2

    登陸:

    $username = 'root'; 
    $password = 'root'; 
    
    $browser-> 
        post('/login', array('signin' => array('username' => $username, 'password' => $password)))-> 
        with('request')->begin()-> 
        isParameter('module', 'sfGuardAuth')-> 
        isParameter('action', 'signin')-> 
        end()-> 
        with('response')->begin()-> 
        isStatusCode(302)-> 
        isRedirected()-> 
        end()-> 
        followRedirect() 
    ; 
    

    要註銷:

    $browser-> 
        get('/logout')-> 
        with('request')->begin()-> 
        isParameter('module', 'sfGuardAuth')-> 
        isParameter('action', 'signout')-> 
        end()-> 
        with('response')->begin()-> 
        isStatusCode(302)-> 
        isRedirected()-> 
        end()-> 
        followRedirect() 
    ; 
    
    // this will reset session 
    $browser->restart(); 
    
    +0

    代碼+1。好的,那很好。現在,所有我需要的是sfUser對象,這樣我可以檢查用戶是否登錄或沒有。謝謝。 –

    +0

    您將無法訪問sfUser對象的功能測試,因爲你正在瀏覽您的應用程序就像一個瀏覽器。您需要檢查是否有像*註銷的鏈接*或*您在您的模板連接*(或任何你定義的)。 – j0k

    +1

    謝謝。我想我可以用這個工作。如果我沒有放鬆,我會來這裏尋求幫助:) –

    相關問題