X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/473da378b74328b11ded63d5687167fe30d42ae0..420d9da1f98ee167a351828b2f20d3f1f0e164e7:/test/application_system_test_case.rb

diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb
index 581297313..0ddb8a87a 100644
--- a/test/application_system_test_case.rb
+++ b/test/application_system_test_case.rb
@@ -1,21 +1,48 @@
 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?
+ENV.delete("http_proxy")
 
 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], :options => { :timeout => 120 }
+  driven_by :selenium, :using => :headless_firefox do |options|
+    options.add_preference("intl.accept_languages", "en")
+  end
+
+  def before_setup
+    super
+    osm_website_app = create(:oauth_application, :name => "OpenStreetMap Web Site", :scopes => "write_api write_notes")
+    Settings.oauth_application = osm_website_app.uid
+  end
+
+  def after_teardown
+    Settings.reload!
+    super
+  end
+
+  private
+
+  def sign_in_as(user)
+    visit login_path
+    within "form", :text => "Email Address or Username" do
+      fill_in "username", :with => user.email
+      fill_in "password", :with => "test"
+      click_on "Log in"
+    end
+  end
+
+  def sign_out
+    visit logout_path
+    click_on "Logout", :match => :first
+  end
+
+  def within_sidebar(&)
+    within("#sidebar_content", &)
+  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")
+  def within_content_body(&)
+    within("#content > .content-body", &)
   end
 end