Normally when an en-GB.yml translation is missing, rails falls back to en.yml. But when using the submit helpers, if the en-GB translation is missing, rails knows how to create a fallback like 'Create {model_name}' without touching the en.yml file. This string might then be different from what the test expects, e.g. 'Add Comment'. So it's important to set the language headers, to avoid phantomjs from picking up your desktop preferences in this specific case.
27 lines
933 B
Ruby
27 lines
933 B
Ruby
require "test_helper"
|
|
require "capybara/poltergeist"
|
|
|
|
# Work around weird debian/ubuntu phantomjs
|
|
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=817277
|
|
# https://github.com/ariya/phantomjs/issues/14376
|
|
ENV["QT_QPA_PLATFORM"] = "phantom" if IO.popen(["phantomjs", "--version"], :err => :close).read.empty?
|
|
|
|
ActiveSupport.on_load(:action_dispatch_system_test_case) do
|
|
ActionDispatch::SystemTesting::Server.silence_puma = true
|
|
end
|
|
|
|
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
|
|
driven_by :poltergeist, :screen_size => [1400, 1400]
|
|
|
|
def initialize(*args)
|
|
stub_request(:get, "https://api.hostip.info/country.php?ip=127.0.0.1")
|
|
.to_return(:status => 404)
|
|
super(*args)
|
|
end
|
|
|
|
# Phantomjs can pick up browser Accept-Language preferences from your desktop environment.
|
|
# We don't want this to happen during the tests!
|
|
setup do
|
|
page.driver.add_headers("Accept-Language" => "en")
|
|
end
|
|
end
|