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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 876428c8973ea283e568ef39dfc2b723e2f4dbb41872131b09f2de8818b3b8d0
4
- data.tar.gz: 5c596f2c597b8c33d8963438cc05a47c95df7f58d5c0629bd45d2a1d75908513
3
+ metadata.gz: 67bbe37ac2bc5b939fc8be1eb0f7d2e5a30bd59c3c22a6b17555d744b0280848
4
+ data.tar.gz: 8c33e8f57343db49472493005f327ea6f2627bb5352adecd295aca15f74e28ea
5
5
  SHA512:
6
- metadata.gz: cb257cc8d52eea6d7c34ba53b82a6afd57dcb6e0d7b96fc9a64e66d8a60f21fcfba9bda937b6e98d3eb1f2ce78232f948f16cd8f892570737eaeff8ae6bbb423
7
- data.tar.gz: d85e311065dfcab1e152a51f57d308098c03b76530e1956040a43e1e11aa6cd17133a7b13eb74cf2cdaeffe2f3b6389153723b5b3a243b585939b17001858bf6
6
+ metadata.gz: 0af2891926fe85ad564f0c25c4dfd1109ab85861c5bc2f92dbe436ce566f00c0b2298095b09dbe0132d07a83e9dc446a640e3a04c784afcae5bd37e7242edcf8
7
+ data.tar.gz: 28a6abdb78e9fd7d838cd8e24f9037ec3cf42e8a8158614d79e16d51bcc6acf4a0da77c52e10d1818fdbac719599fe0e22f742af8e58c995459334a010410926
@@ -29,4 +29,5 @@ Gem::Specification.new do |spec|
29
29
  spec.add_runtime_dependency 'capybara'
30
30
  spec.add_runtime_dependency 'capybara-screenshot'
31
31
  spec.add_runtime_dependency 'selenium-webdriver'
32
+ spec.add_runtime_dependency 'mail'
32
33
  end
@@ -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
- page.save_screenshot "test/tmp/testname-#{@test_name}-#{Time.now.strftime('%Y%m%d-%H%M%S')}.png", full: true
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.typo3_backend_login
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
- # 7.6
15
- assert page.has_selector?('#typo3-cms-backend-backend-toolbaritems-livesearchtoolbaritem')
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
@@ -1,3 +1,3 @@
1
1
  module CapybaraTypo3Browsertesting
2
- VERSION = "0.1.5"
2
+ VERSION = "0.2.0"
3
3
  end
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.1.5
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-01-29 00:00:00.000000000 Z
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