Use described_class in specs
This commit is contained in:
parent
ed1f5c8d8f
commit
1cfbfea150
|
@ -145,9 +145,6 @@ RSpec/MultipleExpectations:
|
|||
RSpec/ContextWording:
|
||||
Enabled: false
|
||||
|
||||
RSpec/DescribedClass:
|
||||
Enabled: false
|
||||
|
||||
RSpec/NestedGroups:
|
||||
Enabled: false
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ require 'spec_helper'
|
|||
RSpec.describe Capybara do
|
||||
describe '.string' do
|
||||
let :string do
|
||||
Capybara.string <<-STRING
|
||||
described_class.string <<-STRING
|
||||
<html>
|
||||
<head>
|
||||
<title>simple_node</title>
|
||||
|
@ -52,7 +52,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
it 'allows using custom matchers' do
|
||||
Capybara.add_selector :lifeform do
|
||||
described_class.add_selector :lifeform do
|
||||
xpath { |name| ".//option[contains(.,'#{name}')]" }
|
||||
end
|
||||
expect(string).to have_selector(:id, 'page')
|
||||
|
@ -62,7 +62,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
it 'allows custom matcher using css' do
|
||||
Capybara.add_selector :section do
|
||||
described_class.add_selector :section do
|
||||
css { |css_class| "section .#{css_class}" }
|
||||
end
|
||||
expect(string).to have_selector(:section, 'subsection')
|
||||
|
@ -112,13 +112,13 @@ RSpec.describe Capybara do
|
|||
|
||||
it 'drops illegal fragments when using gumbo' do
|
||||
skip 'libxml is less strict than Gumbo' unless Nokogiri.respond_to?(:HTML5)
|
||||
expect(Capybara.string('<td>1</td>')).not_to have_css('td')
|
||||
expect(described_class.string('<td>1</td>')).not_to have_css('td')
|
||||
end
|
||||
|
||||
it 'can disable use of gumbo' do
|
||||
skip "Test doesn't make sense unlesss nokogumbo is loaded" unless Nokogiri.respond_to?(:HTML5)
|
||||
Capybara.allow_gumbo = false
|
||||
expect(Capybara.string('<td>1</td>')).to have_css('td')
|
||||
described_class.allow_gumbo = false
|
||||
expect(described_class.string('<td>1</td>')).to have_css('td')
|
||||
end
|
||||
|
||||
describe '#title' do
|
||||
|
|
|
@ -4,20 +4,20 @@ require 'spec_helper'
|
|||
|
||||
RSpec.describe Capybara do
|
||||
describe 'default_max_wait_time' do
|
||||
before { @previous_default_time = Capybara.default_max_wait_time }
|
||||
before { @previous_default_time = described_class.default_max_wait_time }
|
||||
|
||||
after { Capybara.default_max_wait_time = @previous_default_time } # rubocop:disable RSpec/InstanceVariable
|
||||
after { described_class.default_max_wait_time = @previous_default_time } # rubocop:disable RSpec/InstanceVariable
|
||||
|
||||
it 'should be changeable' do
|
||||
expect(Capybara.default_max_wait_time).not_to eq(5)
|
||||
Capybara.default_max_wait_time = 5
|
||||
expect(Capybara.default_max_wait_time).to eq(5)
|
||||
expect(described_class.default_max_wait_time).not_to eq(5)
|
||||
described_class.default_max_wait_time = 5
|
||||
expect(described_class.default_max_wait_time).to eq(5)
|
||||
end
|
||||
end
|
||||
|
||||
describe '.register_driver' do
|
||||
it 'should add a new driver' do
|
||||
Capybara.register_driver :schmoo do |app|
|
||||
described_class.register_driver :schmoo do |app|
|
||||
Capybara::RackTest::Driver.new(app)
|
||||
end
|
||||
session = Capybara::Session.new(:schmoo, TestApp)
|
||||
|
@ -28,85 +28,85 @@ RSpec.describe Capybara do
|
|||
|
||||
describe '.register_server' do
|
||||
it 'should add a new server' do
|
||||
Capybara.register_server :blob do |_app, _port, _host|
|
||||
described_class.register_server :blob do |_app, _port, _host|
|
||||
# do nothing
|
||||
end
|
||||
|
||||
expect(Capybara.servers).to have_key(:blob)
|
||||
expect(described_class.servers).to have_key(:blob)
|
||||
end
|
||||
end
|
||||
|
||||
describe '.server' do
|
||||
after do
|
||||
Capybara.server = :default
|
||||
described_class.server = :default
|
||||
end
|
||||
|
||||
it 'should default to a proc that calls run_default_server' do
|
||||
mock_app = Object.new
|
||||
allow(Capybara).to receive(:run_default_server).and_return(true)
|
||||
Capybara.server.call(mock_app, 8000)
|
||||
expect(Capybara).to have_received(:run_default_server).with(mock_app, 8000)
|
||||
allow(described_class).to receive(:run_default_server).and_return(true)
|
||||
described_class.server.call(mock_app, 8000)
|
||||
expect(described_class).to have_received(:run_default_server).with(mock_app, 8000)
|
||||
end
|
||||
|
||||
it 'should return a custom server proc' do
|
||||
server = ->(_app, _port) {}
|
||||
Capybara.register_server :custom, &server
|
||||
Capybara.server = :custom
|
||||
expect(Capybara.server).to eq(server)
|
||||
described_class.register_server :custom, &server
|
||||
described_class.server = :custom
|
||||
expect(described_class.server).to eq(server)
|
||||
end
|
||||
|
||||
it 'should have :webrick registered' do
|
||||
expect(Capybara.servers[:webrick]).not_to be_nil
|
||||
expect(described_class.servers[:webrick]).not_to be_nil
|
||||
end
|
||||
|
||||
it 'should have :puma registered' do
|
||||
expect(Capybara.servers[:puma]).not_to be_nil
|
||||
expect(described_class.servers[:puma]).not_to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe 'server=' do
|
||||
after do
|
||||
Capybara.server = :default
|
||||
described_class.server = :default
|
||||
end
|
||||
|
||||
it 'accepts a proc' do
|
||||
server = ->(_app, _port) {}
|
||||
Capybara.server = server
|
||||
expect(Capybara.server).to eq server
|
||||
described_class.server = server
|
||||
expect(described_class.server).to eq server
|
||||
end
|
||||
end
|
||||
|
||||
describe 'app_host' do
|
||||
after do
|
||||
Capybara.app_host = nil
|
||||
described_class.app_host = nil
|
||||
end
|
||||
|
||||
it 'should warn if not a valid URL' do
|
||||
expect { Capybara.app_host = 'www.example.com' }.to raise_error(ArgumentError, /Capybara\.app_host should be set to a url/)
|
||||
expect { described_class.app_host = 'www.example.com' }.to raise_error(ArgumentError, /Capybara\.app_host should be set to a url/)
|
||||
end
|
||||
|
||||
it 'should not warn if a valid URL' do
|
||||
expect { Capybara.app_host = 'http://www.example.com' }.not_to raise_error
|
||||
expect { described_class.app_host = 'http://www.example.com' }.not_to raise_error
|
||||
end
|
||||
|
||||
it 'should not warn if nil' do
|
||||
expect { Capybara.app_host = nil }.not_to raise_error
|
||||
expect { described_class.app_host = nil }.not_to raise_error
|
||||
end
|
||||
end
|
||||
|
||||
describe 'default_host' do
|
||||
around do |test|
|
||||
old_default = Capybara.default_host
|
||||
old_default = described_class.default_host
|
||||
test.run
|
||||
Capybara.default_host = old_default
|
||||
described_class.default_host = old_default
|
||||
end
|
||||
|
||||
it 'should raise if not a valid URL' do
|
||||
expect { Capybara.default_host = 'www.example.com' }.to raise_error(ArgumentError, /Capybara\.default_host should be set to a url/)
|
||||
expect { described_class.default_host = 'www.example.com' }.to raise_error(ArgumentError, /Capybara\.default_host should be set to a url/)
|
||||
end
|
||||
|
||||
it 'should not warn if a valid URL' do
|
||||
expect { Capybara.default_host = 'http://www.example.com' }.not_to raise_error
|
||||
expect { described_class.default_host = 'http://www.example.com' }.not_to raise_error
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,11 +4,11 @@ require 'spec_helper'
|
|||
|
||||
RSpec.describe Capybara::Selector::FilterSet do
|
||||
after do
|
||||
Capybara::Selector::FilterSet.remove(:test)
|
||||
described_class.remove(:test)
|
||||
end
|
||||
|
||||
it 'allows node filters' do
|
||||
fs = Capybara::Selector::FilterSet.add(:test) do
|
||||
fs = described_class.add(:test) do
|
||||
node_filter(:node_test, :boolean) { |_node, _value| true }
|
||||
expression_filter(:expression_test, :boolean) { |_expr, _value| true }
|
||||
end
|
||||
|
@ -18,7 +18,7 @@ RSpec.describe Capybara::Selector::FilterSet do
|
|||
end
|
||||
|
||||
it 'allows expression filters' do
|
||||
fs = Capybara::Selector::FilterSet.add(:test) do
|
||||
fs = described_class.add(:test) do
|
||||
node_filter(:node_test, :boolean) { |_node, _value| true }
|
||||
expression_filter(:expression_test, :boolean) { |_expr, _value| true }
|
||||
end
|
||||
|
@ -28,7 +28,7 @@ RSpec.describe Capybara::Selector::FilterSet do
|
|||
end
|
||||
|
||||
it 'allows node filter and expression filter with the same name' do
|
||||
fs = Capybara::Selector::FilterSet.add(:test) do
|
||||
fs = described_class.add(:test) do
|
||||
node_filter(:test, :boolean) { |_node, _value| true }
|
||||
expression_filter(:test, :boolean) { |_expr, _value| true }
|
||||
end
|
||||
|
@ -37,7 +37,7 @@ RSpec.describe Capybara::Selector::FilterSet do
|
|||
end
|
||||
|
||||
it 'allows `filter` as an alias of `node_filter`' do
|
||||
fs = Capybara::Selector::FilterSet.add(:test) do
|
||||
fs = described_class.add(:test) do
|
||||
filter(:node_test, :boolean) { |_node, _value| true }
|
||||
end
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ require 'selenium-webdriver'
|
|||
RSpec.describe Capybara::Selenium::Driver do
|
||||
it 'should exit with a non-zero exit status' do
|
||||
options = { browser: (ENV['SELENIUM_BROWSER'] || :firefox).to_sym }
|
||||
browser = Capybara::Selenium::Driver.new(TestApp, options).browser
|
||||
browser = described_class.new(TestApp, options).browser
|
||||
expect(browser).to be_truthy
|
||||
expect(true).to eq(false) # rubocop:disable RSpec/ExpectActual
|
||||
end
|
||||
|
|
|
@ -6,7 +6,7 @@ require 'selenium-webdriver'
|
|||
RSpec.describe Capybara::Selenium::Driver do
|
||||
it 'should exit with a zero exit status' do
|
||||
options = { browser: (ENV['SELENIUM_BROWSER'] || :firefox).to_sym }
|
||||
browser = Capybara::Selenium::Driver.new(TestApp, options).browser
|
||||
browser = described_class.new(TestApp, options).browser
|
||||
expect(browser).to be_truthy
|
||||
expect(true).to eq(true) # rubocop:disable RSpec/ExpectActual
|
||||
end
|
||||
|
|
|
@ -155,27 +155,27 @@ RSpec.describe Capybara::RackTest::Driver do
|
|||
|
||||
describe ':headers option' do
|
||||
it 'should always set headers' do
|
||||
driver = Capybara::RackTest::Driver.new(TestApp, headers: { 'HTTP_FOO' => 'foobar' })
|
||||
driver = described_class.new(TestApp, headers: { 'HTTP_FOO' => 'foobar' })
|
||||
driver.visit('/get_header')
|
||||
expect(driver.html).to include('foobar')
|
||||
end
|
||||
|
||||
it 'should keep headers on link clicks' do
|
||||
driver = Capybara::RackTest::Driver.new(TestApp, headers: { 'HTTP_FOO' => 'foobar' })
|
||||
driver = described_class.new(TestApp, headers: { 'HTTP_FOO' => 'foobar' })
|
||||
driver.visit('/header_links')
|
||||
driver.find_xpath('.//a').first.click
|
||||
expect(driver.html).to include('foobar')
|
||||
end
|
||||
|
||||
it 'should keep headers on form submit' do
|
||||
driver = Capybara::RackTest::Driver.new(TestApp, headers: { 'HTTP_FOO' => 'foobar' })
|
||||
driver = described_class.new(TestApp, headers: { 'HTTP_FOO' => 'foobar' })
|
||||
driver.visit('/header_links')
|
||||
driver.find_xpath('.//input').first.click
|
||||
expect(driver.html).to include('foobar')
|
||||
end
|
||||
|
||||
it 'should keep headers on redirects' do
|
||||
driver = Capybara::RackTest::Driver.new(TestApp, headers: { 'HTTP_FOO' => 'foobar' })
|
||||
driver = described_class.new(TestApp, headers: { 'HTTP_FOO' => 'foobar' })
|
||||
driver.visit('/get_header_via_redirect')
|
||||
expect(driver.html).to include('foobar')
|
||||
end
|
||||
|
@ -183,7 +183,7 @@ RSpec.describe Capybara::RackTest::Driver do
|
|||
|
||||
describe ':follow_redirects option' do
|
||||
it 'defaults to following redirects' do
|
||||
driver = Capybara::RackTest::Driver.new(TestApp)
|
||||
driver = described_class.new(TestApp)
|
||||
|
||||
driver.visit('/redirect')
|
||||
expect(driver.response.header['Location']).to be_nil
|
||||
|
@ -191,7 +191,7 @@ RSpec.describe Capybara::RackTest::Driver do
|
|||
end
|
||||
|
||||
it 'is possible to not follow redirects' do
|
||||
driver = Capybara::RackTest::Driver.new(TestApp, follow_redirects: false)
|
||||
driver = described_class.new(TestApp, follow_redirects: false)
|
||||
|
||||
driver.visit('/redirect')
|
||||
expect(driver.response.header['Location']).to match %r{/redirect_again$}
|
||||
|
@ -201,7 +201,7 @@ RSpec.describe Capybara::RackTest::Driver do
|
|||
|
||||
describe ':redirect_limit option' do
|
||||
context 'with default redirect limit' do
|
||||
let(:driver) { Capybara::RackTest::Driver.new(TestApp) }
|
||||
let(:driver) { described_class.new(TestApp) }
|
||||
|
||||
it 'should follow 5 redirects' do
|
||||
driver.visit('/redirect/5/times')
|
||||
|
@ -216,7 +216,7 @@ RSpec.describe Capybara::RackTest::Driver do
|
|||
end
|
||||
|
||||
context 'with 21 redirect limit' do
|
||||
let(:driver) { Capybara::RackTest::Driver.new(TestApp, redirect_limit: 21) }
|
||||
let(:driver) { described_class.new(TestApp, redirect_limit: 21) }
|
||||
|
||||
it 'should follow 21 redirects' do
|
||||
driver.visit('/redirect/21/times')
|
||||
|
@ -251,6 +251,6 @@ RSpec.describe Capybara::RackTest::CSSHandlers do
|
|||
include CSSHandlerIncludeTester
|
||||
|
||||
it 'should not be extended by global includes' do
|
||||
expect(Capybara::RackTest::CSSHandlers.new).not_to respond_to(:dont_extend_css_handler)
|
||||
expect(described_class.new).not_to respond_to(:dont_extend_css_handler)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ require 'spec_helper'
|
|||
RSpec.describe Capybara do
|
||||
describe 'Selectors' do
|
||||
let :string do
|
||||
Capybara.string <<-STRING
|
||||
described_class.string <<-STRING
|
||||
<html>
|
||||
<head>
|
||||
<title>selectors</title>
|
||||
|
@ -69,12 +69,12 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
before do
|
||||
Capybara.add_selector :custom_selector do
|
||||
described_class.add_selector :custom_selector do
|
||||
css { |css_class| "div.#{css_class}" }
|
||||
node_filter(:not_empty, boolean: true, default: true, skip_if: :all) { |node, value| value ^ (node.text == '') }
|
||||
end
|
||||
|
||||
Capybara.add_selector :custom_css_selector do
|
||||
described_class.add_selector :custom_css_selector do
|
||||
css(:name, :other_name) do |selector, name: nil, **|
|
||||
selector ||= ''
|
||||
selector += "[name='#{name}']" if name
|
||||
|
@ -94,7 +94,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
end
|
||||
|
||||
Capybara.add_selector :custom_xpath_selector do
|
||||
described_class.add_selector :custom_xpath_selector do
|
||||
xpath(:valid1, :valid2) { |selector| selector }
|
||||
match { |value| value == 'match_me' }
|
||||
end
|
||||
|
@ -102,7 +102,7 @@ RSpec.describe Capybara do
|
|||
|
||||
it 'supports `filter` as an alias for `node_filter`' do
|
||||
expect do
|
||||
Capybara.add_selector :filter_alias_selector do
|
||||
described_class.add_selector :filter_alias_selector do
|
||||
css { |_unused| 'div' }
|
||||
filter(:something) { |_node, _value| true }
|
||||
end
|
||||
|
@ -111,7 +111,7 @@ RSpec.describe Capybara do
|
|||
|
||||
describe 'adding a selector' do
|
||||
it 'can set default visiblity' do
|
||||
Capybara.add_selector :hidden_field do
|
||||
described_class.add_selector :hidden_field do
|
||||
visible :hidden
|
||||
css { |_sel| 'input[type="hidden"]' }
|
||||
end
|
||||
|
@ -125,7 +125,7 @@ RSpec.describe Capybara do
|
|||
it 'allows modifying a selector' do
|
||||
el = string.find(:custom_selector, 'aa')
|
||||
expect(el.tag_name).to eq 'div'
|
||||
Capybara.modify_selector :custom_selector do
|
||||
described_class.modify_selector :custom_selector do
|
||||
css { |css_class| "h1.#{css_class}" }
|
||||
end
|
||||
el = string.find(:custom_selector, 'aa')
|
||||
|
@ -133,7 +133,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
it "doesn't change existing filters" do
|
||||
Capybara.modify_selector :custom_selector do
|
||||
described_class.modify_selector :custom_selector do
|
||||
css { |css_class| "p.#{css_class}" }
|
||||
end
|
||||
expect(string).to have_selector(:custom_selector, 'bb', count: 1)
|
||||
|
@ -164,7 +164,7 @@ RSpec.describe Capybara do
|
|||
|
||||
describe 'xpath' do
|
||||
it 'uses filter names passed in' do
|
||||
Capybara.add_selector :test do
|
||||
described_class.add_selector :test do
|
||||
xpath(:something, :other) { |_locator| XPath.descendant }
|
||||
end
|
||||
selector = Capybara::Selector.new :test, config: nil, format: nil
|
||||
|
@ -173,7 +173,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
it 'gets filter names from block if none passed to xpath method' do
|
||||
Capybara.add_selector :test do
|
||||
described_class.add_selector :test do
|
||||
xpath { |_locator, valid3:, valid4: nil| "#{valid3} #{valid4}" }
|
||||
end
|
||||
selector = Capybara::Selector.new :test, config: nil, format: nil
|
||||
|
@ -182,7 +182,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
it 'ignores block parameters if names passed in' do
|
||||
Capybara.add_selector :test do
|
||||
described_class.add_selector :test do
|
||||
xpath(:valid1) { |_locator, valid3:, valid4: nil| "#{valid3} #{valid4}" }
|
||||
end
|
||||
selector = Capybara::Selector.new :test, config: nil, format: nil
|
||||
|
@ -205,7 +205,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
it 'uses filter names passed in' do
|
||||
Capybara.add_selector :test do
|
||||
described_class.add_selector :test do
|
||||
css(:name, :other_name) { |_locator| '' }
|
||||
end
|
||||
selector = Capybara::Selector.new :test, config: nil, format: nil
|
||||
|
@ -214,7 +214,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
it 'gets filter names from block if none passed to css method' do
|
||||
Capybara.add_selector :test do
|
||||
described_class.add_selector :test do
|
||||
css { |_locator, valid3:, valid4: nil| "#{valid3} #{valid4}" }
|
||||
end
|
||||
selector = Capybara::Selector.new :test, config: nil, format: nil
|
||||
|
@ -223,7 +223,7 @@ RSpec.describe Capybara do
|
|||
end
|
||||
|
||||
it 'ignores block parameters if names passed in' do
|
||||
Capybara.add_selector :test do
|
||||
described_class.add_selector :test do
|
||||
css(:valid1) { |_locator, valid3:, valid4: nil| "#{valid3} #{valid4}" }
|
||||
end
|
||||
selector = Capybara::Selector.new :test, config: nil, format: nil
|
||||
|
@ -477,7 +477,7 @@ RSpec.describe Capybara do
|
|||
|
||||
describe ':link_or_button selector' do
|
||||
around(:all) do |example|
|
||||
Capybara.modify_selector(:link_or_button) do
|
||||
described_class.modify_selector(:link_or_button) do
|
||||
expression_filter(:random) { |xpath, _| xpath } # do nothing filter
|
||||
end
|
||||
example.run
|
||||
|
|
|
@ -106,7 +106,7 @@ RSpec.describe 'Capybara::Session with firefox' do # rubocop:disable RSpec/Multi
|
|||
end
|
||||
|
||||
RSpec.describe Capybara::Selenium::Driver do
|
||||
let(:driver) { Capybara::Selenium::Driver.new(TestApp, browser: :firefox, options: browser_options) }
|
||||
let(:driver) { described_class.new(TestApp, browser: :firefox, options: browser_options) }
|
||||
|
||||
describe '#quit' do
|
||||
it 'should reset browser when quit' do
|
||||
|
|
|
@ -5,7 +5,7 @@ require 'spec_helper'
|
|||
RSpec.describe Capybara::Server do
|
||||
it 'should spool up a rack server' do
|
||||
app = proc { |_env| [200, {}, ['Hello Server!']] }
|
||||
server = Capybara::Server.new(app).boot
|
||||
server = described_class.new(app).boot
|
||||
|
||||
res = Net::HTTP.start(server.host, server.port) { |http| http.get('/') }
|
||||
|
||||
|
@ -14,7 +14,7 @@ RSpec.describe Capybara::Server do
|
|||
|
||||
it 'should do nothing when no server given' do
|
||||
expect do
|
||||
Capybara::Server.new(nil).boot
|
||||
described_class.new(nil).boot
|
||||
end.not_to raise_error
|
||||
end
|
||||
|
||||
|
@ -26,12 +26,12 @@ RSpec.describe Capybara::Server do
|
|||
app = proc { |_env| [200, {}, ['Hello Server!']] }
|
||||
|
||||
Capybara.server_host = '127.0.0.1'
|
||||
server = Capybara::Server.new(app).boot
|
||||
server = described_class.new(app).boot
|
||||
res = Net::HTTP.get(URI("http://127.0.0.1:#{server.port}"))
|
||||
expect(res).to eq('Hello Server!')
|
||||
|
||||
Capybara.server_host = '0.0.0.0'
|
||||
server = Capybara::Server.new(app).boot
|
||||
server = described_class.new(app).boot
|
||||
res = Net::HTTP.get(URI("http://127.0.0.1:#{server.port}"))
|
||||
expect(res).to eq('Hello Server!')
|
||||
ensure
|
||||
|
@ -43,7 +43,7 @@ RSpec.describe Capybara::Server do
|
|||
Capybara.server_port = 22789
|
||||
|
||||
app = proc { |_env| [200, {}, ['Hello Server!']] }
|
||||
server = Capybara::Server.new(app).boot
|
||||
server = described_class.new(app).boot
|
||||
|
||||
res = Net::HTTP.start(server.host, 22789) { |http| http.get('/') }
|
||||
expect(res.body).to include('Hello Server')
|
||||
|
@ -53,7 +53,7 @@ RSpec.describe Capybara::Server do
|
|||
|
||||
it 'should use given port' do
|
||||
app = proc { |_env| [200, {}, ['Hello Server!']] }
|
||||
server = Capybara::Server.new(app, port: 22790).boot
|
||||
server = described_class.new(app, port: 22790).boot
|
||||
|
||||
res = Net::HTTP.start(server.host, 22790) { |http| http.get('/') }
|
||||
expect(res.body).to include('Hello Server')
|
||||
|
@ -66,7 +66,7 @@ RSpec.describe Capybara::Server do
|
|||
apps = responses.map do |response|
|
||||
proc { |_env| [200, {}, [response]] }
|
||||
end
|
||||
servers = apps.map { |app| Capybara::Server.new(app).boot }
|
||||
servers = apps.map { |app| described_class.new(app).boot }
|
||||
|
||||
servers.each_with_index do |server, idx|
|
||||
result = Net::HTTP.start(server.host, server.port) { |http| http.get('/') }
|
||||
|
@ -76,7 +76,7 @@ RSpec.describe Capybara::Server do
|
|||
|
||||
it 'should return its #base_url' do
|
||||
app = proc { |_env| [200, {}, ['Hello Server!']] }
|
||||
server = Capybara::Server.new(app).boot
|
||||
server = described_class.new(app).boot
|
||||
uri = ::Addressable::URI.parse(server.base_url)
|
||||
expect(uri.to_hash).to include(scheme: 'http', host: server.host, port: server.port)
|
||||
end
|
||||
|
@ -87,7 +87,7 @@ RSpec.describe Capybara::Server do
|
|||
cert = File.join(Dir.pwd, 'spec', 'fixtures', 'certificate.pem')
|
||||
Capybara.server = :puma, { Host: "ssl://#{Capybara.server_host}?key=#{key}&cert=#{cert}" }
|
||||
app = proc { |_env| [200, {}, ['Hello SSL Server!']] }
|
||||
server = Capybara::Server.new(app).boot
|
||||
server = described_class.new(app).boot
|
||||
|
||||
expect do
|
||||
Net::HTTP.start(server.host, server.port, max_retries: 0) { |http| http.get('/__identify__') }
|
||||
|
@ -121,7 +121,7 @@ RSpec.describe Capybara::Server do
|
|||
it 'should use the existing server if it already running' do
|
||||
app = proc { |_env| [200, {}, ['Hello Server!']] }
|
||||
|
||||
servers = Array.new(2) { Capybara::Server.new(app).boot }
|
||||
servers = Array.new(2) { described_class.new(app).boot }
|
||||
|
||||
servers.each do |server|
|
||||
res = Net::HTTP.start(server.host, server.port) { |http| http.get('/') }
|
||||
|
@ -141,8 +141,8 @@ RSpec.describe Capybara::Server do
|
|||
[200, {}, ['Hello Server!']]
|
||||
end
|
||||
|
||||
server1 = Capybara::Server.new(app).boot
|
||||
server2 = Capybara::Server.new(app).boot
|
||||
server1 = described_class.new(app).boot
|
||||
server2 = described_class.new(app).boot
|
||||
|
||||
expect do
|
||||
start_request(server1, 1.0)
|
||||
|
@ -166,7 +166,7 @@ RSpec.describe Capybara::Server do
|
|||
it 'should not reuse an already running server' do
|
||||
app = proc { |_env| [200, {}, ['Hello Server!']] }
|
||||
|
||||
servers = Array.new(2) { Capybara::Server.new(app).boot }
|
||||
servers = Array.new(2) { described_class.new(app).boot }
|
||||
|
||||
servers.each do |server|
|
||||
res = Net::HTTP.start(server.host, server.port) { |http| http.get('/') }
|
||||
|
@ -186,8 +186,8 @@ RSpec.describe Capybara::Server do
|
|||
[200, {}, ['Hello Server!']]
|
||||
end
|
||||
|
||||
server1 = Capybara::Server.new(app).boot
|
||||
server2 = Capybara::Server.new(app).boot
|
||||
server1 = described_class.new(app).boot
|
||||
server2 = described_class.new(app).boot
|
||||
|
||||
expect do
|
||||
start_request(server1, 1.0)
|
||||
|
@ -210,7 +210,7 @@ RSpec.describe Capybara::Server do
|
|||
Capybara.server = :kaboom
|
||||
|
||||
expect do
|
||||
Capybara::Server.new(proc { |e| }).boot
|
||||
described_class.new(proc { |e| }).boot
|
||||
end.to raise_error(RuntimeError, 'kaboom')
|
||||
ensure
|
||||
Capybara.server = :default
|
||||
|
@ -219,7 +219,7 @@ RSpec.describe Capybara::Server do
|
|||
|
||||
it 'is not #responsive? when Net::HTTP raises a SystemCallError' do
|
||||
app = -> { [200, {}, ['Hello, world']] }
|
||||
server = Capybara::Server.new(app)
|
||||
server = described_class.new(app)
|
||||
allow(Net::HTTP).to receive(:start).and_raise(SystemCallError.allocate)
|
||||
expect(server.responsive?).to eq false
|
||||
end
|
||||
|
@ -234,7 +234,7 @@ RSpec.describe Capybara::Server do
|
|||
response = Net::HTTPSuccess.allocate
|
||||
allow(response).to receive(:body).and_return app.object_id.to_s
|
||||
allow(Net::HTTP).to receive(:start).with(anything, anything, hash_including(use_ssl: true)).and_return(response).once
|
||||
Capybara::Server.new(app).boot
|
||||
described_class.new(app).boot
|
||||
expect(Net::HTTP).to have_received(:start).exactly(3).times
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,13 +6,13 @@ RSpec.describe Capybara::Session do
|
|||
context '#new' do
|
||||
it 'should raise an error if passed non-existent driver' do
|
||||
expect do
|
||||
Capybara::Session.new(:quox, TestApp).driver
|
||||
described_class.new(:quox, TestApp).driver
|
||||
end.to raise_error(Capybara::DriverNotFoundError)
|
||||
end
|
||||
|
||||
it 'verifies a passed app is a rack app' do
|
||||
expect do
|
||||
Capybara::Session.new(:unknown, random: 'hash')
|
||||
described_class.new(:unknown, random: 'hash')
|
||||
end.to raise_error TypeError, 'The second parameter to Session::new should be a rack app if passed.'
|
||||
end
|
||||
end
|
||||
|
@ -75,14 +75,14 @@ RSpec.describe Capybara::Session do
|
|||
|
||||
context 'quit' do
|
||||
it 'will reset the driver' do
|
||||
session = Capybara::Session.new(:rack_test, TestApp)
|
||||
session = described_class.new(:rack_test, TestApp)
|
||||
driver = session.driver
|
||||
session.quit
|
||||
expect(session.driver).not_to eql driver
|
||||
end
|
||||
|
||||
it 'resets the document' do
|
||||
session = Capybara::Session.new(:rack_test, TestApp)
|
||||
session = described_class.new(:rack_test, TestApp)
|
||||
document = session.document
|
||||
session.quit
|
||||
expect(session.document.base).not_to eql document.base
|
||||
|
|
Loading…
Reference in New Issue