upload screenshot anonymously, login in, get screenshots assigned
This commit is contained in:
parent
820ff2a30b
commit
2746b22c18
4 changed files with 70 additions and 32 deletions
|
|
@ -7,12 +7,14 @@ class Users::MySessionsController < Devise::SessionsController
|
||||||
old_screenshots = session[:uploaded_screenshots]
|
old_screenshots = session[:uploaded_screenshots]
|
||||||
if old_screenshots.to_a.length > 0
|
if old_screenshots.to_a.length > 0
|
||||||
old_screenshots.each do |id|
|
old_screenshots.each do |id|
|
||||||
|
next unless id # sometimes we had 'nil' here
|
||||||
ss = Screenshot.find(id)
|
ss = Screenshot.find(id)
|
||||||
ss.user = @user
|
ss.user = @user
|
||||||
ss.save!
|
ss.save!
|
||||||
end
|
end
|
||||||
flash[:info] = "#{old_screenshots.to_a.length} uploads have been added to your account"
|
# The message is probably confusing. Just add the screenshots.
|
||||||
Log.log "Anonymously uploaded screenshots #{old_screenshots} added to account."
|
# flash[:info] = "#{old_screenshots.to_a.length} uploads have been added to your account"
|
||||||
|
Log.log "Anonymously uploaded screenshots #{old_screenshots} added to #{current_user}."
|
||||||
session[:uploaded_screenshots] = nil
|
session[:uploaded_screenshots] = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -21,43 +21,52 @@ class PackagesControllerTest < ActionController::TestCase
|
||||||
# assert_response :success
|
# assert_response :success
|
||||||
# end
|
# end
|
||||||
|
|
||||||
test "upload screenshot anonymously then login and get screenshots assigned" do
|
# test "upload screenshot anonymously then login and get screenshots assigned" do
|
||||||
newest_screenshot1 = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
# newest_screenshot1 = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
||||||
|
|
||||||
# Load the upload page
|
# # Load the upload page
|
||||||
get :upload, params: { name: 'firefox' }
|
# get :upload, params: { name: 'firefox' }
|
||||||
assert_response :success
|
# assert_response :success
|
||||||
|
|
||||||
# Upload a screenshot and except to be redirected afterwards
|
# # Upload a screenshot and expect to be redirected afterwards
|
||||||
post :upload_receive, params: { name: 'firefox', file: [ fixture_file_upload('test/fixtures/files/large1.png','image/png') ] }
|
# post :upload_receive, params: { name: 'firefox', file: [ fixture_file_upload('test/fixtures/files/large1.png','image/png') ] }
|
||||||
assert_redirected_to package_path(name: 'firefox')
|
# assert_redirected_to package_path(name: 'firefox')
|
||||||
|
|
||||||
# Check that the newest screenshot is not yet approved
|
# # Check that the newest screenshot is not yet approved
|
||||||
newest_screenshot2 = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
# newest_screenshot2 = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
||||||
assert_not_equal newest_screenshot1, newest_screenshot2
|
# assert_not_equal newest_screenshot1, newest_screenshot2
|
||||||
assert_equal newest_screenshot2.approved, false
|
# assert_equal newest_screenshot2.approved, false
|
||||||
|
|
||||||
|
# # Login
|
||||||
|
# sign_in users(:normal)
|
||||||
|
|
||||||
|
# # Get the information about the newest screenshot again
|
||||||
|
# newest_screenshot2 = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
||||||
|
|
||||||
|
# # Expect the uploaded screenshot to be assigned to this user
|
||||||
|
# byebug
|
||||||
|
# assert_equal newest_screenshot2.user, users(:normal)
|
||||||
|
|
||||||
|
|
||||||
|
# # (name: 'firefox')
|
||||||
|
# # img_count_before = page.find_all('img').count
|
||||||
|
# # attach_file 'file[]', Rails.root.join('test/fixtures/files/large1.png')
|
||||||
|
# # click_on 'Start upload'
|
||||||
|
|
||||||
# (name: 'firefox')
|
# # # The cookie session must remember this anonymous upload
|
||||||
# img_count_before = page.find_all('img').count
|
# # newest_screenshot = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
||||||
# attach_file 'file[]', Rails.root.join('test/fixtures/files/large1.png')
|
# # assert_equal session[:uploaded_screenshots].length, [newest_screenshot]
|
||||||
# click_on 'Start upload'
|
|
||||||
|
|
||||||
# # The cookie session must remember this anonymous upload
|
# # #
|
||||||
# newest_screenshot = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
# # # sign_in users(:debian)
|
||||||
# assert_equal session[:uploaded_screenshots].length, [newest_screenshot]
|
|
||||||
|
|
||||||
# #
|
# # # # Screenshot is instantly public
|
||||||
# # sign_in users(:debian)
|
# # # newest_screenshot = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
||||||
|
# # # assert_equal newest_screenshot.approved, true
|
||||||
|
|
||||||
# # # Screenshot is instantly public
|
# # # # Clean up
|
||||||
# # newest_screenshot = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
# # newest_screenshot.destroy
|
||||||
# # assert_equal newest_screenshot.approved, true
|
# # sign_out users(:normal)
|
||||||
|
# end
|
||||||
# # # Clean up
|
|
||||||
# newest_screenshot.destroy
|
|
||||||
# sign_out users(:normal)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
2
test/fixtures/users.yml
vendored
2
test/fixtures/users.yml
vendored
|
|
@ -26,4 +26,4 @@ debian:
|
||||||
sign_in_count: 0
|
sign_in_count: 0
|
||||||
provider: debian-sso
|
provider: debian-sso
|
||||||
admin: 0
|
admin: 0
|
||||||
encrypted_password: <%= Devise::Encryptor.digest(User, 'normalsecret') %>
|
encrypted_password: nil
|
||||||
|
|
|
||||||
|
|
@ -44,4 +44,31 @@ class BrowserBrowseTest < ActionDispatch::IntegrationTest
|
||||||
sign_out users(:debian)
|
sign_out users(:debian)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "upload screenshot anonymously, login in, get screenshots assigned" do
|
||||||
|
visit upload_path(name: 'firefox')
|
||||||
|
attach_file 'file[]', Rails.root.join('test/fixtures/files/large1.png')
|
||||||
|
click_on 'Start upload'
|
||||||
|
|
||||||
|
# Screenshot has not yet a user assigned
|
||||||
|
newest_screenshot = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
||||||
|
assert_nil newest_screenshot.user
|
||||||
|
|
||||||
|
# Login (sign_in is just a stub and would not call the callbacks!)
|
||||||
|
visit root_path
|
||||||
|
click_link 'Login'
|
||||||
|
within 'form' do
|
||||||
|
fill_in 'email address', with: users(:normal).email
|
||||||
|
fill_in 'password', with: 'normalsecret'
|
||||||
|
click_button 'Log in'
|
||||||
|
end
|
||||||
|
|
||||||
|
# Check if screenshot was assigned to the user
|
||||||
|
newest_screenshot = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
||||||
|
assert_equal newest_screenshot.user, users(:normal)
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
newest_screenshot.destroy
|
||||||
|
sign_out users(:debian)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue