Files
danbooru/test/test_helper.rb
evazion 580211ee64 seo: fix canonical tags on post index and show page.
* Fix incorrect canonical tags. Before we were using
  `<meta name="canonical" content="...">`. This is wrong, it should have been
  `<link rel="canonical" href="...">`.

* Add a default canonical tag on all pages. Fixes Google treating the
  same content on different subdomains (safebooru, shima, kagamihara, etc)
  as duplicate content. Also fixes Google sometimes treating similar but
  distinct content on the same domain as duplicate content.
2020-06-27 19:54:11 -05:00

90 lines
2.3 KiB
Ruby

ENV["RAILS_ENV"] = "test"
require 'simplecov'
require_relative "../config/environment"
require 'rails/test_help'
Dir["#{Rails.root}/test/factories/*.rb"].sort.each { |file| require file }
Dir["#{Rails.root}/test/test_helpers/*.rb"].sort.each { |file| require file }
Minitest::Reporters.use!(Minitest::Reporters::ProgressReporter.new)
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :minitest
with.library :rails
end
end
Rails.application.load_seed
class ActiveSupport::TestCase
include ActiveJob::TestHelper
include FactoryBot::Syntax::Methods
extend PostArchiveTestHelper
extend PoolArchiveTestHelper
include ReportbooruHelper
include DownloadTestHelper
include IqdbTestHelper
include UploadTestHelper
mock_post_version_service!
mock_pool_version_service!
parallelize
parallelize_setup do |worker|
Rails.application.load_seed
SimpleCov.command_name "#{SimpleCov.command_name}-#{worker}"
end
parallelize_teardown do |worker|
SimpleCov.result
end
setup do
Socket.stubs(:gethostname).returns("www.example.com")
@temp_dir = Dir.mktmpdir("danbooru-temp-")
storage_manager = StorageManager::Local.new(base_dir: @temp_dir)
Danbooru.config.stubs(:storage_manager).returns(storage_manager)
Danbooru.config.stubs(:backup_storage_manager).returns(StorageManager::Null.new)
end
teardown do
FileUtils.rm_rf(@temp_dir)
Cache.clear
end
def as(user, &block)
CurrentUser.as(user, &block)
end
end
class ActionDispatch::IntegrationTest
extend ControllerHelper
register_encoder :xml, response_parser: ->(body) { Nokogiri.XML(body) }
register_encoder :html, response_parser: ->(body) { Nokogiri.HTML5(body) }
def method_authenticated(method_name, url, user, **options)
post session_path, params: { name: user.name, password: user.password }
send(method_name, url, **options)
end
def get_auth(url, user, **options)
method_authenticated(:get, url, user, **options)
end
def post_auth(url, user, **options)
method_authenticated(:post, url, user, **options)
end
def put_auth(url, user, **options)
method_authenticated(:put, url, user, **options)
end
def delete_auth(url, user, **options)
method_authenticated(:delete, url, user, **options)
end
end