diff --git a/.travis.yml b/.travis.yml index 065c60b2..4c73dd49 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,19 @@ sudo: required -dist: trusty +dist: xenial +addons: + apt: + packages: + - chromium-browser language: ruby cache: bundler rvm: - - 2.5.0@osem --ignore-gemsets branches: except: - /^depfu/.*$/ before_install: - "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc" - - "echo `phantomjs -v`" -addons: - chrome: stable + - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true + - gem install bundler -v $(tail -n 1 Gemfile.lock) notifications: email: on_success: change @@ -23,6 +25,7 @@ notifications: on_failure: change before_script: - RAILS_ENV=test bundle exec rake db:bootstrap --trace + - RAILS_ENV=test bundle exec bin/rails webdrivers:chromedriver:update script: - "./travis_script.sh $TEST_SUITE" env: diff --git a/Dockerfile.base b/Dockerfile.base index c8f45c6c..9e274751 100644 --- a/Dockerfile.base +++ b/Dockerfile.base @@ -1,15 +1,5 @@ FROM opensuse/leap:15 -# Import google packaging key for chrome -COPY google-packaging.key /tmp -RUN rpm --import /tmp/google-packaging.key - -# Enable/Disable the repositories we need/don't need -RUN zypper rr openSUSE-Leap-15.0-Non-Oss openSUSE-Leap-15.0-Update-Non-Oss; \ - zypper ar -f https://download.opensuse.org/repositories/devel:/tools/openSUSE_Leap_15.0/devel:tools.repo; \ - zypper ar -f http://dl.google.com/linux/chrome/rpm/stable/x86_64 google-chrome; \ - zypper --gpg-auto-import-keys refresh - # Install our requirements RUN zypper -n install --no-recommends \ # for compiling assets/gems @@ -23,13 +13,11 @@ RUN zypper -n install --no-recommends \ # for nokogiri libxml2-devel libxslt-devel \ # for the interactive shell - ack curl wget w3m vim \ - # for running our tests - phantomjs which \ + ack curl wget w3m vim which \ # as ruby ruby2.5-devel \ # as browser for feature tests - google-chrome-stable + chromium # Setup sudo RUN echo 'osem ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers diff --git a/Gemfile b/Gemfile index 43fcbbd0..b6dadb1e 100644 --- a/Gemfile +++ b/Gemfile @@ -244,12 +244,11 @@ end group :test do # as test framework gem 'capybara' - gem 'chromedriver-helper' gem 'database_cleaner' gem 'geckodriver-helper' gem 'rspec-rails' - gem 'selenium-webdriver' gem 'transactional_capybara' + gem 'webdrivers' # for measuring test coverage gem 'codecov', require: false # for describing models diff --git a/Gemfile.lock b/Gemfile.lock index 96260113..7d5a65b8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,13 +93,13 @@ GEM builder (3.2.3) byebug (11.0.1) cancancan (2.3.0) - capybara (3.16.2) + capybara (3.26.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) - regexp_parser (~> 1.2) + regexp_parser (~> 1.5) xpath (~> 3.2) carrierwave (1.3.1) activemodel (>= 4.0.0) @@ -112,11 +112,8 @@ GEM case_transform (0.2) activesupport chartkick (3.2.0) - childprocess (0.9.0) - ffi (~> 1.0, >= 1.0.11) - chromedriver-helper (2.1.1) - archive-zip (~> 0.10) - nokogiri (~> 1.8) + childprocess (1.0.1) + rake (< 13.0) chronic (0.10.2) chunky_png (1.3.11) climate_control (0.2.0) @@ -285,7 +282,7 @@ GEM open4 (~> 1.3.4) rake mini_magick (4.9.3) - mini_mime (1.0.1) + mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.11.3) momentjs-rails (2.20.1) @@ -376,7 +373,7 @@ GEM method_source (~> 0.8.1) slop (~> 3.4) psych (3.1.0) - public_suffix (3.0.3) + public_suffix (3.1.1) puma (3.12.1) rack (2.0.7) rack-openid (1.3.1) @@ -449,7 +446,7 @@ GEM recaptcha (4.14.0) json redcarpet (3.4.0) - regexp_parser (1.4.0) + regexp_parser (1.6.0) request_store (1.4.1) rack (>= 1.4) responders (2.4.1) @@ -521,8 +518,8 @@ GEM ffi (~> 1.9) rake selectize-rails (0.12.6) - selenium-webdriver (3.141.0) - childprocess (~> 0.5) + selenium-webdriver (3.142.3) + childprocess (>= 0.5, < 2.0) rubyzip (~> 1.2, >= 1.2.2) sexp_processor (4.11.0) shellany (0.0.1) @@ -591,6 +588,10 @@ GEM activemodel (>= 5.0) bindex (>= 0.4.0) railties (>= 5.0) + webdrivers (4.1.0) + nokogiri (~> 1.6) + rubyzip (~> 1.0) + selenium-webdriver (>= 3.0, < 4.0) webmock (3.5.1) addressable (>= 2.3.6) crack (>= 0.3.2) @@ -626,7 +627,6 @@ DEPENDENCIES carrierwave carrierwave-bombshelter chartkick - chromedriver-helper climate_control cloudinary cocoon @@ -703,7 +703,6 @@ DEPENDENCIES ruby-oembed sass-rails (>= 4.0.2) selectize-rails - selenium-webdriver shoulda-matchers skylight spring-commands-rspec @@ -718,6 +717,7 @@ DEPENDENCIES uglifier (>= 1.3.0) unobtrusive_flash (>= 3) web-console + webdrivers webmock whenever diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index e49e18c6..d568235e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -14,6 +14,8 @@ require File.expand_path('../../config/environment', __FILE__) require 'rspec/rails' require 'shoulda/matchers' +require 'webdrivers' + # To avoid confusion on missed migrations - use Rails 4 checker to ensure # all migrations applied ActiveRecord::Migration.maintain_test_schema! @@ -21,8 +23,6 @@ ActiveRecord::Migration.maintain_test_schema! # Keep capybara and the database on the same page require 'transactional_capybara/rspec' -require 'selenium/webdriver' - # Adds rspec helper provided by paper_trail # makes it easier to control when PaperTrail is enabled during testing. require 'paper_trail/frameworks/rspec'