capybara_typo3_browsertesting 0.1.5 → 0.2.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/capybara_typo3_browsertesting.gemspec +1 -0
- data/lib/capybara_typo3_browsertesting.rb +6 -2
- data/lib/capybara_typo3_browsertesting/init_dependencies.rb +3 -0
- data/lib/capybara_typo3_browsertesting/reports.rb +93 -0
- data/lib/capybara_typo3_browsertesting/shared_test_backend.rb +8 -3
- data/lib/capybara_typo3_browsertesting/shared_test_google_analytics.rb +0 -0
- data/lib/capybara_typo3_browsertesting/shared_test_header.rb +0 -0
- data/lib/capybara_typo3_browsertesting/shared_test_warmup.rb +0 -0
- data/lib/capybara_typo3_browsertesting/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67bbe37ac2bc5b939fc8be1eb0f7d2e5a30bd59c3c22a6b17555d744b0280848
|
4
|
+
data.tar.gz: 8c33e8f57343db49472493005f327ea6f2627bb5352adecd295aca15f74e28ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0af2891926fe85ad564f0c25c4dfd1109ab85861c5bc2f92dbe436ce566f00c0b2298095b09dbe0132d07a83e9dc446a640e3a04c784afcae5bd37e7242edcf8
|
7
|
+
data.tar.gz: 28a6abdb78e9fd7d838cd8e24f9037ec3cf42e8a8158614d79e16d51bcc6acf4a0da77c52e10d1818fdbac719599fe0e22f742af8e58c995459334a010410926
|
@@ -1,9 +1,10 @@
|
|
1
|
+
require 'uri/http'
|
1
2
|
require "capybara_typo3_browsertesting/version"
|
2
3
|
require "capybara_typo3_browsertesting/init_dependencies"
|
3
|
-
|
4
4
|
require "capybara_typo3_browsertesting/shared_test_header"
|
5
5
|
require "capybara_typo3_browsertesting/shared_test_google_analytics"
|
6
6
|
require "capybara_typo3_browsertesting/shared_test_backend"
|
7
|
+
require "capybara_typo3_browsertesting/reports"
|
7
8
|
|
8
9
|
module CapybaraTypo3Browsertesting
|
9
10
|
class << self
|
@@ -35,7 +36,10 @@ module Minitest
|
|
35
36
|
|
36
37
|
def teardown
|
37
38
|
unless passed?
|
38
|
-
|
39
|
+
uri = URI.parse(Capybara.app_host)
|
40
|
+
domain = PublicSuffix.parse(uri.host)
|
41
|
+
system("mkdir -p testout/#{domain}")
|
42
|
+
page.save_screenshot "testout/#{domain}/testname-#{@test_name}-#{Time.now.strftime('%Y%m%d-%H%M%S')}.png", full: true
|
39
43
|
end
|
40
44
|
end
|
41
45
|
end
|
@@ -10,7 +10,10 @@ timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 60 : 30
|
|
10
10
|
|
11
11
|
Capybara.register_driver :chrome do |app|
|
12
12
|
|
13
|
+
prefs = {"profile.managed_default_content_settings.notifications" => 2}
|
14
|
+
|
13
15
|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
|
16
|
+
chrome_options: { prefs: prefs },
|
14
17
|
# This enables access to logs with `page.driver.manage.get_log(:browser)`
|
15
18
|
loggingPrefs: {
|
16
19
|
browser: "ALL",
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require "mail"
|
2
|
+
|
3
|
+
module CapybaraTypo3Browsertesting
|
4
|
+
module Reports
|
5
|
+
|
6
|
+
def create_responsive_report resp_conf, domain, run_method
|
7
|
+
workdir = get_workdir domain
|
8
|
+
i = 1
|
9
|
+
|
10
|
+
resp_conf['pages'].each do|testpage|
|
11
|
+
|
12
|
+
url = "#{resp_conf['base']}#{testpage['url']}"
|
13
|
+
print "visiting: #{url}\n"
|
14
|
+
visit url
|
15
|
+
|
16
|
+
width = page.execute_script("return Math.max(document.body.scrollWidth,document.body.offsetWidth,document.documentElement.clientWidth,document.documentElement.scrollWidth,document.documentElement.offsetWidth);")
|
17
|
+
height = page.execute_script("return Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight);")
|
18
|
+
|
19
|
+
width = 2000 if width > 2000
|
20
|
+
|
21
|
+
window = Capybara.current_session.current_window
|
22
|
+
window.resize_to(width, height)
|
23
|
+
window.maximize
|
24
|
+
|
25
|
+
if(testpage['wait'])
|
26
|
+
sleep testpage['wait'].to_i
|
27
|
+
else
|
28
|
+
sleep resp_conf['default_wait'].to_i
|
29
|
+
end
|
30
|
+
|
31
|
+
iframe_count = 5
|
32
|
+
iframe_count = resp_conf['iframe_count'] if resp_conf.has_key? 'iframe_count'
|
33
|
+
1.upto(iframe_count) do |ii|
|
34
|
+
|
35
|
+
page.driver.switch_to_frame(page.find("#iframe#{ii}"))
|
36
|
+
if run_method
|
37
|
+
send(run_method)
|
38
|
+
end
|
39
|
+
|
40
|
+
clickawaycookie
|
41
|
+
Capybara.current_session.switch_to_window window
|
42
|
+
end
|
43
|
+
|
44
|
+
page.save_screenshot "#{workdir}/page-#{i}.png", full: true
|
45
|
+
i += 1
|
46
|
+
end
|
47
|
+
|
48
|
+
merge_to_pdf resp_conf['jpg_quality'], domain
|
49
|
+
send_report resp_conf['mail'], domain unless resp_conf.has_key? 'skip_headless' and resp_conf['skip_mail']
|
50
|
+
end
|
51
|
+
|
52
|
+
def get_workdir domain
|
53
|
+
workdir = "testout/#{domain}/reponsive"
|
54
|
+
system("mkdir -p #{workdir}")
|
55
|
+
workdir
|
56
|
+
end
|
57
|
+
|
58
|
+
def merge_to_pdf jpg_quality, domain
|
59
|
+
workdir = get_workdir domain
|
60
|
+
system("cd #{workdir} && mogrify -quality #{jpg_quality} -format jpg *.png")
|
61
|
+
system("cd #{workdir} && rm *.png")
|
62
|
+
system("cd #{workdir} && convert *.jpg responsive_report.pdf")
|
63
|
+
system("cd #{workdir} && rm *.jpg")
|
64
|
+
end
|
65
|
+
|
66
|
+
def send_report config, domain
|
67
|
+
|
68
|
+
workdir = get_workdir domain
|
69
|
+
|
70
|
+
options = { :address => config['server'],
|
71
|
+
:port => config['port'],
|
72
|
+
:user_name => config['username'],
|
73
|
+
:password => config['password'],
|
74
|
+
:authentication => 'login',
|
75
|
+
:enable_starttls_auto => true }
|
76
|
+
|
77
|
+
Mail.defaults do
|
78
|
+
delivery_method :smtp, options
|
79
|
+
end
|
80
|
+
|
81
|
+
mail = Mail.new do
|
82
|
+
from config['from']
|
83
|
+
to config['to']
|
84
|
+
subject config['subject']
|
85
|
+
body config['body']
|
86
|
+
add_file :filename => config['report_name'], :content => File.read("#{workdir}/responsive_report.pdf")
|
87
|
+
end
|
88
|
+
|
89
|
+
mail.deliver!
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
end
|
@@ -5,14 +5,19 @@ module CapybaraTypo3Browsertesting
|
|
5
5
|
def test_backend
|
6
6
|
visit '/typo3'
|
7
7
|
|
8
|
+
#t3-username
|
8
9
|
within("#typo3-login-form") do
|
9
|
-
fill_in 't3-username', :with => CapybaraTypo3Browsertesting.
|
10
|
+
fill_in 't3-username', :with => CapybaraTypo3Browsertesting.typo3_frontend_login
|
10
11
|
fill_in 't3-password', :with => CapybaraTypo3Browsertesting.typo3_backend_password
|
11
12
|
end
|
12
13
|
click_button 't3-login-submit'
|
13
14
|
|
14
|
-
|
15
|
-
|
15
|
+
if CapybaraTypo3Browsertesting.typo3_major_version == '7.6'
|
16
|
+
assert page.has_selector?('#typo3-cms-backend-backend-toolbaritems-livesearchtoolbaritem')
|
17
|
+
|
18
|
+
elsif CapybaraTypo3Browsertesting.typo3_major_version == '9.5'
|
19
|
+
assert page.has_selector?('#t3js-modal-backendlocked')
|
20
|
+
end
|
16
21
|
end
|
17
22
|
|
18
23
|
end
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara_typo3_browsertesting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pim Snel
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: mail
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: Shared TYPO3 integration tests.
|
112
126
|
email:
|
113
127
|
- pim@lingewoud.nl
|
@@ -127,6 +141,7 @@ files:
|
|
127
141
|
- capybara_typo3_browsertesting.gemspec
|
128
142
|
- lib/capybara_typo3_browsertesting.rb
|
129
143
|
- lib/capybara_typo3_browsertesting/init_dependencies.rb
|
144
|
+
- lib/capybara_typo3_browsertesting/reports.rb
|
130
145
|
- lib/capybara_typo3_browsertesting/shared_test_backend.rb
|
131
146
|
- lib/capybara_typo3_browsertesting/shared_test_google_analytics.rb
|
132
147
|
- lib/capybara_typo3_browsertesting/shared_test_header.rb
|