Files
danbooru/test/unit/sources/furaffinity_test.rb
evazion 23b8350320 sources: add image_url?, page_url?, and profile_url? methods.
Add methods to Source::URL for determining whether a URL is an image
URL, a page URL, or a profile URL.

Also add more source URL tests and fix various URL parsing bugs.
2022-05-01 21:01:36 -05:00

55 lines
2.3 KiB
Ruby

require "test_helper"
module Sources
class FuraffinityTest < ActiveSupport::TestCase
context "A furaffinity post" do
strategy_should_work(
"https://www.furaffinity.net/view/46821705/",
image_urls: ["https://d.furaffinity.net/art/iwbitu/1650222955/1650222955.iwbitu_yubi.jpg"],
profile_url: "https://www.furaffinity.net/user/iwbitu",
page_url: "https://www.furaffinity.net/view/46821705",
artist_name: "iwbitu",
artist_commentary_title: "Yubi",
artist_commentary_desc: /little gift doodle for/
)
end
context "A furaffinity image" do
strategy_should_work(
"https://d.furaffinity.net/art/iwbitu/1650222955/1650222955.iwbitu_yubi.jpg",
image_urls: ["https://d.furaffinity.net/art/iwbitu/1650222955/1650222955.iwbitu_yubi.jpg"],
profile_url: "https://www.furaffinity.net/user/iwbitu",
artist_name: "iwbitu",
page_url: nil,
artist_commentary_title: nil
)
end
context "An adult age-restricted furaffinity post" do
strategy_should_work(
"https://www.furaffinity.net/view/46590097/",
image_urls: ["https://d.furaffinity.net/art/iwbitu/1648803766/1648803766.iwbitu_nyopu_tori.jpg"],
profile_url: "https://www.furaffinity.net/user/iwbitu",
page_url: "https://www.furaffinity.net/view/46590097",
artist_name: "iwbitu",
tags: [],
artist_commentary_title: "Nyopu and Tori",
artist_commentary_desc: /UwU/
)
end
context "A deleted or non-existing furaffinity post" do
strategy_should_work("https://www.furaffinity.net/view/3404111", deleted: true, profile_url: nil)
end
should "Parse Furaffinity URLs correctly" do
assert(Source::URL.image_url?("https://d.furaffinity.net/art/iwbitu/1650222955/1650222955.iwbitu_yubi.jpg"))
assert(Source::URL.page_url?("https://www.furaffinity.net/view/46821705/"))
assert(Source::URL.page_url?("https://www.furaffinity.net/full/46821705/"))
assert(Source::URL.profile_url?("https://www.furaffinity.net/user/iwbitu"))
assert(Source::URL.profile_url?("https://www.furaffinity.net/gallery/iwbitu"))
assert(Source::URL.profile_url?("https://www.furaffinity.net/gallery/iwbitu/folder/133763/Regular-commissions"))
end
end
end