qat-web 6.1.1 → 7.0.1

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: e6f1ec8c446b1ea163550341bd6a2ef66265e21bd9dd6d2991e32f43b3d9507c
4
- data.tar.gz: 41939bd3fa32fd3dd08dd666309c32a23b900abbad3ee3629ddd8689eaab9192
3
+ metadata.gz: 0a7fc27f04467c3f761672ec57c2007529b67f0d7de28381d553088f82334ff8
4
+ data.tar.gz: 8796cdf363c255e27ad62b3c3021f3a167716f02eb2d9c59dfafce69d5b9907e
5
5
  SHA512:
6
- metadata.gz: added5734bfe8e227f27598c3a581c397f8a5a1b8cd9b345f3dac0b1ea318db1eaa80ad34fd4a4516b60b5acfee5eccc43c5b5c6e2391e36d9e46f503fc4113b
7
- data.tar.gz: 14d5cde76a68f5f5d2e6f80d6550f8aebdc988666e42809bc5eea20e688f44a2d7e56d30de0763ffb0819ba010710296beab173d38ebd010bfe862368771a89b
6
+ metadata.gz: 756778a83ec785faa5f40c6430595d265bb8fd1eed7f935fc3aae6c1175c0b271b9e0f53726776839107ead2d3be8d90f01723ee1d3135073deb058bc0f9b464
7
+ data.tar.gz: 8bb3e2dc3af755e3720293655e666b5fc09a87cde7d5ee74c684037a0618484758a1fe0071bedb8e84ed08fc863c0f42c87355639615ddc22fb302ab39db0370
@@ -17,23 +17,36 @@ module QAT::Web
17
17
  #@return [String/NilClass] File path to where the HTML dump file was saved or nil if the browser doesn't support HTML dumps
18
18
  #@since 1.0.0
19
19
  def take_html_dump(page=Capybara.current_session, path=html_dump_path)
20
- log.info { "Saving HTML dump to #{path}" }
21
20
  raise ArgumentError.new "File #{path} already exists! Choose another filename" if ::File.exists? path
22
- path = page.save_page path
21
+ log.info { "Saving HTML dump to #{path}" }
22
+ path = read_html_dump page ,path
23
23
  log.info { "HTML dump available" }
24
- ::File.basename(path)
24
+ path
25
25
  rescue Capybara::NotSupportedByDriverError
26
26
  log.warn { "Driver #{page.mode} does not support HTML dumps!" }
27
27
  return nil
28
28
  end
29
29
 
30
+
31
+ ##Helper for reading file, in cucumber 6 this could be reverted to path directly
32
+ def read_html_dump page, dump_path
33
+ file = page.save_page dump_path
34
+ dump_path_read = File.open file
35
+ dump_path_read.read
36
+ end
37
+
30
38
  #Default HTML dump path. Can be set with {#html_dump_path=}.
31
39
  #@return [String] HTML dump path
32
40
  #@since 1.0.0
41
+
33
42
  def html_dump_path
34
43
  @html_dump_path || ::File.join('public', "browser_#{Time.new.strftime("%H%M%S%L")}.html")
35
44
  end
36
45
 
46
+ def html_dump_filename
47
+ File.basename(@html_dump_path)
48
+ end
49
+
37
50
  #Set new default HTML dump path.
38
51
  #@param path [String] HTML dump path
39
52
  #@since 1.0.0
@@ -16,17 +16,27 @@ module QAT::Web
16
16
  #@param path [String] File path to save screenshot file
17
17
  #@return [String/NilClass]File path to where the screenshot file was saved or nil if the browser doesn't support screenshots
18
18
  #@since 1.0.0
19
- def take_screenshot page=Capybara.current_session, path=screenshot_path
20
- log.info {"Saving screenshot to #{path}"}
19
+ def take_screenshot page = Capybara.current_session , path = screenshot_path
20
+ log.info { "Saving screenshot to #{path}" }
21
21
  raise ArgumentError.new "File #{path} already exists! Choose another filename" if ::File.exists? path
