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