Files
danbooru/test/functional/static_controller_test.rb

138 lines
3.2 KiB
Ruby

require "test_helper"
class StaticControllerTest < ActionDispatch::IntegrationTest
context "site_map action" do
should "work for anonymous users" do
get site_map_path
assert_response :success
end
should "work for admin users" do
get_auth site_map_path, create(:admin_user)
assert_response :success
end
end
context "sitemap action" do
[Artist, ForumTopic, Pool, Post, Tag, User, WikiPage].each do |klass|
should "work for #{klass.model_name.plural}" do
as(create(:user)) { create_list(klass.model_name.singular.to_sym, 3) }
get sitemap_path(sitemap: klass.model_name.plural), as: :xml
assert_response :success
assert_equal(1, response.parsed_body.css("sitemap loc").size)
end
end
should "work when the sitemap is empty" do
get sitemap_path(sitemap: "pools"), as: :xml
assert_response :success
end
end
context "dtext_help action" do
should "work" do
get dtext_help_path(format: :js), xhr: true
assert_response :success
end
end
context "terms_of_service action" do
should "work" do
get terms_of_service_path
assert_response :success
end
end
context "privacy_policy action" do
should "work" do
get privacy_policy_path
assert_response :success
end
end
context "2257 action" do
should "work" do
get usc_2257_path
assert_response :success
end
end
context "not_found action" do
should "return the 404 page for GET requests" do
get "/qwoiqogieqg"
assert_response 404
end
should "return the 404 page for POST requests" do
post "/qwoiqogieqg"
assert_response 404
end
should "return a JSON response for a 404'd JSON request" do
get "/qwoiqogieqg", as: :json
assert_response 404
assert_equal("Page not found", response.parsed_body["message"])
end
should "return an XML response for a 404'd XML request" do
get "/qwoiqogieqg", as: :xml
assert_response 404
assert_equal("Page not found", response.parsed_body.xpath("result/message").text)
end
should "return a JS response for a 404'd .js request" do
get "/qwoiqogieqg.js"
assert_response 404
assert_equal("", response.body)
end
should "render the 404 page when page_not_found_pool_id is configured" do
as(create(:user)) do
@post = create(:post, tag_string: "artist:bkub")
@pool = create(:pool, post_ids: [@post.id])
Danbooru.config.stubs(:page_not_found_pool_id).returns(@pool.id)
end
get "/qwoiqogieqg"
assert_response 404
assert_select "#c-static #a-not-found img", count: 1
end
end
context "bookmarklet action" do
should "work" do
get bookmarklet_path
assert_response :success
end
end
context "contact action" do
should "work" do
create(:owner_user)
get contact_path
assert_response :success
end
end
context "keyboard_shortcuts action" do
should "work" do
get keyboard_shortcuts_path
assert_response :success
end
end
context "opensearch action" do
should "work" do
get opensearch_path, as: :xml
assert_response :success
end
end
end