74 lines
2.6 KiB
Ruby
74 lines
2.6 KiB
Ruby
require 'test_helper'
|
|
|
|
class BrowserBrowseTest < ActionDispatch::IntegrationTest
|
|
test "upload broken screenshot anonymously and get error message" do
|
|
visit package_path(name: 'firefox')
|
|
click_on 'Upload a screenshot'
|
|
attach_file 'file[]', Rails.root.join('test/fixtures/files/large-broken.png')
|
|
click_on 'Start upload'
|
|
page.must_have_content 'The image large-broken.png is not valid'
|
|
end
|
|
|
|
test "upload png screenshot anonymously and await moderation" do
|
|
visit package_path(name: 'firefox')
|
|
click_on 'Upload a screenshot'
|
|
img_count_before = page.find_all('img').count
|
|
attach_file 'file[]', Rails.root.join('test/fixtures/files/large1.png')
|
|
click_on 'Start upload'
|
|
img_count_after = page.find_all('img').count
|
|
assert_equal img_count_after, img_count_before + 1
|
|
|
|
# Screenshot must be moderated
|
|
newest_screenshot = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
|
assert_equal newest_screenshot.approved, false
|
|
|
|
# Clean up
|
|
newest_screenshot.destroy
|
|
end
|
|
|
|
test "upload screenshot as Debian SSO user and get auto-approval" do
|
|
sign_in users(:debian)
|
|
visit upload_path(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'
|
|
img_count_after = page.find_all('img').count
|
|
assert_equal img_count_after, img_count_before + 1
|
|
|
|
# Screenshot is instantly public
|
|
newest_screenshot = Package.find_by_name(:firefox).screenshots.order(id: :desc).first
|
|
assert_equal newest_screenshot.approved, true
|
|
|
|
# Clean up
|
|
newest_screenshot.destroy
|
|
sign_out users(:debian)
|
|
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
|