3 class UserLoginTest < ActionDispatch::IntegrationTest
4 fixtures :users, :user_blocks
7 OmniAuth.config.test_mode = true
11 OmniAuth.config.mock_auth[:openid] = nil
12 OmniAuth.config.mock_auth[:google] = nil
13 OmniAuth.config.mock_auth[:facebook] = nil
14 OmniAuth.config.test_mode = false
17 def test_login_email_password_normal
18 user = users(:normal_user)
21 assert_response :redirect
22 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
24 assert_response :success
26 post "/login", :username => user.email, :password => "wrong", :referer => "/history"
27 assert_response :redirect
29 assert_response :success
30 assert_template "login"
32 post "/login", :username => user.email, :password => "test", :referer => "/history"
33 assert_response :redirect
35 assert_response :success
36 assert_template "changeset/history"
37 assert_select "span.username", "test"
40 def test_login_email_password_normal_upcase
41 user = users(:normal_user)
44 assert_response :redirect
45 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
47 assert_response :success
49 post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
50 assert_response :redirect
52 assert_response :success
53 assert_template "login"
55 post "/login", :username => user.email.upcase, :password => "test", :referer => "/history"
56 assert_response :redirect
58 assert_response :success
59 assert_template "changeset/history"
60 assert_select "span.username", "TEST"
63 def test_login_email_password_normal_titlecase
64 user = users(:normal_user)
67 assert_response :redirect
68 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
70 assert_response :success
72 post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
73 assert_response :redirect
75 assert_response :success
76 assert_template "login"
78 post "/login", :username => user.email.titlecase, :password => "test", :referer => "/history"
79 assert_response :redirect
81 assert_response :success
82 assert_template "login"
83 assert_select "span.username", false
86 def test_login_email_password_public
87 user = users(:public_user)
90 assert_response :redirect
91 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
93 assert_response :success
95 post "/login", :username => user.email, :password => "wrong", :referer => "/history"
96 assert_response :redirect
98 assert_response :success
99 assert_template "login"
101 post "/login", :username => user.email, :password => "test", :referer => "/history"
102 assert_response :redirect
104 assert_response :success
105 assert_template "changeset/history"
106 assert_select "span.username", "test2"
109 def test_login_email_password_public_upcase
110 user = users(:public_user)
113 assert_response :redirect
114 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
116 assert_response :success
118 post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
119 assert_response :redirect
121 assert_response :success
122 assert_template "login"
124 post "/login", :username => user.email.upcase, :password => "test", :referer => "/history"
125 assert_response :redirect
127 assert_response :success
128 assert_template "changeset/history"
129 assert_select "span.username", "test2"
132 def test_login_email_password_public_titlecase
133 user = users(:public_user)
136 assert_response :redirect
137 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
139 assert_response :success
141 post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
142 assert_response :redirect
144 assert_response :success
145 assert_template "login"
147 post "/login", :username => user.email.titlecase, :password => "test", :referer => "/history"
148 assert_response :redirect
150 assert_response :success
151 assert_template "changeset/history"
152 assert_select "span.username", "test2"
155 def test_login_email_password_inactive
156 user = users(:inactive_user)
159 assert_response :redirect
160 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
162 assert_response :success
164 post "/login", :username => user.email, :password => "wrong", :referer => "/history"
165 assert_response :redirect
167 assert_response :success
168 assert_template "login"
170 post "/login", :username => user.email, :password => "test2", :referer => "/history"
171 assert_response :redirect
173 assert_response :success
174 assert_template "confirm"
177 def test_login_email_password_inactive_upcase
178 user = users(:inactive_user)
181 assert_response :redirect
182 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
184 assert_response :success
186 post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
187 assert_response :redirect
189 assert_response :success
190 assert_template "login"
192 post "/login", :username => user.email.upcase, :password => "test2", :referer => "/history"
193 assert_response :redirect
195 assert_response :success
196 assert_template "confirm"
199 def test_login_email_password_inactive_titlecase
200 user = users(:inactive_user)
203 assert_response :redirect
204 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
206 assert_response :success
208 post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
209 assert_response :redirect
211 assert_response :success
212 assert_template "login"
214 post "/login", :username => user.email.titlecase, :password => "test2", :referer => "/history"
215 assert_response :redirect
217 assert_response :success
218 assert_template "confirm"
221 def test_login_email_password_suspended
222 user = users(:suspended_user)
225 assert_response :redirect
226 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
228 assert_response :success
230 post "/login", :username => user.email, :password => "wrong", :referer => "/history"
231 assert_response :redirect
233 assert_response :success
234 assert_template "login"
236 post "/login", :username => user.email, :password => "test", :referer => "/history"
237 assert_response :redirect
239 assert_response :success
240 assert_template "login"
241 assert_select "div.flash.error", /your account has been suspended/
244 def test_login_email_password_suspended_upcase
245 user = users(:suspended_user)
248 assert_response :redirect
249 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
251 assert_response :success
253 post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
254 assert_response :redirect
256 assert_response :success
257 assert_template "login"
259 post "/login", :username => user.email.upcase, :password => "test", :referer => "/history"
260 assert_response :redirect
262 assert_response :success
263 assert_template "login"
264 assert_select "div.flash.error", /your account has been suspended/
267 def test_login_email_password_suspended_titlecase
268 user = users(:suspended_user)
271 assert_response :redirect
272 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
274 assert_response :success
276 post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
277 assert_response :redirect
279 assert_response :success
280 assert_template "login"
282 post "/login", :username => user.email.titlecase, :password => "test", :referer => "/history"
283 assert_response :redirect
285 assert_response :success
286 assert_template "login"
287 assert_select "div.flash.error", /your account has been suspended/
290 def test_login_email_password_blocked
291 user = users(:blocked_user)
294 assert_response :redirect
295 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
297 assert_response :success
299 post "/login", :username => user.email, :password => "wrong", :referer => "/history"
300 assert_response :redirect
302 assert_response :success
303 assert_template "login"
305 post "/login", :username => user.email, :password => "test", :referer => "/history"
306 assert_response :redirect
308 assert_response :success
309 assert_template "user_blocks/show"
312 def test_login_email_password_blocked_upcase
313 user = users(:blocked_user)
316 assert_response :redirect
317 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
319 assert_response :success
321 post "/login", :username => user.email.upcase, :password => "wrong", :referer => "/history"
322 assert_response :redirect
324 assert_response :success
325 assert_template "login"
327 post "/login", :username => user.email.upcase, :password => "test", :referer => "/history"
328 assert_response :redirect
330 assert_response :success
331 assert_template "user_blocks/show"
334 def test_login_email_password_blocked_titlecase
335 user = users(:blocked_user)
338 assert_response :redirect
339 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
341 assert_response :success
343 post "/login", :username => user.email.titlecase, :password => "wrong", :referer => "/history"
344 assert_response :redirect
346 assert_response :success
347 assert_template "login"
349 post "/login", :username => user.email.titlecase, :password => "test", :referer => "/history"
350 assert_response :redirect
352 assert_response :success
353 assert_template "user_blocks/show"
356 def test_login_username_password_normal
357 user = users(:normal_user)
360 assert_response :redirect
361 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
363 assert_response :success
365 post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
366 assert_response :redirect
368 assert_response :success
369 assert_template "login"
371 post "/login", :username => user.display_name, :password => "test", :referer => "/history"
372 assert_response :redirect
374 assert_response :success
375 assert_template "changeset/history"
376 assert_select "span.username", "test"
379 def test_login_username_password_normal_upcase
380 user = users(:normal_user)
383 assert_response :redirect
384 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
386 assert_response :success
388 post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
389 assert_response :redirect
391 assert_response :success
392 assert_template "login"
394 post "/login", :username => user.display_name.upcase, :password => "test", :referer => "/history"
395 assert_response :redirect
397 assert_response :success
398 assert_template "changeset/history"
399 assert_select "span.username", "TEST"
402 def test_login_username_password_normal_titlecase
403 user = users(:normal_user)
406 assert_response :redirect
407 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
409 assert_response :success
411 post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
412 assert_response :redirect
414 assert_response :success
415 assert_template "login"
417 post "/login", :username => user.display_name.titlecase, :password => "test", :referer => "/history"
418 assert_response :redirect
420 assert_response :success
421 assert_template "login"
422 assert_select "span.username", false
425 def test_login_username_password_public
426 user = users(:public_user)
429 assert_response :redirect
430 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
432 assert_response :success
434 post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
435 assert_response :redirect
437 assert_response :success
438 assert_template "login"
440 post "/login", :username => user.display_name, :password => "test", :referer => "/history"
441 assert_response :redirect
443 assert_response :success
444 assert_template "changeset/history"
445 assert_select "span.username", "test2"
448 def test_login_username_password_public_upcase
449 user = users(:public_user)
452 assert_response :redirect
453 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
455 assert_response :success
457 post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
458 assert_response :redirect
460 assert_response :success
461 assert_template "login"
463 post "/login", :username => user.display_name.upcase, :password => "test", :referer => "/history"
464 assert_response :redirect
466 assert_response :success
467 assert_template "changeset/history"
468 assert_select "span.username", "test2"
471 def test_login_username_password_public_titlecase
472 user = users(:public_user)
475 assert_response :redirect
476 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
478 assert_response :success
480 post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
481 assert_response :redirect
483 assert_response :success
484 assert_template "login"
486 post "/login", :username => user.display_name.titlecase, :password => "test", :referer => "/history"
487 assert_response :redirect
489 assert_response :success
490 assert_template "changeset/history"
491 assert_select "span.username", "test2"
494 def test_login_username_password_inactive
495 user = users(:inactive_user)
498 assert_response :redirect
499 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
501 assert_response :success
503 post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
504 assert_response :redirect
506 assert_response :success
507 assert_template "login"
509 post "/login", :username => user.display_name, :password => "test2", :referer => "/history"
510 assert_response :redirect
512 assert_response :success
513 assert_template "confirm"
516 def test_login_username_password_inactive_upcase
517 user = users(:inactive_user)
520 assert_response :redirect
521 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
523 assert_response :success
525 post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
526 assert_response :redirect
528 assert_response :success
529 assert_template "login"
531 post "/login", :username => user.display_name.upcase, :password => "test2", :referer => "/history"
532 assert_response :redirect
534 assert_response :success
535 assert_template "confirm"
538 def test_login_username_password_inactive_titlecase
539 user = users(:inactive_user)
542 assert_response :redirect
543 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
545 assert_response :success
547 post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
548 assert_response :redirect
550 assert_response :success
551 assert_template "login"
553 post "/login", :username => user.display_name.titlecase, :password => "test2", :referer => "/history"
554 assert_response :redirect
556 assert_response :success
557 assert_template "confirm"
560 def test_login_username_password_suspended
561 user = users(:suspended_user)
564 assert_response :redirect
565 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
567 assert_response :success
569 post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
570 assert_response :redirect
572 assert_response :success
573 assert_template "login"
575 post "/login", :username => user.display_name, :password => "test", :referer => "/history"
576 assert_response :redirect
578 assert_response :success
579 assert_template "login"
580 assert_select "div.flash.error", /your account has been suspended/
583 def test_login_username_password_suspended_upcase
584 user = users(:suspended_user)
587 assert_response :redirect
588 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
590 assert_response :success
592 post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
593 assert_response :redirect
595 assert_response :success
596 assert_template "login"
598 post "/login", :username => user.display_name.upcase, :password => "test", :referer => "/history"
599 assert_response :redirect
601 assert_response :success
602 assert_template "login"
603 assert_select "div.flash.error", /your account has been suspended/
606 def test_login_username_password_suspended_titlecase
607 user = users(:suspended_user)
610 assert_response :redirect
611 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
613 assert_response :success
615 post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
616 assert_response :redirect
618 assert_response :success
619 assert_template "login"
621 post "/login", :username => user.display_name.titlecase, :password => "test", :referer => "/history"
622 assert_response :redirect
624 assert_response :success
625 assert_template "login"
626 assert_select "div.flash.error", /your account has been suspended/
629 def test_login_username_password_blocked
630 user = users(:blocked_user)
633 assert_response :redirect
634 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
636 assert_response :success
638 post "/login", :username => user.display_name, :password => "wrong", :referer => "/history"
639 assert_response :redirect
641 assert_response :success
642 assert_template "login"
644 post "/login", :username => user.display_name, :password => "test", :referer => "/history"
645 assert_response :redirect
647 assert_response :success
648 assert_template "user_blocks/show"
651 def test_login_username_password_blocked_upcase
652 user = users(:blocked_user)
655 assert_response :redirect
656 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
658 assert_response :success
660 post "/login", :username => user.display_name.upcase, :password => "wrong", :referer => "/history"
661 assert_response :redirect
663 assert_response :success
664 assert_template "login"
666 post "/login", :username => user.display_name.upcase, :password => "test", :referer => "/history"
667 assert_response :redirect
669 assert_response :success
670 assert_template "user_blocks/show"
673 def test_login_username_password_blocked_titlecase
674 user = users(:blocked_user)
677 assert_response :redirect
678 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
680 assert_response :success
682 post "/login", :username => user.display_name.titlecase, :password => "wrong", :referer => "/history"
683 assert_response :redirect
685 assert_response :success
686 assert_template "login"
688 post "/login", :username => user.display_name.titlecase, :password => "test", :referer => "/history"
689 assert_response :redirect
691 assert_response :success
692 assert_template "user_blocks/show"
695 def test_login_email_password_remember_me
696 user = users(:normal_user)
699 assert_response :redirect
700 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
702 assert_response :success
704 post "/login", :username => user.email, :password => "test", :remember_me => true, :referer => "/history"
705 assert_response :redirect
707 assert_response :success
708 assert_template "changeset/history"
709 assert_select "span.username", "test"
710 assert session.key?(:_remember_for)
713 def test_login_username_password_remember_me
714 user = users(:normal_user)
717 assert_response :redirect
718 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
720 assert_response :success
722 post "/login", :username => user.display_name, :password => "test", :remember_me => true, :referer => "/history"
723 assert_response :redirect
725 assert_response :success
726 assert_template "changeset/history"
727 assert_select "span.username", "test"
728 assert session.key?(:_remember_for)
731 def test_login_openid_success
732 OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/john.doe")
734 get "/login", :referer => "/history"
735 assert_response :redirect
736 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true, :referer => "/history"
738 assert_response :success
739 assert_template "user/login"
740 post "/login", :openid_url => "http://localhost:1123/john.doe", :referer => "/history"
741 assert_response :redirect
742 assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
744 assert_response :redirect
745 assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
747 assert_response :redirect
749 assert_response :success
750 assert_template "changeset/history"
751 assert_select "span.username", "openIDuser"
754 def test_login_openid_remember_me
755 OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/john.doe")
757 get "/login", :referer => "/history"
758 assert_response :redirect
759 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true, :referer => "/history"
761 assert_response :success
762 assert_template "user/login"
763 post "/login", :openid_url => "http://localhost:1123/john.doe", :remember_me_openid => true, :referer => "/history"
764 assert_response :redirect
765 assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
767 assert_response :redirect
768 assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
770 assert_response :redirect
772 assert_response :success
773 assert_template "changeset/history"
774 assert_select "span.username", "openIDuser"
775 assert session.key?(:_remember_for)
778 def test_login_openid_connection_failed
779 OmniAuth.config.mock_auth[:openid] = :connection_failed
781 get "/login", :referer => "/history"
782 assert_response :redirect
783 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true, :referer => "/history"
785 assert_response :success
786 assert_template "user/login"
787 post "/login", :openid_url => "http://localhost:1123/john.doe", :referer => "/history"
788 assert_response :redirect
789 assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
791 assert_response :redirect
792 assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
794 assert_response :redirect
795 assert_redirected_to auth_failure_path(:strategy => "openid", :message => "connection_failed", :origin => "/login")
797 assert_response :redirect
799 assert_response :success
800 assert_template "login"
801 assert_select "div.flash.error", "Connection to authentication provider failed"
802 assert_select "span.username", false
805 def test_login_openid_invalid_credentials
806 OmniAuth.config.mock_auth[:openid] = :invalid_credentials
808 get "/login", :referer => "/history"
809 assert_response :redirect
810 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true, :referer => "/history"
812 assert_response :success
813 assert_template "user/login"
814 post "/login", :openid_url => "http://localhost:1123/john.doe", :referer => "/history"
815 assert_response :redirect
816 assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
818 assert_response :redirect
819 assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
821 assert_response :redirect
822 assert_redirected_to auth_failure_path(:strategy => "openid", :message => "invalid_credentials", :origin => "/login")
824 assert_response :redirect
826 assert_response :success
827 assert_template "login"
828 assert_select "div.flash.error", "Invalid authentication credentials"
829 assert_select "span.username", false
832 def test_login_openid_unknown
833 OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/fred.bloggs")
835 get "/login", :referer => "/history"
836 assert_response :redirect
837 assert_redirected_to :controller => :user, :action => :login, :cookie_test => true, :referer => "/history"
839 assert_response :success
840 assert_template "user/login"
841 post "/login", :openid_url => "http://localhost:1123/fred.bloggs", :referer => "/history"
842 assert_response :redirect
843 assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/fred.bloggs", :origin => "/login")
845 assert_response :redirect
846 assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/fred.bloggs", :origin => "/login")
848 assert_response :redirect
850 assert_response :success
851 assert_template "user/new"
852 assert_select "span.username", false
855 def test_login_google_success
856 OmniAuth.config.add_mock(:google, :uid => "123456789", :extra => {
857 :id_info => { "openid_id" => "http://localhost:1123/fred.bloggs" }
860 get "/login", :referer => "/history"
861 assert_response :redirect
862 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
864 assert_response :success
865 assert_template "user/login"
866 get auth_path(:provider => "google", :origin => "/login")
867 assert_response :redirect
868 assert_redirected_to auth_success_path(:provider => "google")
870 assert_response :redirect
872 assert_response :success
873 assert_template "changeset/history"
874 assert_select "span.username", "googleuser"
877 def test_login_google_connection_failed
878 OmniAuth.config.mock_auth[:google] = :connection_failed
880 get "/login", :referer => "/history"
881 assert_response :redirect
882 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
884 assert_response :success
885 assert_template "user/login"
886 get auth_path(:provider => "google", :origin => "/login")
887 assert_response :redirect
888 assert_redirected_to auth_success_path(:provider => "google")
890 assert_response :redirect
891 assert_redirected_to auth_failure_path(:strategy => "google", :message => "connection_failed", :origin => "/login")
893 assert_response :redirect
895 assert_response :success
896 assert_template "login"
897 assert_select "div.flash.error", "Connection to authentication provider failed"
898 assert_select "span.username", false
901 def test_login_google_invalid_credentials
902 OmniAuth.config.mock_auth[:google] = :invalid_credentials
904 get "/login", :referer => "/history"
905 assert_response :redirect
906 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
908 assert_response :success
909 assert_template "user/login"
910 get auth_path(:provider => "google", :origin => "/login")
911 assert_response :redirect
912 assert_redirected_to auth_success_path(:provider => "google")
914 assert_response :redirect
915 assert_redirected_to auth_failure_path(:strategy => "google", :message => "invalid_credentials", :origin => "/login")
917 assert_response :redirect
919 assert_response :success
920 assert_template "login"
921 assert_select "div.flash.error", "Invalid authentication credentials"
922 assert_select "span.username", false
925 def test_login_google_unknown
926 OmniAuth.config.add_mock(:google, :uid => "987654321", :extra => {
927 :id_info => { "openid_id" => "http://localhost:1123/fred.bloggs" }
930 get "/login", :referer => "/history"
931 assert_response :redirect
932 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
934 assert_response :success
935 assert_template "user/login"
936 get auth_path(:provider => "google", :origin => "/login")
937 assert_response :redirect
938 assert_redirected_to auth_success_path(:provider => "google")
940 assert_response :redirect
942 assert_response :success
943 assert_template "user/new"
944 assert_select "span.username", false
947 def test_login_google_upgrade
948 OmniAuth.config.add_mock(:google, :uid => "987654321", :extra => {
949 :id_info => { "openid_id" => "http://localhost:1123/john.doe" }
952 get "/login", :referer => "/history"
953 assert_response :redirect
954 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
956 assert_response :success
957 assert_template "user/login"
958 get auth_path(:provider => "google", :origin => "/login")
959 assert_response :redirect
960 assert_redirected_to auth_success_path(:provider => "google")
962 assert_response :redirect
964 assert_response :success
965 assert_template "changeset/history"
966 assert_select "span.username", "openIDuser"
968 user = User.find_by_display_name("openIDuser")
969 assert_equal "google", user.auth_provider
970 assert_equal "987654321", user.auth_uid
973 def test_login_facebook_success
974 OmniAuth.config.add_mock(:facebook, :uid => "123456789", :extra => {
975 :id_info => { "openid_id" => "http://localhost:1123/fred.bloggs" }
978 get "/login", :referer => "/history"
979 assert_response :redirect
980 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
982 assert_response :success
983 assert_template "user/login"
984 get auth_path(:provider => "facebook", :origin => "/login")
985 assert_response :redirect
986 assert_redirected_to auth_success_path(:provider => "facebook")
988 assert_response :redirect
990 assert_response :success
991 assert_template "changeset/history"
992 assert_select "span.username", "facebookuser"
995 def test_login_facebook_connection_failed
996 OmniAuth.config.mock_auth[:facebook] = :connection_failed
998 get "/login", :referer => "/history"
999 assert_response :redirect
1000 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
1002 assert_response :success
1003 assert_template "user/login"
1004 get auth_path(:provider => "facebook", :origin => "/login")
1005 assert_response :redirect
1006 assert_redirected_to auth_success_path(:provider => "facebook")
1008 assert_response :redirect
1009 assert_redirected_to auth_failure_path(:strategy => "facebook", :message => "connection_failed", :origin => "/login")
1011 assert_response :redirect
1013 assert_response :success
1014 assert_template "login"
1015 assert_select "div.flash.error", "Connection to authentication provider failed"
1016 assert_select "span.username", false
1019 def test_login_facebook_invalid_credentials
1020 OmniAuth.config.mock_auth[:facebook] = :invalid_credentials
1022 get "/login", :referer => "/history"
1023 assert_response :redirect
1024 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
1026 assert_response :success
1027 assert_template "user/login"
1028 get auth_path(:provider => "facebook", :origin => "/login")
1029 assert_response :redirect
1030 assert_redirected_to auth_success_path(:provider => "facebook")
1032 assert_response :redirect
1033 assert_redirected_to auth_failure_path(:strategy => "facebook", :message => "invalid_credentials", :origin => "/login")
1035 assert_response :redirect
1037 assert_response :success
1038 assert_template "login"
1039 assert_select "div.flash.error", "Invalid authentication credentials"
1040 assert_select "span.username", false
1043 def test_login_facebook_unknown
1044 OmniAuth.config.add_mock(:facebook, :uid => "987654321", :extra => {
1045 :id_info => { "openid_id" => "http://localhost:1123/fred.bloggs" }
1048 get "/login", :referer => "/history"
1049 assert_response :redirect
1050 assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true", "referer" => "/history"
1052 assert_response :success
1053 assert_template "user/login"
1054 get auth_path(:provider => "facebook", :origin => "/login")
1055 assert_response :redirect
1056 assert_redirected_to auth_success_path(:provider => "facebook")
1058 assert_response :redirect
1060 assert_response :success
1061 assert_template "user/new"
1062 assert_select "span.username", false