From 299afb2963339639beebf500f72a3f93063b47ec Mon Sep 17 00:00:00 2001 From: Nicholas Rutherford Date: Thu, 14 Jul 2022 14:09:09 +0100 Subject: [PATCH] Remove poltergeist support --- Changelog.md | 6 +++ Gemfile | 1 - Gemfile.lock | 11 +--- README.md | 2 +- lib/show_me_the_cookies.rb | 2 - .../adapters/poltergeist.rb | 50 ------------------- lib/show_me_the_cookies/version.rb | 2 +- spec/drivers/poltergeist_spec.rb | 27 ---------- 8 files changed, 9 insertions(+), 92 deletions(-) delete mode 100644 lib/show_me_the_cookies/adapters/poltergeist.rb delete mode 100644 spec/drivers/poltergeist_spec.rb diff --git a/Changelog.md b/Changelog.md index 6f900ee..73fd096 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,9 @@ +# 6.0.0 + +## Breaking change: Poltergeist removed + +It's been obsolete for a while now. If you still need it, you can copy the driver / registration into your app's test code. + # 5.0.1 ## Gem development dependencies diff --git a/Gemfile b/Gemfile index 9699122..43ab514 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,6 @@ gem 'rake' # for releases group :test do gem 'rspec', '~> 3.0' - gem 'poltergeist' gem 'sinatra' gem 'selenium-webdriver' gem 'webdrivers', '~> 4.0' # chromedriver installer diff --git a/Gemfile.lock b/Gemfile.lock index 278af99..b6b94db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -18,7 +18,6 @@ GEM regexp_parser (~> 1.5) xpath (~> 3.2) childprocess (3.0.0) - cliver (0.3.2) diff-lcs (1.3) mini_mime (1.0.2) mini_portile2 (2.5.1) @@ -27,10 +26,6 @@ GEM nokogiri (1.11.4) mini_portile2 (~> 2.5.0) racc (~> 1.4) - poltergeist (1.18.1) - capybara (>= 2.1, < 4) - cliver (~> 0.3.1) - websocket-driver (>= 0.2.0) public_suffix (4.0.6) racc (1.5.2) rack (2.2.3) @@ -68,9 +63,6 @@ GEM nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) - websocket-driver (0.7.1) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) @@ -78,7 +70,6 @@ PLATFORMS ruby DEPENDENCIES - poltergeist rake rspec (~> 3.0) selenium-webdriver @@ -87,4 +78,4 @@ DEPENDENCIES webdrivers (~> 4.0) BUNDLED WITH - 2.0.2 + 2.2.16 diff --git a/README.md b/README.md index 8c893d9..dcc9f2f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Some helpers for poking around at your Capybara driven browser's cookies in integration tests. -Provides drivers for rack-test, [selenium-webdriver](https://rubygems.org/gems/selenium-webdriver), and [Poltergeist](https://github.com/teampoltergeist/poltergeist) (PhantomJS). +Provides drivers for rack-test and [selenium-webdriver](https://rubygems.org/gems/selenium-webdriver). You can add new drivers to your application by implementing an adapter class and calling ShowMeTheCookies.register_adapter in your test code (e.g. a spec/support file). But in that case you might prefer to skip this gem and use your driver's api directly. diff --git a/lib/show_me_the_cookies.rb b/lib/show_me_the_cookies.rb index 6964405..1ea9758 100644 --- a/lib/show_me_the_cookies.rb +++ b/lib/show_me_the_cookies.rb @@ -1,6 +1,5 @@ module ShowMeTheCookies require 'show_me_the_cookies/adapters/rack_test' - require 'show_me_the_cookies/adapters/poltergeist' require 'show_me_the_cookies/adapters/selenium' require 'show_me_the_cookies/adapters/selenium_chrome' @@ -22,7 +21,6 @@ def register_adapter(driver, adapter) register_adapter(:selenium_chrome, ShowMeTheCookies::SeleniumChrome) register_adapter(:selenium_chrome_headless, ShowMeTheCookies::SeleniumChrome) register_adapter(:rack_test, ShowMeTheCookies::RackTest) - register_adapter(:poltergeist, ShowMeTheCookies::Poltergeist) # puts a string summary of the cookie def show_me_the_cookie(cookie_name) diff --git a/lib/show_me_the_cookies/adapters/poltergeist.rb b/lib/show_me_the_cookies/adapters/poltergeist.rb deleted file mode 100644 index a300e33..0000000 --- a/lib/show_me_the_cookies/adapters/poltergeist.rb +++ /dev/null @@ -1,50 +0,0 @@ -module ShowMeTheCookies - class Poltergeist - def initialize(driver) - @browser = driver.browser - @driver = driver - end - - def get_me_the_cookie(name) - cookie = cookies_hash[name.to_s] - translate(cookie) unless cookie.nil? - end - - def get_me_the_cookies - cookies_hash.values.map(&method(:translate)) - end - - def expire_cookies - cookies_hash.each do |name, cookie| - delete_cookie(name) if (cookie.expires rescue nil).nil? - end - end - - def delete_cookie(name) - @browser.remove_cookie(name.to_s) - end - - def create_cookie(name, value, options) - # see: https://github.com/jonleighton/poltergeist#manipulating-cookies - @driver.set_cookie(name, value, options) - end - - private - - def cookies_hash - @browser.cookies - end - - def translate(cookie) - { - :name => cookie.name, - :domain => cookie.domain, - :value => cookie.value, - :expires => (cookie.expires rescue nil), - :path => cookie.path, - :secure => cookie.secure?, - :httponly => cookie.httponly? - } - end - end -end diff --git a/lib/show_me_the_cookies/version.rb b/lib/show_me_the_cookies/version.rb index 56632ab..94d5eb4 100644 --- a/lib/show_me_the_cookies/version.rb +++ b/lib/show_me_the_cookies/version.rb @@ -1,5 +1,5 @@ # change gem version here then use bundler's rake tasks to make a new release # follow semantic versioning http://guides.rubygems.org/patterns/#semantic-versioning module ShowMeTheCookies - VERSION = '5.0.1' + VERSION = '6.0.0' end diff --git a/spec/drivers/poltergeist_spec.rb b/spec/drivers/poltergeist_spec.rb deleted file mode 100644 index 4c46dd3..0000000 --- a/spec/drivers/poltergeist_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -require 'spec_helper' -require 'shared_examples_for_api' -require 'capybara/poltergeist' - -RSpec.describe 'Poltergeist', type: :feature do - before(:each) do - Capybara.current_driver = :poltergeist - end - - describe 'the testing rig' do - it 'should load the sinatra app' do - visit '/' - expect(page).to have_content('Cookie setter ready') - end - end - - describe 'get_me_the_cookie' do - it 'reads httponly option' do - visit '/set_httponly/foo/bar' - expect(get_me_the_cookie('foo')).to include( - name: 'foo', value: 'bar', httponly: true - ) - end - end - - it_behaves_like 'the API' -end