sta.sh: add tests + docs.
This commit is contained in:
@@ -1,3 +1,15 @@
|
||||
# Page URLs:
|
||||
# * https://sta.sh/0wxs31o7nn2 (single image)
|
||||
# * https://sta.sh/21leo8mz87ue (folder)
|
||||
#
|
||||
# Image URLs:
|
||||
# * https://orig00.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png
|
||||
#
|
||||
# Ref:
|
||||
# * https://github.com/r888888888/danbooru/issues/3877
|
||||
# * https://www.deviantartsupport.com/en/article/what-is-stash-3391708
|
||||
# * https://www.deviantart.com/developers/http/v1/20160316/stash_item/4662dd8b10e336486ea9a0b14da62b74
|
||||
#
|
||||
module Sources
|
||||
module Strategies
|
||||
class Stash < DeviantArt
|
||||
|
||||
58
test/unit/sources/stash_test.rb
Normal file
58
test/unit/sources/stash_test.rb
Normal file
@@ -0,0 +1,58 @@
|
||||
require 'test_helper'
|
||||
|
||||
module Sources
|
||||
class StashTest < ActiveSupport::TestCase
|
||||
def setup
|
||||
super
|
||||
skip "DeviantArt API keys not set" unless Danbooru.config.deviantart_client_id.present?
|
||||
end
|
||||
|
||||
context "A https://sta.sh/:id page url" do
|
||||
should "work" do
|
||||
@site = Sources::Strategies.find("https://sta.sh/0wxs31o7nn2")
|
||||
|
||||
assert_equal("noizave", @site.artist_name)
|
||||
assert_equal("https://www.deviantart.com/noizave", @site.profile_url)
|
||||
|
||||
assert_equal("A pepe", @site.artist_commentary_title)
|
||||
assert_equal("This is a test.", @site.artist_commentary_desc)
|
||||
|
||||
assert_equal("https://sta.sh/0wxs31o7nn2", @site.page_url)
|
||||
assert_equal("https://sta.sh/0wxs31o7nn2", @site.canonical_url)
|
||||
assert_equal("http://origin-orig.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png", @site.image_url)
|
||||
assert_equal(["http://origin-orig.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png"], @site.image_urls)
|
||||
end
|
||||
end
|
||||
|
||||
context "A https://orig00.deviantart.net/* image url" do
|
||||
context "with a https://sta.sh/:id referer" do
|
||||
should "work" do
|
||||
@site = Sources::Strategies.find("https://orig00.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png", "https://sta.sh/0wxs31o7nn2")
|
||||
|
||||
assert_equal("noizave", @site.artist_name)
|
||||
assert_equal("https://www.deviantart.com/noizave", @site.profile_url)
|
||||
|
||||
assert_equal("A pepe", @site.artist_commentary_title)
|
||||
assert_equal("This is a test.", @site.artist_commentary_desc)
|
||||
|
||||
assert_equal("https://sta.sh/0wxs31o7nn2", @site.page_url)
|
||||
assert_equal("https://sta.sh/0wxs31o7nn2", @site.canonical_url)
|
||||
assert_equal("http://origin-orig.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png", @site.image_url)
|
||||
assert_equal(["http://origin-orig.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png"], @site.image_urls)
|
||||
end
|
||||
end
|
||||
|
||||
context "without a referer" do
|
||||
should "use the base deviantart strategy" do
|
||||
@site = Sources::Strategies.find("https://orig00.deviantart.net/0fd2/f/2018/252/9/c/a_pepe_by_noizave-dcmga0s.png")
|
||||
|
||||
# if all we have is the image url, then we can't tell that this is really a sta.sh image.
|
||||
assert_equal("Deviant Art", @site.site_name)
|
||||
|
||||
# this is the wrong page, but there's no way to know the correct sta.sh page without the referer.
|
||||
assert_equal("https://www.deviantart.com/deviation/763305148", @site.page_url)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user