9
9
10
10
namespace Flarum \Tests \integration \forum ;
11
11
12
+ use Dflydev \FigCookies \FigResponseCookies ;
12
13
use Flarum \Extend ;
13
14
use Flarum \Http \AccessToken ;
15
+ use Flarum \Http \CookieFactory ;
16
+ use Flarum \Http \RememberAccessToken ;
17
+ use Flarum \Http \Rememberer ;
14
18
use Flarum \Testing \integration \RetrievesAuthorizedUsers ;
15
19
use Flarum \Testing \integration \TestCase ;
20
+ use Illuminate \Support \Str ;
16
21
17
22
class LoginTest extends TestCase
18
23
{
@@ -70,16 +75,25 @@ public function cant_login_with_wrong_password()
70
75
*/
71
76
public function can_login_with_data ()
72
77
{
78
+ $ id = Str::random (40 );
79
+ $ this ->app ();
80
+ $ cookieFactory = resolve (CookieFactory::class);
81
+ $ sessionCookieName = $ cookieFactory ->getName ('session ' );
82
+
73
83
$ response = $ this ->send (
74
84
$ this ->request ('POST ' , '/login ' , [
75
85
'json ' => [
76
86
'identification ' => 'normal ' ,
77
87
'password ' => 'too-obscure '
78
88
]
89
+ ])->withCookieParams ([
90
+ $ sessionCookieName => $ id
79
91
])
80
92
);
81
93
82
94
$ this ->assertEquals (200 , $ response ->getStatusCode ());
95
+ $ cookie = FigResponseCookies::get ($ response , $ sessionCookieName );
96
+ $ this ->assertNotEquals ($ id , $ cookie ->getValue ());
83
97
84
98
// The response body should contain the user ID...
85
99
$ body = (string ) $ response ->getBody ();
@@ -92,4 +106,28 @@ public function can_login_with_data()
92
106
$ token = $ data ['token ' ];
93
107
$ this ->assertEquals (2 , AccessToken::whereToken ($ token )->firstOrFail ()->user_id );
94
108
}
109
+
110
+ /**
111
+ * @test
112
+ */
113
+ public function can_login_with_remember_token ()
114
+ {
115
+ $ this ->app ();
116
+ $ rememberToken = RememberAccessToken::generate (1 );
117
+ $ id = Str::random (40 );
118
+ $ cookieFactory = resolve (CookieFactory::class);
119
+ $ sessionCookieName = $ cookieFactory ->getName ('session ' );
120
+ $ rememberCookieName = $ cookieFactory ->getName (Rememberer::COOKIE_NAME );
121
+
122
+ $ response = $ this ->send (
123
+ $ this ->request ('GET ' , '/settings ' )->withCookieParams ([
124
+ $ sessionCookieName => $ id ,
125
+ $ rememberCookieName => $ rememberToken ->token
126
+ ])
127
+ );
128
+
129
+ $ this ->assertEquals (200 , $ response ->getStatusCode ());
130
+ $ cookie = FigResponseCookies::get ($ response , $ sessionCookieName );
131
+ $ this ->assertNotEquals ($ id , $ cookie ->getValue ());
132
+ }
95
133
}
0 commit comments