1 # frozen_string_literal: true
6 class ImagesControllerTest < ActionDispatch::IntegrationTest
8 # test all routes which lead to this controller
11 { :path => "/profile/image", :method => :get },
12 { :controller => "profiles/images", :action => "show" }
15 { :path => "/profile/image", :method => :put },
16 { :controller => "profiles/images", :action => "update" }
24 get profile_image_path
26 assert_response :success
30 def test_show_unauthorized
31 get profile_image_path
33 assert_redirected_to login_path(:referer => profile_image_path)
36 def test_update_replace
37 image = Rack::Test::UploadedFile.new("test/gpx/fixtures/a.gif", "image/gif")
41 put profile_image_path, :params => { :avatar_action => "new", :user => { :avatar => image, :description => user.description } }
43 assert_redirected_to user_path(user)
45 assert_response :success
47 assert_dom ".alert-success", :text => "Profile image updated."
49 get profile_image_path
51 assert_dom "form > div > div.col-sm-10 > div.form-check > input[name=avatar_action][checked][value=?]", "keep"
54 def test_update_gravatar
58 put profile_image_path, :params => { :avatar_action => "gravatar", :user => { :description => user.description } }
60 assert_redirected_to user_path(user)
62 assert_response :success
64 assert_dom ".alert-success", :text => "Profile image updated."
66 get profile_image_path
68 assert_dom "form > div > div.col-sm-10 > div > div.form-check > input[name=avatar_action][checked][value=?]", "gravatar"
71 def test_update_remove
75 put profile_image_path, :params => { :avatar_action => "delete", :user => { :description => user.description } }
77 assert_redirected_to user_path(user)
79 assert_response :success
81 assert_dom ".alert-success", :text => "Profile image updated."
83 get profile_image_path
85 assert_dom "form > div > div.col-sm-10 > div > input[name=avatar_action][checked]", false
86 assert_dom "form > div > div.col-sm-10 > div > div.form-check > input[name=avatar_action][checked]", false