testing
This commit is contained in:
@@ -5,7 +5,7 @@ class UploadService
|
|||||||
|
|
||||||
if Utils.is_downloadable?(url) && file.nil?
|
if Utils.is_downloadable?(url) && file.nil?
|
||||||
download = Downloads::File.new(url)
|
download = Downloads::File.new(url)
|
||||||
normalized_url, _, _ = download.before_download(url, {})
|
normalized_url = download.rewrite_url()
|
||||||
post = if normalized_url.nil?
|
post = if normalized_url.nil?
|
||||||
Post.where("SourcePattern(lower(posts.source)) = ?", url).first
|
Post.where("SourcePattern(lower(posts.source)) = ?", url).first
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -222,7 +222,8 @@ class UploadService
|
|||||||
def download_for_upload(source, upload)
|
def download_for_upload(source, upload)
|
||||||
file = download_from_source(source, referer_url: upload.referer_url) do |context|
|
file = download_from_source(source, referer_url: upload.referer_url) do |context|
|
||||||
upload.downloaded_source = context[:downloaded_source]
|
upload.downloaded_source = context[:downloaded_source]
|
||||||
upload.source = context[:source]
|
puts "source: #{source} -> #{context[:source]}"
|
||||||
|
#upload.source = context[:source]
|
||||||
|
|
||||||
if context[:ugoira]
|
if context[:ugoira]
|
||||||
upload.context = { ugoira: context[:ugoira] }
|
upload.context = { ugoira: context[:ugoira] }
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ class ArtistUrl < ApplicationRecord
|
|||||||
|
|
||||||
def validate_url_format
|
def validate_url_format
|
||||||
uri = Addressable::URI.parse(url)
|
uri = Addressable::URI.parse(url)
|
||||||
errors[:url] << " #{uri} must begin with http:// or https://" if !uri.scheme.in?(%w[http https])
|
errors[:url] << "#{uri} must begin with http:// or https://" if !uri.scheme.in?(%w[http https])
|
||||||
rescue Addressable::URI::InvalidURIError => error
|
rescue Addressable::URI::InvalidURIError => error
|
||||||
errors[:url] << "is malformed: #{error}"
|
errors[:url] << "is malformed: #{error}"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -68,6 +68,20 @@ class UploadsControllerTest < ActionDispatch::IntegrationTest
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "for a pixiv post" do
|
||||||
|
setup do
|
||||||
|
@source = "http://www.pixiv.net/member_illust.php?mode=medium&illust_id=14901720"
|
||||||
|
end
|
||||||
|
|
||||||
|
should "set the correct url" do
|
||||||
|
get_auth new_upload_path, @user, params: {url: @source}
|
||||||
|
assert_response :success
|
||||||
|
Delayed::Worker.new.work_off
|
||||||
|
upload = Upload.last
|
||||||
|
assert_equal(@source, upload.source)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "for a twitter post" do
|
context "for a twitter post" do
|
||||||
should "render" do
|
should "render" do
|
||||||
skip "Twitter keys are not set" unless Danbooru.config.twitter_api_key
|
skip "Twitter keys are not set" unless Danbooru.config.twitter_api_key
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ class ArtistTest < ActiveSupport::TestCase
|
|||||||
should "not allow invalid urls" do
|
should "not allow invalid urls" do
|
||||||
artist = FactoryBot.create(:artist, :url_string => "blah")
|
artist = FactoryBot.create(:artist, :url_string => "blah")
|
||||||
assert_equal(false, artist.valid?)
|
assert_equal(false, artist.valid?)
|
||||||
assert_equal(["Url must begin with http:// or https://"], artist.errors[:url])
|
assert_equal(["blah must begin with http:// or https://"], artist.errors[:url])
|
||||||
end
|
end
|
||||||
|
|
||||||
should "make sure old urls are deleted" do
|
should "make sure old urls are deleted" do
|
||||||
|
|||||||
@@ -12,24 +12,6 @@ module Downloads
|
|||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|
||||||
context "An ugoira site for pixiv" do
|
|
||||||
setup do
|
|
||||||
@download = Downloads::File.new("http://www.pixiv.net/member_illust.php?mode=medium&illust_id=62247364")
|
|
||||||
@tempfile = @download.download!
|
|
||||||
@tempfile.close!
|
|
||||||
end
|
|
||||||
|
|
||||||
should "capture the data" do
|
|
||||||
assert_equal("https://i.pximg.net/img-zip-ugoira/img/2017/04/04/08/57/38/62247364_ugoira1920x1080.zip", @download.source)
|
|
||||||
assert_equal(2, @download.data[:ugoira_frame_data].size)
|
|
||||||
if @download.data[:ugoira_frame_data][0]["file"]
|
|
||||||
assert_equal([{"file"=>"000000.jpg", "delay"=>125}, {"file"=>"000001.jpg", "delay"=>125}], @download.data[:ugoira_frame_data])
|
|
||||||
else
|
|
||||||
assert_equal([{"delay_msec"=>125}, {"delay_msec"=>125}], @download.data[:ugoira_frame_data])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "in all cases" do
|
context "in all cases" do
|
||||||
# Test an old illustration (one uploaded before 2014-09-16). New
|
# Test an old illustration (one uploaded before 2014-09-16). New
|
||||||
# /img-original/ and /img-master/ URLs currently don't work for images
|
# /img-original/ and /img-master/ URLs currently don't work for images
|
||||||
@@ -195,5 +177,23 @@ module Downloads
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "An ugoira site for pixiv" do
|
||||||
|
setup do
|
||||||
|
@download = Downloads::File.new("http://www.pixiv.net/member_illust.php?mode=medium&illust_id=62247364")
|
||||||
|
@tempfile = @download.download!
|
||||||
|
@tempfile.close!
|
||||||
|
end
|
||||||
|
|
||||||
|
should "capture the data" do
|
||||||
|
assert_equal("https://i.pximg.net/img-zip-ugoira/img/2017/04/04/08/57/38/62247364_ugoira1920x1080.zip", @download.source)
|
||||||
|
assert_equal(2, @download.data[:ugoira_frame_data].size)
|
||||||
|
if @download.data[:ugoira_frame_data][0]["file"]
|
||||||
|
assert_equal([{"file"=>"000000.jpg", "delay"=>125}, {"file"=>"000001.jpg", "delay"=>125}], @download.data[:ugoira_frame_data])
|
||||||
|
else
|
||||||
|
assert_equal([{"delay_msec"=>125}, {"delay_msec"=>125}], @download.data[:ugoira_frame_data])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user