More work on user tests
[rails.git] / test / integration / user_login_test.rb
1 require "test_helper"
2
3 class UserLoginTest < ActionDispatch::IntegrationTest
4   fixtures :users
5
6   def setup
7     OmniAuth.config.test_mode = true
8   end
9
10   def teardown
11     OmniAuth.config.mock_auth[:openid] = nil
12     OmniAuth.config.test_mode = false
13   end
14
15   def test_login_email_password_normal
16     user = users(:normal_user)
17
18     get "/login"
19     assert_response :redirect
20     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
21     follow_redirect!
22     assert_response :success
23
24     post "/login", :username => user.email, :password => "wrong", :referer => "/history"
25     assert_response :redirect
26     follow_redirect!
27     assert_response :success
28     assert_template "login"
29
30     post "/login", :username => user.email, :password => "test", :referer => "/history"
31     assert_response :redirect
32     follow_redirect!
33     assert_response :success
34     assert_template "changeset/history"
35     assert_select "span.username", "test"
36   end
37
38   def test_login_email_password_normal_upcase
39     user = users(:normal_user)
40
41     get "/login"
42     assert_response :redirect
43     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
44     follow_redirect!
45     assert_response :success
46
47     post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
48     assert_response :redirect
49     follow_redirect!
50     assert_response :success
51     assert_template "login"
52
53     post "/login", :username => user.email.upcase, :password => "test", :referer => "/history"
54     assert_response :redirect
55     follow_redirect!
56     assert_response :success
57     assert_template "changeset/history"
58     assert_select "span.username", "TEST"
59   end
60
61   def test_login_email_password_normal_titlecase
62     user = users(:normal_user)
63
64     get "/login"
65     assert_response :redirect
66     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
67     follow_redirect!
68     assert_response :success
69
70     post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
71     assert_response :redirect
72     follow_redirect!
73     assert_response :success
74     assert_template "login"
75
76     post "/login", :username => user.email.titlecase, :password => "test", :referer => "/history"
77     assert_response :redirect
78     follow_redirect!
79     assert_response :success
80     assert_template "login"
81     assert_select "span.username", false
82   end
83
84   def test_login_email_password_public
85     user = users(:public_user)
86
87     get "/login"
88     assert_response :redirect
89     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
90     follow_redirect!
91     assert_response :success
92
93     post "/login", :username => user.email, :password => "wrong", :referer => "/history"
94     assert_response :redirect
95     follow_redirect!
96     assert_response :success
97     assert_template "login"
98
99     post "/login", :username => user.email, :password => "test", :referer => "/history"
100     assert_response :redirect
101     follow_redirect!
102     assert_response :success
103     assert_template "changeset/history"
104     assert_select "span.username", "test2"
105   end
106
107   def test_login_email_password_public_upcase
108     user = users(:public_user)
109
110     get "/login"
111     assert_response :redirect
112     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
113     follow_redirect!
114     assert_response :success
115
116     post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
117     assert_response :redirect
118     follow_redirect!
119     assert_response :success
120     assert_template "login"
121
122     post "/login", :username => user.email.upcase, :password => "test", :referer => "/history"
123     assert_response :redirect
124     follow_redirect!
125     assert_response :success
126     assert_template "changeset/history"
127     assert_select "span.username", "test2"
128   end
129
130   def test_login_email_password_public_titlecase
131     user = users(:public_user)
132
133     get "/login"
134     assert_response :redirect
135     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
136     follow_redirect!
137     assert_response :success
138
139     post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
140     assert_response :redirect
141     follow_redirect!
142     assert_response :success
143     assert_template "login"
144
145     post "/login", :username => user.email.titlecase, :password => "test", :referer => "/history"
146     assert_response :redirect
147     follow_redirect!
148     assert_response :success
149     assert_template "changeset/history"
150     assert_select "span.username", "test2"
151   end
152
153   def test_login_email_password_inactive
154     user = users(:inactive_user)
155
156     get "/login"
157     assert_response :redirect
158     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
159     follow_redirect!
160     assert_response :success
161
162     post "/login", :username => user.email, :password => "wrong", :referer => "/history"
163     assert_response :redirect
164     follow_redirect!
165     assert_response :success
166     assert_template "login"
167
168     post "/login", :username => user.email, :password => "test2", :referer => "/history"
169     assert_response :redirect
170     follow_redirect!
171     assert_response :success
172     assert_template "confirm"
173   end
174
175   def test_login_email_password_inactive_upcase
176     user = users(:inactive_user)
177
178     get "/login"
179     assert_response :redirect
180     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
181     follow_redirect!
182     assert_response :success
183
184     post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
185     assert_response :redirect
186     follow_redirect!
187     assert_response :success
188     assert_template "login"
189
190     post "/login", :username => user.email.upcase, :password => "test2", :referer => "/history"
191     assert_response :redirect
192     follow_redirect!
193     assert_response :success
194     assert_template "confirm"
195   end
196
197   def test_login_email_password_inactive_titlecase
198     user = users(:inactive_user)
199
200     get "/login"
201     assert_response :redirect
202     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
203     follow_redirect!
204     assert_response :success
205
206     post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
207     assert_response :redirect
208     follow_redirect!
209     assert_response :success
210     assert_template "login"
211
212     post "/login", :username => user.email.titlecase, :password => "test2", :referer => "/history"
213     assert_response :redirect
214     follow_redirect!
215     assert_response :success
216     assert_template "confirm"
217   end
218
219   def test_login_email_password_suspended
220     user = users(:suspended_user)
221
222     get "/login"
223     assert_response :redirect
224     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
225     follow_redirect!
226     assert_response :success
227
228     post "/login", :username => user.email, :password => "wrong", :referer => "/history"
229     assert_response :redirect
230     follow_redirect!
231     assert_response :success
232     assert_template "login"
233
234     post "/login", :username => user.email, :password => "test", :referer => "/history"
235     assert_response :redirect
236     follow_redirect!
237     assert_response :success
238     assert_template "login"
239     assert_select "div.flash.error", /your account has been suspended/
240   end
241
242   def test_login_email_password_suspended_upcase
243     user = users(:suspended_user)
244
245     get "/login"
246     assert_response :redirect
247     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
248     follow_redirect!
249     assert_response :success
250
251     post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
252     assert_response :redirect
253     follow_redirect!
254     assert_response :success
255     assert_template "login"
256
257     post "/login", :username => user.email.upcase, :password => "test", :referer => "/history"
258     assert_response :redirect
259     follow_redirect!
260     assert_response :success
261     assert_template "login"
262     assert_select "div.flash.error", /your account has been suspended/
263   end
264
265   def test_login_email_password_suspended_titlecase
266     user = users(:suspended_user)
267
268     get "/login"
269     assert_response :redirect
270     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
271     follow_redirect!
272     assert_response :success
273
274     post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
275     assert_response :redirect
276     follow_redirect!
277     assert_response :success
278     assert_template "login"
279
280     post "/login", :username => user.email.titlecase, :password => "test", :referer => "/history"
281     assert_response :redirect
282     follow_redirect!
283     assert_response :success
284     assert_template "login"
285     assert_select "div.flash.error", /your account has been suspended/
286   end
287
288   def test_login_email_password_blocked
289     user = users(:blocked_user)
290
291     get "/login"
292     assert_response :redirect
293     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
294     follow_redirect!
295     assert_response :success
296
297     post "/login", :username => user.email, :password => "wrong", :referer => "/history"
298     assert_response :redirect
299     follow_redirect!
300     assert_response :success
301     assert_template "login"
302
303     post "/login", :username => user.email, :password => "test", :referer => "/history"
304     assert_response :redirect
305     follow_redirect!
306     assert_response :success
307     assert_template "user_blocks/show"
308   end
309
310   def test_login_email_password_blocked_upcase
311     user = users(:blocked_user)
312
313     get "/login"
314     assert_response :redirect
315     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
316     follow_redirect!
317     assert_response :success
318
319     post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
320     assert_response :redirect
321     follow_redirect!
322     assert_response :success
323     assert_template "login"
324
325     post "/login", :username => user.email.upcase, :password => "test", :referer => "/history"
326     assert_response :redirect
327     follow_redirect!
328     assert_response :success
329     assert_template "user_blocks/show"
330   end
331
332   def test_login_email_password_blocked_titlecase
333     user = users(:blocked_user)
334
335     get "/login"
336     assert_response :redirect
337     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
338     follow_redirect!
339     assert_response :success
340
341     post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
342     assert_response :redirect
343     follow_redirect!
344     assert_response :success
345     assert_template "login"
346
347     post "/login", :username => user.email.titlecase, :password => "test", :referer => "/history"
348     assert_response :redirect
349     follow_redirect!
350     assert_response :success
351     assert_template "user_blocks/show"
352   end
353
354   def test_login_username_password_normal
355     user = users(:normal_user)
356
357     get "/login"
358     assert_response :redirect
359     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
360     follow_redirect!
361     assert_response :success
362
363     post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
364     assert_response :redirect
365     follow_redirect!
366     assert_response :success
367     assert_template "login"
368
369     post "/login", :username => user.display_name, :password => "test", :referer => "/history"
370     assert_response :redirect
371     follow_redirect!
372     assert_response :success
373     assert_template "changeset/history"
374     assert_select "span.username", "test"
375   end
376
377   def test_login_username_password_normal_upcase
378     user = users(:normal_user)
379
380     get "/login"
381     assert_response :redirect
382     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
383     follow_redirect!
384     assert_response :success
385
386     post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
387     assert_response :redirect
388     follow_redirect!
389     assert_response :success
390     assert_template "login"
391
392     post "/login", :username => user.display_name.upcase, :password => "test", :referer => "/history"
393     assert_response :redirect
394     follow_redirect!
395     assert_response :success
396     assert_template "changeset/history"
397     assert_select "span.username", "TEST"
398   end
399
400   def test_login_username_password_normal_titlecase
401     user = users(:normal_user)
402
403     get "/login"
404     assert_response :redirect
405     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
406     follow_redirect!
407     assert_response :success
408
409     post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
410     assert_response :redirect
411     follow_redirect!
412     assert_response :success
413     assert_template "login"
414
415     post "/login", :username => user.display_name.titlecase, :password => "test", :referer => "/history"
416     assert_response :redirect
417     follow_redirect!
418     assert_response :success
419     assert_template "login"
420     assert_select "span.username", false
421   end
422
423   def test_login_username_password_public
424     user = users(:public_user)
425
426     get "/login"
427     assert_response :redirect
428     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
429     follow_redirect!
430     assert_response :success
431
432     post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
433     assert_response :redirect
434     follow_redirect!
435     assert_response :success
436     assert_template "login"
437
438     post "/login", :username => user.display_name, :password => "test", :referer => "/history"
439     assert_response :redirect
440     follow_redirect!
441     assert_response :success
442     assert_template "changeset/history"
443     assert_select "span.username", "test2"
444   end
445
446   def test_login_username_password_public_upcase
447     user = users(:public_user)
448
449     get "/login"
450     assert_response :redirect
451     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
452     follow_redirect!
453     assert_response :success
454
455     post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
456     assert_response :redirect
457     follow_redirect!
458     assert_response :success
459     assert_template "login"
460
461     post "/login", :username => user.display_name.upcase, :password => "test", :referer => "/history"
462     assert_response :redirect
463     follow_redirect!
464     assert_response :success
465     assert_template "changeset/history"
466     assert_select "span.username", "test2"
467   end
468
469   def test_login_username_password_public_titlecase
470     user = users(:public_user)
471
472     get "/login"
473     assert_response :redirect
474     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
475     follow_redirect!
476     assert_response :success
477
478     post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
479     assert_response :redirect
480     follow_redirect!
481     assert_response :success
482     assert_template "login"
483
484     post "/login", :username => user.display_name.titlecase, :password => "test", :referer => "/history"
485     assert_response :redirect
486     follow_redirect!
487     assert_response :success
488     assert_template "changeset/history"
489     assert_select "span.username", "test2"
490   end
491
492   def test_login_username_password_inactive
493     user = users(:inactive_user)
494
495     get "/login"
496     assert_response :redirect
497     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
498     follow_redirect!
499     assert_response :success
500
501     post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
502     assert_response :redirect
503     follow_redirect!
504     assert_response :success
505     assert_template "login"
506
507     post "/login", :username => user.display_name, :password => "test2", :referer => "/history"
508     assert_response :redirect
509     follow_redirect!
510     assert_response :success
511     assert_template "confirm"
512   end
513
514   def test_login_username_password_inactive_upcase
515     user = users(:inactive_user)
516
517     get "/login"
518     assert_response :redirect
519     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
520     follow_redirect!
521     assert_response :success
522
523     post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
524     assert_response :redirect
525     follow_redirect!
526     assert_response :success
527     assert_template "login"
528
529     post "/login", :username => user.display_name.upcase, :password => "test2", :referer => "/history"
530     assert_response :redirect
531     follow_redirect!
532     assert_response :success
533     assert_template "confirm"
534   end
535
536   def test_login_username_password_inactive_titlecase
537     user = users(:inactive_user)
538
539     get "/login"
540     assert_response :redirect
541     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
542     follow_redirect!
543     assert_response :success
544
545     post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
546     assert_response :redirect
547     follow_redirect!
548     assert_response :success
549     assert_template "login"
550
551     post "/login", :username => user.display_name.titlecase, :password => "test2", :referer => "/history"
552     assert_response :redirect
553     follow_redirect!
554     assert_response :success
555     assert_template "confirm"
556   end
557
558   def test_login_username_password_suspended
559     user = users(:suspended_user)
560
561     get "/login"
562     assert_response :redirect
563     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
564     follow_redirect!
565     assert_response :success
566
567     post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
568     assert_response :redirect
569     follow_redirect!
570     assert_response :success
571     assert_template "login"
572
573     post "/login", :username => user.display_name, :password => "test", :referer => "/history"
574     assert_response :redirect
575     follow_redirect!
576     assert_response :success
577     assert_template "login"
578     assert_select "div.flash.error", /your account has been suspended/
579   end
580
581   def test_login_username_password_suspended_upcase
582     user = users(:suspended_user)
583
584     get "/login"
585     assert_response :redirect
586     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
587     follow_redirect!
588     assert_response :success
589
590     post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
591     assert_response :redirect
592     follow_redirect!
593     assert_response :success
594     assert_template "login"
595
596     post "/login", :username => user.display_name.upcase, :password => "test", :referer => "/history"
597     assert_response :redirect
598     follow_redirect!
599     assert_response :success
600     assert_template "login"
601     assert_select "div.flash.error", /your account has been suspended/
602   end
603
604   def test_login_username_password_suspended_titlecase
605     user = users(:suspended_user)
606
607     get "/login"
608     assert_response :redirect
609     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
610     follow_redirect!
611     assert_response :success
612
613     post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
614     assert_response :redirect
615     follow_redirect!
616     assert_response :success
617     assert_template "login"
618
619     post "/login", :username => user.display_name.titlecase, :password => "test", :referer => "/history"
620     assert_response :redirect
621     follow_redirect!
622     assert_response :success
623     assert_template "login"
624     assert_select "div.flash.error", /your account has been suspended/
625   end
626
627   def test_login_username_password_blocked
628     user = users(:blocked_user)
629
630     get "/login"
631     assert_response :redirect
632     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
633     follow_redirect!
634     assert_response :success
635
636     post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
637     assert_response :redirect
638     follow_redirect!
639     assert_response :success
640     assert_template "login"
641
642     post "/login", :username => user.display_name, :password => "test", :referer => "/history"
643     assert_response :redirect
644     follow_redirect!
645     assert_response :success
646     assert_template "user_blocks/show"
647   end
648
649   def test_login_username_password_blocked_upcase
650     user = users(:blocked_user)
651
652     get "/login"
653     assert_response :redirect
654     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
655     follow_redirect!
656     assert_response :success
657
658     post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
659     assert_response :redirect
660     follow_redirect!
661     assert_response :success
662     assert_template "login"
663
664     post "/login", :username => user.display_name.upcase, :password => "test", :referer => "/history"
665     assert_response :redirect
666     follow_redirect!
667     assert_response :success
668     assert_template "user_blocks/show"
669   end
670
671   def test_login_username_password_blocked_titlecase
672     user = users(:blocked_user)
673
674     get "/login"
675     assert_response :redirect
676     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
677     follow_redirect!
678     assert_response :success
679
680     post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
681     assert_response :redirect
682     follow_redirect!
683     assert_response :success
684     assert_template "login"
685
686     post "/login", :username => user.display_name.titlecase, :password => "test", :referer => "/history"
687     assert_response :redirect
688     follow_redirect!
689     assert_response :success
690     assert_template "user_blocks/show"
691   end
692
693   def test_login_email_password_remember_me
694     user = users(:normal_user)
695
696     get "/login"
697     assert_response :redirect
698     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
699     follow_redirect!
700     assert_response :success
701
702     post "/login", :username => user.email, :password => "test", :remember_me => true, :referer => "/history"
703     assert_response :redirect
704     follow_redirect!
705     assert_response :success
706     assert_template "changeset/history"
707     assert_select "span.username", "test"
708     assert session.key?(:_remember_for)
709   end
710
711   def test_login_username_password_remember_me
712     user = users(:normal_user)
713
714     get "/login"
715     assert_response :redirect
716     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
717     follow_redirect!
718     assert_response :success
719
720     post "/login", :username => user.display_name, :password => "test", :remember_me => true, :referer => "/history"
721     assert_response :redirect
722     follow_redirect!
723     assert_response :success
724     assert_template "changeset/history"
725     assert_select "span.username", "test"
726     assert session.key?(:_remember_for)
727   end
728
729   def test_login_openid_success
730     OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/john.doe")
731
732     get "/login"
733     assert_response :redirect
734     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
735     follow_redirect!
736     assert_response :success
737     post "/login", :openid_url => "http://localhost:1123/john.doe", :referer => "/history"
738     assert_response :redirect
739     assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
740     follow_redirect!
741     assert_response :redirect
742     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
743     follow_redirect!
744     assert_response :redirect
745     follow_redirect!
746     assert_response :success
747     assert_template "changeset/history"
748     assert_select "span.username", "openIDuser"
749   end
750
751   def test_login_openid_remember_me
752     OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/john.doe")
753
754     get "/login"
755     assert_response :redirect
756     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
757     follow_redirect!
758     assert_response :success
759     post "/login", :openid_url => "http://localhost:1123/john.doe", :remember_me_openid => true, :referer => "/history"
760     assert_response :redirect
761     assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
762     follow_redirect!
763     assert_response :redirect
764     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
765     follow_redirect!
766     assert_response :redirect
767     follow_redirect!
768     assert_response :success
769     assert_template "changeset/history"
770     assert_select "span.username", "openIDuser"
771     assert session.key?(:_remember_for)
772   end
773
774   def test_login_openid_connection_failed
775     OmniAuth.config.mock_auth[:openid] = :connection_failed
776
777     get "/login"
778     assert_response :redirect
779     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
780     follow_redirect!
781     assert_response :success
782     post "/login", :openid_url => "http://localhost:1123/john.doe", :referer => "/history"
783     assert_response :redirect
784     assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
785     follow_redirect!
786     assert_response :redirect
787     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
788     follow_redirect!
789     assert_response :redirect
790     assert_redirected_to auth_failure_path(:strategy => "openid", :message => "connection_failed", :origin => "/login")
791     follow_redirect!
792     assert_response :redirect
793     follow_redirect!
794     assert_response :success
795     assert_template "login"
796     assert_select "div.flash.error", "Connection to authentication provider failed"
797     assert_select "span.username", false
798   end
799
800   def test_login_openid_invalid_credentials
801     OmniAuth.config.mock_auth[:openid] = :invalid_credentials
802
803     get "/login"
804     assert_response :redirect
805     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
806     follow_redirect!
807     assert_response :success
808     post "/login", :openid_url => "http://localhost:1123/john.doe", :referer => "/history"
809     assert_response :redirect
810     assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
811     follow_redirect!
812     assert_response :redirect
813     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
814     follow_redirect!
815     assert_response :redirect
816     assert_redirected_to auth_failure_path(:strategy => "openid", :message => "invalid_credentials", :origin => "/login")
817     follow_redirect!
818     assert_response :redirect
819     follow_redirect!
820     assert_response :success
821     assert_template "login"
822     assert_select "div.flash.error", "Invalid authentication credentials"
823     assert_select "span.username", false
824   end
825
826   def test_login_openid_unknown
827     OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/fred.bloggs")
828
829     get "/login"
830     assert_response :redirect
831     assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
832     follow_redirect!
833     assert_response :success
834     post "/login", :openid_url => "http://localhost:1123/fred.bloggs", :referer => "/diary"
835     assert_response :redirect
836     assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/fred.bloggs", :origin => "/login")
837     follow_redirect!
838     assert_response :redirect
839     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/fred.bloggs", :origin => "/login")
840     follow_redirect!
841     assert_response :redirect
842     follow_redirect!
843     assert_response :success
844     assert_template "user/new"
845     assert_select "span.username", false
846   end
847 end