Screenshot upload process fixed and tested
This commit is contained in:
parent
125e9c8ee5
commit
9428d8d7dd
5 changed files with 60 additions and 3 deletions
45
test/functional/upload_test.rb
Normal file
45
test/functional/upload_test.rb
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
require 'test_helper'
|
||||
|
||||
class BrowserBrowseTest < ActionDispatch::IntegrationTest
|
||||
test "upload broken screenshot anonymously" 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" 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 logged-in user" do
|
||||
sign_in users(:normal)
|
||||
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
|
||||
end
|
||||
end
|
||||
|
|
@ -33,6 +33,9 @@ class ActionDispatch::IntegrationTest
|
|||
# Make `assert_*` methods behave like Minitest assertions
|
||||
include Capybara::Minitest::Assertions
|
||||
|
||||
# Help simulate logins
|
||||
include Devise::Test::IntegrationHelpers
|
||||
|
||||
# Reset sessions and driver between tests
|
||||
# Use super wherever this method is redefined in your individual test classes
|
||||
def teardown
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue