capybara_typo3_browsertesting 0.1.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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