22
- path = page.save_screenshot path
23
- log.info {"Screenshot available"}
22
+ path = read_screenshot_file page, path
23
+ log.info { "Screenshot available" }
24
24
  path
25
25
  rescue Capybara::NotSupportedByDriverError
26
26
  log.warn {"Driver #{page.mode} does not support screenshots!"}
27
27
  return nil
28
28
  end
29
29
 
30
+ ##Helper for reading file, in cucumber 6 this could be reverted to path directly
31
+ def read_screenshot_file page, image_path
32
+ file = page.save_screenshot image_path
33
+ File.open file
34
+ end
35
+
36
+ def screenshot_filename
37
+ File.basename(@screenshot_path)
38
+ end
39
+
30
40
  #Default screenshot path. Can be set with {#screenshot_path=}.
31
41
  #@return [String] Screenshot path
32
42
  #@since 1.0.0
@@ -1,32 +1,57 @@
1
1
  require_relative '../../../lib/qat/web/version'
2
2
  require 'fileutils'
3
+ require 'gemnasium/parser'
4
+
3
5
  module QAT::Web
4
6
  #Module for the various generators used in the CLI utility
5
7
  #@since 6.1.0
6
8
  module Generator
7
9
  include FileUtils
8
10
  extend FileUtils
9
-
10
11
  # Adds a files QAT Web module to the current project
11
12
  def add_module(stdout, opts)
12
-
13
13
  stdout.puts "Adding files to project" if opts[:verbose]
14
- cp_r ::File.join(::File.dirname(__FILE__), 'generator', 'project', '.'), Dir.pwd, opts
15
- ::File.write('Gemfile', <<-GEMFILE, mode: 'a')
16
-
17
14
 
15
+ # Read GemFile of new project
16
+ path = File.join(Dir.pwd, 'Gemfile')
17
+ has_qatweb = verify_gems path, 'qat-web', verbose: opts[:verbose]
18
+ if has_qatweb
19
+ puts "Module already integrated"
20
+ else
21
+ add_gem_dependency path, 'qat-web', verbose: opts[:verbose], version: QAT::Web::VERSION
22
+ add_gem_dependency path, 'headless', verbose: opts[:verbose]
23
+ add_gem_dependency path, 'selenium-webdriver', verbose: opts[:verbose]
24
+ cp_r ::File.join(::File.dirname(__FILE__), 'generator', 'project', '.'), Dir.pwd, opts
25
+ end
26
+ end
27
+
28
+ def verify_gems (gemfile_path, gem, opts = {})
29
+ file = File.read(gemfile_path)
30
+ gemfile = Gemnasium::Parser.gemfile(file)
31
+ dependencies = gemfile.dependencies
32
+ found_gem = dependencies.find {|i| i.name == gem}
33
+ puts "Found gem: #{found_gem}"
34
+ puts "gem #{gem} found? #{!found_gem.nil?}" if opts[:verbose]
35
+
36
+ if found_gem
37
+ return true
38
+ else
39
+ return false
40
+ end
41
+ end
18
42
 
19
- # QAT-Web is a browser controller for Web testing (https://github.com/readiness-it/qat-web)
20
- gem 'qat-web', '~> 6.1'
43
+ def add_gem_dependency (gemfile_path, gem, opts = {})
44
+ version = opts[:version]
45
+ line = "\n\ngem '#{gem}'#{version ? ", '>= #{version}'" : ''}"
46
+ puts "adding dependencies #{gem} to Gemfile" if opts[:verbose]
47
+ write_to_gemfile gemfile_path, line
48
+ end
21
49
 
22
- # Ruby headless display interface (http://leonid.shevtsov.me/en/headless)
23
- gem 'headless' #optional
24
50
 
