capybara-box 0.4.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -2
- data/README.md +32 -42
- data/lib/capybara-box.rb +6 -2
- data/lib/capybara-box/base.rb +43 -98
- data/lib/capybara-box/helper.rb +11 -0
- data/lib/capybara-box/screenshot.rb +41 -0
- data/lib/capybara-box/version.rb +1 -1
- metadata +11 -58
- data/spec/lib/capybara_box/base/add_argument_spec.rb +0 -35
- data/spec/lib/capybara_box/base/add_preference_spec.rb +0 -35
- data/spec/lib/capybara_box/base/apply_arguments_spec.rb +0 -33
- data/spec/lib/capybara_box/base/apply_bin_path_spec.rb +0 -34
- data/spec/lib/capybara_box/base/apply_preferences_spec.rb +0 -43
- data/spec/lib/capybara_box/base/apply_version_spec.rb +0 -37
- data/spec/lib/capybara_box/base/arguments_spec.rb +0 -72
- data/spec/lib/capybara_box/base/chrome_family_spec.rb +0 -23
- data/spec/lib/capybara_box/base/chrome_headless_spec.rb +0 -17
- data/spec/lib/capybara_box/base/chrome_spec.rb +0 -17
- data/spec/lib/capybara_box/base/configure_screenshot_spec.rb +0 -83
- data/spec/lib/capybara_box/base/configure_spec.rb +0 -33
- data/spec/lib/capybara_box/base/create_spec.rb +0 -89
- data/spec/lib/capybara_box/base/driver_options_spec.rb +0 -74
- data/spec/lib/capybara_box/base/driver_spec.rb +0 -97
- data/spec/lib/capybara_box/base/firefox_spec.rb +0 -17
- data/spec/lib/capybara_box/base/http_client_options_spec.rb +0 -24
- data/spec/lib/capybara_box/base/http_client_spec.rb +0 -11
- data/spec/lib/capybara_box/base/log_spec.rb +0 -43
- data/spec/lib/capybara_box/base/options_spec.rb +0 -43
- data/spec/lib/capybara_box/base/preferences_spec.rb +0 -63
- data/spec/lib/capybara_box/base/register_spec.rb +0 -17
- data/spec/lib/capybara_box/base/self_configure_spec.rb +0 -22
- data/spec/lib/capybara_box/base/version_spec.rb +0 -33
- data/spec/rails_helper.rb +0 -9
- data/spec/support/common.rb +0 -11
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe CapybaraBox::Base, '.http_client_options' do
|
4
|
-
context 'when :http_client_options is not given' do
|
5
|
-
subject { described_class.new }
|
6
|
-
|
7
|
-
it 'returns the http client options' do
|
8
|
-
expect(subject.http_client_options).to eq(
|
9
|
-
open_timeout: nil,
|
10
|
-
read_timeout: 120
|
11
|
-
)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
context 'when :http_client_options is given' do
|
16
|
-
subject { described_class.new parameters }
|
17
|
-
|
18
|
-
let!(:parameters) { { http_client_options: { key: :value } } }
|
19
|
-
|
20
|
-
it 'is used' do
|
21
|
-
expect(subject.http_client_options).to eq(key: :value)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe CapybaraBox::Base, '.http_client' do
|
4
|
-
before do
|
5
|
-
allow(Selenium::WebDriver::Remote::Http::Default).to receive(:new).with(subject.http_client_options) { :client }
|
6
|
-
end
|
7
|
-
|
8
|
-
it 'returns the default http client' do
|
9
|
-
expect(subject.http_client).to eq :client
|
10
|
-
end
|
11
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.shared_context 'log_disabled' do
|
4
|
-
context 'when is chrome' do
|
5
|
-
before { parameters[:browser] = :chrome }
|
6
|
-
|
7
|
-
it 'does not includes log config' do
|
8
|
-
expect(subject.driver_options[:driver_opts]).to be_nil
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
context 'when is chrome headless' do
|
13
|
-
before { parameters[:browser] = :chrome_headless }
|
14
|
-
|
15
|
-
it 'does not includes log config' do
|
16
|
-
expect(subject.driver_options[:driver_opts]).to be_nil
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
context 'when is firefox' do
|
21
|
-
before { parameters[:browser] = :firefox }
|
22
|
-
|
23
|
-
it 'does not includes log config' do
|
24
|
-
expect(subject.driver_options[:driver_opts]).to be_nil
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
RSpec.describe CapybaraBox::Base, '.log' do
|
30
|
-
subject { described_class.new parameters }
|
31
|
-
|
32
|
-
context 'when log is false' do
|
33
|
-
let!(:parameters) { { log: false } }
|
34
|
-
|
35
|
-
it_behaves_like 'log_disabled'
|
36
|
-
end
|
37
|
-
|
38
|
-
context 'when log is "false"' do
|
39
|
-
let!(:parameters) { { log: 'false' } }
|
40
|
-
|
41
|
-
it_behaves_like 'log_disabled'
|
42
|
-
end
|
43
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe CapybaraBox::Base, '.options' do
|
4
|
-
subject { described_class.configure parameters }
|
5
|
-
|
6
|
-
context 'when is chrome' do
|
7
|
-
let!(:parameters) { { browser: :chrome } }
|
8
|
-
|
9
|
-
let!(:options) do
|
10
|
-
instance_double(Selenium::WebDriver::Chrome::Options).as_null_object
|
11
|
-
end
|
12
|
-
|
13
|
-
before do
|
14
|
-
allow(Selenium::WebDriver::Chrome::Options).to receive(:new).with(no_args) { options }
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'returns a instance of chrome options' do
|
18
|
-
expect(subject.options).to eq options
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
context 'when is chrome headless' do
|
23
|
-
let!(:parameters) { { browser: :chrome_headless } }
|
24
|
-
|
25
|
-
let!(:options) do
|
26
|
-
instance_double(Selenium::WebDriver::Chrome::Options).as_null_object
|
27
|
-
end
|
28
|
-
|
29
|
-
before do
|
30
|
-
allow(Selenium::WebDriver::Chrome::Options).to receive(:new).with(no_args) { options }
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'returns a instance of chrome options' do
|
34
|
-
expect(subject.options).to eq options
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
context 'when is firefox' do
|
39
|
-
let!(:parameters) { { browser: :firefox } }
|
40
|
-
|
41
|
-
specify { expect(subject.options).to be_nil }
|
42
|
-
end
|
43
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe CapybaraBox::Base, '.preferences' do
|
4
|
-
subject { described_class.new parameters }
|
5
|
-
|
6
|
-
let!(:chrome_family_preferences) do
|
7
|
-
{
|
8
|
-
credentials_enable_service: false,
|
9
|
-
|
10
|
-
profile: {
|
11
|
-
password_manager_enabled: false
|
12
|
-
}
|
13
|
-
}
|
14
|
-
end
|
15
|
-
|
16
|
-
context 'when is chrome' do
|
17
|
-
let!(:parameters) { { browser: :chrome } }
|
18
|
-
|
19
|
-
it 'receives the right preferences' do
|
20
|
-
expect(subject.preferences).to eq chrome_family_preferences
|
21
|
-
end
|
22
|
-
|
23
|
-
context 'and :preferences is given' do
|
24
|
-
before { parameters[:preferences] = { key: :value } }
|
25
|
-
|
26
|
-
it 'is used' do
|
27
|
-
expect(subject.preferences).to eq(key: :value)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
context 'when is chrome headless' do
|
33
|
-
let!(:parameters) { { browser: :chrome_headless } }
|
34
|
-
|
35
|
-
it 'receives the right preferences' do
|
36
|
-
expect(subject.preferences).to eq chrome_family_preferences
|
37
|
-
end
|
38
|
-
|
39
|
-
context 'and :preferences is given' do
|
40
|
-
before { parameters[:preferences] = { key: :value } }
|
41
|
-
|
42
|
-
it 'is used' do
|
43
|
-
expect(subject.preferences).to eq(key: :value)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context 'when is firefox' do
|
49
|
-
let!(:parameters) { { browser: :firefox } }
|
50
|
-
|
51
|
-
it 'receives the right preferences' do
|
52
|
-
expect(subject.preferences).to eq({})
|
53
|
-
end
|
54
|
-
|
55
|
-
context 'and :preferences is given' do
|
56
|
-
before { parameters[:preferences] = { key: :value } }
|
57
|
-
|
58
|
-
it 'is used' do
|
59
|
-
expect(subject.preferences).to eq(key: :value)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe CapybaraBox::Base, '.register' do
|
4
|
-
subject { described_class.new }
|
5
|
-
|
6
|
-
let!(:app) { double }
|
7
|
-
|
8
|
-
before do
|
9
|
-
allow(Capybara).to receive(:register_driver).with(:name).and_yield app
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'register the driver with given name' do
|
13
|
-
expect(subject).to receive(:driver).with app
|
14
|
-
|
15
|
-
subject.register :name
|
16
|
-
end
|
17
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe CapybaraBox::Base, '#configure' do
|
4
|
-
let!(:parameters) { { key: :value } }
|
5
|
-
let!(:box) { instance_double(CapybaraBox::Base).as_null_object }
|
6
|
-
|
7
|
-
before do
|
8
|
-
allow(described_class).to receive(:new).with(parameters) { box }
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'creates the box with given parameters' do
|
12
|
-
expect(box).to receive :create
|
13
|
-
|
14
|
-
described_class.configure parameters
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'returns the created box' do
|
18
|
-
expect(described_class.configure(parameters)).to eq box
|
19
|
-
|
20
|
-
described_class.configure parameters
|
21
|
-
end
|
22
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe CapybaraBox::Base, '.version' do
|
4
|
-
subject { described_class.configure parameters }
|
5
|
-
|
6
|
-
context 'when version is given' do
|
7
|
-
let!(:parameters) { { version: '2.30' } }
|
8
|
-
|
9
|
-
context 'and browser is chrome' do
|
10
|
-
before { parameters[:browser] = :chrome }
|
11
|
-
|
12
|
-
it 'applies the version' do
|
13
|
-
expect(subject.version).to eq '2.30'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'and browser is chrome headless' do
|
18
|
-
before { parameters[:browser] = :chrome_headless }
|
19
|
-
|
20
|
-
it 'applies the version' do
|
21
|
-
expect(subject.version).to eq '2.30'
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context 'and browser is not chrome headless' do
|
26
|
-
before { parameters[:browser] = :firefox }
|
27
|
-
|
28
|
-
it 'does not apply the version' do
|
29
|
-
expect(subject.version).to be_nil
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
data/spec/rails_helper.rb
DELETED