25
- # The next generation developer focused tool for automated testing of webapps (https://github.com/seleniumhq/selenium)
26
- gem 'selenium-webdriver' #optional
27
- GEMFILE
51
+ def write_to_gemfile filename, line
52
+ ::File.write(filename, line, mode: 'a')
28
53
  end
29
54
 
30
- module_function :add_module
55
+ module_function :add_module, :write_to_gemfile, :add_gem_dependency, :verify_gems
31
56
  end
32
57
  end
@@ -15,7 +15,10 @@ After do |scenario|
15
15
  if scenario.failed?
16
16
  if QAT::Web::Exceptions::HTML_DUMP.any? { |exception| scenario.exception.kind_of?(exception) }
17
17
  # Embeds an existing HTML dump to Cucumber's HTML report
18
- embed(QAT::Web::Browser::HTMLDump.take_html_dump, 'text/plain', 'HTML dump')
18
+ # This attach the content of the file in this case the attach method appears it doesn't allow atm to embed a file link as before
19
+ # attach(QAT::Web::Browser::HTMLDump.take_html_dump, 'text/html')
20
+ # Only saving the content to the public folder
21
+ QAT::Web::Browser::HTMLDump.take_html_dump
19
22
  end
20
23
  end
21
24
  end
@@ -14,7 +14,7 @@ end
14
14
  After do |scenario|
15
15
  if scenario.failed?
16
16
  if QAT::Web::Exceptions::SCREENSHOT.any? { |exception| scenario.exception.kind_of?(exception) }
17
- embed QAT::Web::Browser::Screenshot.take_screenshot, 'image/png', 'Screenshot'
17
+ attach QAT::Web::Browser::Screenshot.take_screenshot, 'image/png'
18
18
  end
19
19
  end
20
20
  end
@@ -4,6 +4,6 @@ module QAT
4
4
  #@since 1.0.0
5
5
  module Web
6
6
  # Represents QAT-Web's version
7
- VERSION = '6.1.1'
7
+ VERSION = '7.0.1'
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qat-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.1
4
+ version: 7.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - QAT
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-04 00:00:00.000000000 Z
11
+ date: 2021-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: qat-cucumber
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: 7.0.4
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '6.0'
26
+ version: 7.0.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: qat-devel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '6.0'
33
+ version: '8.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '6.0'
40
+ version: '8.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: headless
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -126,14 +126,14 @@ dependencies:
126
126
  requirements:
127
127
  - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: '6.0'
129
+ version: '8.0'
130
130
  type: :runtime
131
131
  prerelease: false
132
132
  version_requirements: !ruby/object:Gem::Requirement
133
133
  requirements:
134
134
  - - "~>"
135
135
  - !ruby/object:Gem::Version
136
- version: '6.0'
136
+ version: '8.0'
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: little-plugger
139
139
  requirement: !ruby/object:Gem::Requirement
@@ -196,6 +196,20 @@ dependencies:
196
196
  - - ">="
197
197
  - !ruby/object:Gem::Version
198
198
  version: '0'
199
+ - !ruby/object:Gem::Dependency
200
+ name: gemnasium-parser
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ type: :runtime
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
199
213
  description: |2
200
214
  QAT-Web is a browser controller for Web testing, with support for various browsers and webdrivers.
201
215
  Includes various classes for easier planning and implementation of web interactions, using the Page Objects Pattern.
@@ -281,15 +295,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
281
295
  requirements:
282
296
  - - "~>"
283
297
  - !ruby/object:Gem::Version
284
- version: '2.4'
298
+ version: '2.5'
285
299
  required_rubygems_version: !ruby/object:Gem::Requirement
286
300
  requirements:
287
301
  - - ">="
288
302
  - !ruby/object:Gem::Version
289
303
  version: '0'
290
304
  requirements: []
291
- rubyforge_project:
292
- rubygems_version: 2.7.7
305
+ rubygems_version: 3.0.8
293
306
  signing_key:
294
307
  specification_version: 4
295
308
  summary: QAT-Web is a browser controller for Web testing