itms_automation 2.1 → 2.2

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: 22ff0afb795d8a0743046146c7c33211f2ba6713b08c8d163100905b15b365e4
4
- data.tar.gz: fbd7065336f40f3891d6c78423804199b71088684c4a8ad55f4538016487bd66
3
+ metadata.gz: b1066a38baafacc29d30b7f1c0f615b617f9f842a99fecc323457eec81309361
4
+ data.tar.gz: a8744479fc22f8b4e8063b90747857d807a8709b9a3c38e1116d9a18607a7d6f
5
5
  SHA512:
6
- metadata.gz: e5f416aaec55dba549728e3083290d5d76064eb6ac88600550dfe9a794add4c08e403934b470eabd97579fa47bf432498626a3b84bad7ebe67102bb1b8bd5e1d
7
- data.tar.gz: 1c1d9ad81b4f11ad8ae83eebdf4ba18e500cd579f5a1a5b61080b68a9da159447d94f8b7b08dc06a72522a10a4dfc1f6f434795e5a5294277a10eef940b8ba27
6
+ metadata.gz: 6e42a121f66d331393f8a3a62f9d6025b31a6613062120a53006b0bfbe1fd5f95e7acd6c364b36f6825cf8fab09b16ee9e256d1fdd7e1c1db715c65fc0cd1362
7
+ data.tar.gz: 7f3760b31ab2dda8f192e2f5f56f69b79b2f80dffc12dc99946257989021f50d4b7f7025d45169735007b5e5ef416a2684c9ada47659defb4fa4e22a7a34ac73
@@ -13,6 +13,10 @@ def set_var(var_name, var_value)
13
13
  eval strEval, $dyn_vars
14
14
  end
15
15
 
16
+ def get_var(var_name)
17
+ $dyn_vars.local_variable_get(var_name)
18
+ end
19
+
16
20
  def check_dynamic_value(value)
17
21
  if !value.is_a? Fixnum
18
22
  if value.include? "params="
@@ -130,8 +134,9 @@ def print_variable(variable)
130
134
  end
131
135
 
132
136
  def duration(start)
133
- current = Time.now
134
- return current - start
137
+ current = Time.now.to_f
138
+ convert_time = Time.at(current - start.to_f).utc.strftime('%Mm%s.%Ls')
139
+ return convert_time
135
140
  end
136
141
 
137
142
  def print_log(status, start, method, *args)
@@ -147,7 +152,7 @@ def print_log(status, start, method, *args)
147
152
  end
148
153
  end
149
154
 
150
- puts "#{icon} Step: #{method}(#{str}) (#{duration(start)})"
155
+ puts "#{icon} Step: #{method}(#{str}) (#{duration(start)})"
151
156
  end
152
157
 
153
158
  def get_object_value(str_obj)
@@ -387,7 +392,7 @@ def get_objects_by_Class(strClass)
387
392
  begin
388
393
  foundElements = page.all("*[@class='#{strClass}']")
389
394
  rescue StandardError => e
390
- raise "Error: #{e.message}"
395
+ raise "Error: #{e.message}"
391
396
  end
392
397
 
393
398
  return foundElements
@@ -398,7 +403,7 @@ def get_objects_by_Name(strName)
398
403
  begin
399
404
  foundElements = page.all("*[@name='#{strName}']")
400
405
  rescue StandardError => e
401
- raise "Error: #{e.message}"
406
+ raise "Error: #{e.message}"
402
407
  end
403
408
 
404
409
  return foundElements
@@ -409,7 +414,7 @@ def get_objects_by_Tagname(strTagname)
409
414
  begin
410
415
  foundElements = page.all("#{strTagname}")
411
416
  rescue StandardError => e
412
- raise "Error: #{e.message}"
417
+ raise "Error: #{e.message}"
413
418
  end
414
419
 
415
420
  return foundElements
@@ -1,3 +1,3 @@
1
1
  module ItmsAutomation
2
- VERSION = "2.1"
2
+ VERSION = "2.2"
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require "net/https"
2
2
  require "rspec"
3
+ require "open-uri"
3
4
 
4
5
  def execute_openbrowser(url_site)
5
6
  start = Time.now
@@ -386,7 +387,7 @@ def get_element_text(element)
386
387
  if foundElement != nil
387
388
  begin
388
389
  result = foundElement.text()
389
- print_log("passed", start, __method__, element, style)
390
+ print_log("passed", start, __method__, element)
390
391
  puts "Text of #{element}: #{result}"
391
392
  rescue StandardError => e
392
393
  print_log("failed", start, __method__, element)
@@ -398,16 +399,16 @@ def get_element_text(element)
398
399
  end
399
400
  end
400
401
 
401
- def get_element_attribute(element, value)
402
+ def get_element_attribute(element)
402
403
  start = Time.now
403
404
  foundElement = find_object(element)
404
405
  if foundElement != nil
405
406
  begin
406
407
  result = foundElement.value()
407
- print_log("passed", start, __method__, element, value)
408
+ print_log("passed", start, __method__, element)
408
409
  puts "Attribute of #{element}: #{result}"
409
410
  rescue StandardError => e
410
- print_log("failed", start, __method__, element, value)
411
+ print_log("failed", start, __method__, element)
411
412
  raise "Error: #{e.message}"
412
413
  end
413
414
  else
@@ -604,3 +605,234 @@ def movemouseandclick(var, element)
604
605
  Selenium::WebDriver::Support::Select.new(page.driver.browser.find_element(:id, "#{var}")).select_by(:text, "#{element}")
605
606
  page.driver.browser.find_element(:id, "#{var}").click
606
607
  end
608
+
609
+ def upload_file(element, file_url)
610
+ start = Time.now
611
+ found_element = find_object(element)
612
+ if found_element != nil
613
+ begin
614
+ file_name = File.basename(file_url)
615
+ FileUtils.mkdir_p("downloads") unless File.exist?("downloads")
616
+ File.open("downloads/#{file_name}", "wb") do |file|
617
+ file.write open(file_url).read
618
+ end
619
+ attach_file(found_element, "downloads/#{file_name}")
620
+ print_log("passed", start, __method__, element, file_url)
621
+ rescue StandardError => e
622
+ print_log("failed", start, __method__, element, file_url)
623
+ raise "Error: #{e.message}"
624
+ end
625
+ else
626
+ print_log("failed", start, __method__, element, file_url)
627
+ raise "Error: Not found object: #{element}"
628
+ end
629
+ end
630
+
631
+ def store_variable(var_name, var_value)
632
+ start = Time.now
633
+ begin
634
+ text = "'" + var_value + "'"
635
+ set_var(var_name, text)
636
+ print_log("passed", start, __method__, var_name, var_value)
637
+ rescue StandardError => e
638
+ print_log("failed", start, __method__, var_name, var_value)
639
+ raise "Error: #{e.message}"
640
+ end
641
+ end
642
+
643
+ def store_text_element(element, var_name)
644
+ start = Time.now
645
+ found_element = find_object(element)
646
+ if found_element != nil
647
+ begin
648
+ var_value = "'" + found_element.text() + "'"
649
+ set_var(var_name, var_value)
650
+ print_log("passed", start, __method__, element, var_name)
651
+ rescue StandardError => e
652
+ print_log("failed", start, __method__, element, var_name)
653
+ raise "Error: #{e.message}"
654
+ end
655
+ else
656
+ print_log("failed", start, __method__, element, var_name)
657
+ raise "Error: Not found object: #{element}"
658
+ end
659
+ end
660
+
661
+ def store_title_current_page(var_name)
662
+ start = Time.now
663
+ begin
664
+ var_value = "'" + page.title + "'"
665
+ set_var(var_name, var_value)
666
+ print_log("passed", start, __method__, var_name)
667
+ rescue StandardError => e
668
+ print_log("failed", start, __method__, var_name)
669
+ raise "Error: #{e.message}"
670
+ end
671
+ end
672
+
673
+ def store_element_value(element, var_name)
674
+ start = Time.now
675
+ found_element = find_object(element)
676
+ if found_element != nil
677
+ begin
678
+ var_value = "'" + found_element.value() + "'"
679
+ set_var(var_name, var_value)
680
+ print_log("passed", start, __method__, element, var_name)
681
+ rescue StandardError => e
682
+ print_log("failed", start, __method__, element, var_name)
683
+ raise "Error: #{e.message}"
684
+ end
685
+ else
686
+ print_log("failed", start, __method__, element, var_name)
687
+ raise "Error: Not found object: #{element}"
688
+ end
689
+ end
690
+
691
+ def store_element_attribute_value(element, attribute, var_name)
692
+ start = Time.now
693
+ found_element = find_object(element)
694
+ if found_element != nil
695
+ begin
696
+ var_value = "'" + found_element[attribute] + "'"
697
+ set_var(var_name, var_value)
698
+ print_log("passed", start, __method__, element, var_name)
699
+ rescue StandardError => e
700
+ print_log("failed", start, __method__, element, var_name)
701
+ raise "Error: #{e.message}"
702
+ end
703
+ else
704
+ print_log("failed", start, __method__, element, var_name)
705
+ raise "Error: Not found object: #{element}"
706
+ end
707
+ end
708
+
709
+ def store_evaluate_script(script, var_name)
710
+ start = Time.now
711
+ begin
712
+ result = page.evaluate_script(<<~JS, script)
713
+ (function(scr){
714
+ return eval(scr);
715
+ })(arguments[0])
716
+ JS
717
+ var_value = "'" + result.to_s + "'"
718
+ set_var(var_name, var_value)
719
+ print_log("passed", start, __method__, script, var_name)
720
+ rescue StandardError => e
721
+ print_log("failed", start, __method__, script, var_name)
722
+ raise "Error: #{e.message}"
723
+ end
724
+ end
725
+
726
+ def check_checkbox_radio(element)
727
+ start = Time.now
728
+ found_element = find_object(element)
729
+ if found_element != nil
730
+ begin
731
+ found_element.check(allow_label_click: true)
732
+ print_log("passed", start, __method__, element)
733
+ rescue StandardError => e
734
+ print_log("failed", start, __method__, element)
735
+ raise "Error: #{e.message}"
736
+ end
737
+ else
738
+ print_log("failed", start, __method__, element)
739
+ raise "Error: Not found object: #{element}"
740
+ end
741
+ end
742
+
743
+ def uncheck_checkbox_radio(element)
744
+ start = Time.now
745
+ found_element = find_object(element)
746
+ if found_element != nil
747
+ begin
748
+ found_element.uncheck(allow_label_click: true)
749
+ print_log("passed", start, __method__, element)
750
+ rescue StandardError => e
751
+ print_log("failed", start, __method__, element)
752
+ raise "Error: #{e.message}"
753
+ end
754
+ else
755
+ print_log("failed", start, __method__, element)
756
+ raise "Error: Not found object: #{element}"
757
+ end
758
+ end
759
+
760
+ def verify_checkbox_radio_checked(element)
761
+ start = Time.now
762
+ found_element = find_object(element)
763
+ if found_element != nil
764
+ begin
765
+ if found_element.checked?
766
+ print_log("passed", start, __method__, element)
767
+ else
768
+ print_log("failed", start, __method__, element)
769
+ end
770
+ rescue StandardError => e
771
+ print_log("failed", start, __method__, element)
772
+ raise "Error: #{e.message}"
773
+ end
774
+ else
775
+ print_log("failed", start, __method__, element)
776
+ raise "Error: Not found object: #{element}"
777
+ end
778
+ end
779
+
780
+ def verify_checkbox_radio_not_checked(element)
781
+ start = Time.now
782
+ found_element = find_object(element)
783
+ if found_element != nil
784
+ begin
785
+ if found_element.checked?
786
+ print_log("failed", start, __method__, element)
787
+ else
788
+ print_log("passed", start, __method__, element)
789
+ end
790
+ rescue StandardError => e
791
+ print_log("failed", start, __method__, element)
792
+ raise "Error: #{e.message}"
793
+ end
794
+ else
795
+ print_log("failed", start, __method__, element)
796
+ raise "Error: Not found object: #{element}"
797
+ end
798
+ end
799
+
800
+ def verify_input_editable(element)
801
+ start = Time.now
802
+ found_element = find_object(element)
803
+ if found_element != nil
804
+ begin
805
+ if found_element.disabled?
806
+ print_log("passed", start, __method__, element)
807
+ else
808
+ print_log("failed", start, __method__, element)
809
+ end
810
+ rescue StandardError => e
811
+ print_log("failed", start, __method__, element)
812
+ raise "Error: #{e.message}"
813
+ end
814
+ else
815
+ print_log("failed", start, __method__, element)
816
+ raise "Error: Not found object: #{element}"
817
+ end
818
+ end
819
+
820
+ def verify_input_not_editable(element)
821
+ start = Time.now
822
+ found_element = find_object(element)
823
+ if found_element != nil
824
+ begin
825
+ if found_element.disabled?
826
+ print_log("failed", start, __method__, element)
827
+ else
828
+ print_log("passed", start, __method__, element)
829
+ end
830
+ rescue StandardError => e
831
+ print_log("failed", start, __method__, element)
832
+ raise "Error: #{e.message}"
833
+ end
834
+ else
835
+ print_log("failed", start, __method__, element)
836
+ raise "Error: Not found object: #{element}"
837
+ end
838
+ end
@@ -1,5 +1,4 @@
1
- @test
2
1
  Feature: demo
3
2
 
4
3
  Scenario: new scenario
5
- Given Go to Test Cycle Sumary of iTMS project
4
+ Given I open the page "http://google.com"
@@ -1,46 +1,3 @@
1
1
  And /I open the page "(.*)"/ do |url_site|
2
2
  execute_openbrowser(url_site)
3
3
  end
4
-
5
- Given /^test select execute$/ do
6
-
7
- execute_openbrowser("https://infodation.atlassian.net/plugins/servlet/ac/Infodation-tms/test-summary?project.key=IFDTMS&project.id=17400")
8
- # execute_settext("username", "cuong")
9
- # execute_click("okbutton")
10
- switch_to_iframe("iframe1")
11
-
12
- execute_click("verify")
13
- sleep(5)
14
- end
15
-
16
- When /^Go to Test Cycle Sumary of iTMS project$/ do
17
- execute_openbrowser("https://infodation.atlassian.net/plugins/servlet/ac/Infodation-tms/test-summary?project.key=IFDTMS&project.id=17400")
18
- sleep(5)
19
- switch_to_iframe("iframe1")
20
- execute_click("itms_cyclesumarylink")
21
- sleep(3)
22
- custom_action
23
- end
24
-
25
-
26
- def custom_action()
27
- begin
28
- browser = Capybara.current_session.driver.browser
29
- if browser.respond_to?(:clear_cookies)
30
- # Rack::MockSession
31
- browser.clear_cookies
32
- print_log("passed", start, _method_)
33
- elsif browser.respond_to?(:manage) and browser.manage.respond_to?(:delete_all_cookies)
34
- # Selenium::WebDriver
35
- browser.manage.delete_all_cookies
36
- print_log("passed", start, _method_)
37
- else
38
- print_log("failed", start, _method_)
39
- raise "Error: Don't know how to clear cookies. Weird driver?"
40
- end
41
- rescue Exception => e
42
- print_log("failed", start, _method_)
43
- raise "Error: #{e.message}"
44
- end
45
-
46
- end
@@ -1,26 +1,2 @@
1
- username: { xpath_selector: '//input[@id="login"]' }
2
- okbutton: { xpath_selector: '//input[@value="Check Inbox"]' }
3
- iframe: { xpath_selector: '//*[@class="ap-iframe-container iframe-init"]' }
4
- iframe1: { xpath_selector: '//iframe[contains(@id,"Infodation-tms__test-summary_")]' }
5
- verify: { xpath_selector: '//*[@id="aui-uid-1"]' }
6
- firstname:
7
- {
8
- xpath_selector: '/html/body/div[2]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[2]/td[2]',
9
- }
10
- lastname:
11
- {
12
- xpath_selector: '/html/body/div[2]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[3]/td[2]/input',
13
- }
14
- selectcountry:
15
- {
16
- xpath_selector: '/html/body/div[2]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[11]/td[2]/select',
17
- }
18
- loginjira_continuebutton: {xpath_selector: "//button[@id=\"login-submit\"]/span/span/span"}
19
- loginjira_password: {xpath_selector: "//input[@id=\"password\"]"}
20
- loginjira_username: {xpath_selector: "//input[@id=\"username\"]"}
21
- itms_cyclesumarylink: {xpath_selector: "//section[@id=\"content\"]//li[@class=\"menu-item\"]/a"}
22
- itms_createnewtestcyclebutton: {xpath_selector: "//button[@id=\"itms-sidebar-addnew-button\"]"}
23
- itms_createtestcycle_savebutton: {xpath_selector: "//button[@id=\"itms-dialog-confirm\"]"}
24
- itms_createtestcyle_alertmessage: {xpath_selector: "//section[@id=\"ITMS-dialog-cycle\"]//strong"}
25
- itms_clickheretocreatetestcycle: {xpath_selector: "//section[@class=\"aui-buttons\"]/button[3]/span"}
26
- itms_iframe_testsumary: { xpath_selector: '//iframe[contains(@id,"Infodation-tms__test-summary_")]' }
1
+ signupbutton: {xpath_selector: '//li[@class="mm-listitem"]//a[@href="#"][contains(text(),"T")]'}
2
+
@@ -5,5 +5,6 @@ require "capybara/cucumber"
5
5
  require "cucumber"
6
6
  require "yaml"
7
7
  require "selenium-webdriver"
8
+ require "colorize"
8
9
  require "itms_automation"
9
10
  require "report_builder"
@@ -12,7 +12,6 @@ AfterConfiguration do
12
12
  browser = Capybara.current_session.driver.browser
13
13
  browser.manage.delete_all_cookies
14
14
  end
15
-
16
15
  end
17
16
 
18
17
  def validate_params_exist
@@ -31,7 +30,7 @@ def getDriver
31
30
  when "chrome"
32
31
  @chrome_options = loadYAMLfile('config/chrome_options.yaml')
33
32
  Capybara.register_driver :selenium do |app|
34
- Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'],:desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: @chrome_options))
33
+ Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'],:desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: @chrome_options))
35
34
  end
36
35
  Capybara.current_driver = :selenium
37
36
  when "firefox"
@@ -52,26 +51,24 @@ def getDriver
52
51
  Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'], :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.internet_explorer(ieOptions: @ie_options))
53
52
  end
54
53
  Capybara.current_driver = :selenium
55
- # when "chrome_headless"
56
- # @chrome_headless_options = loadYAMLfile('config/chrome_headless_options.yaml')
57
- # Capybara.register_driver :selenium do |app|
58
- # Capybara::Selenium::Driver.new(app, :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: @chrome_headless_options))
59
- # end
60
- # Capybara.current_driver = :selenium_headless
61
- # when "firefox_headless"
62
- # @firefox_headless_options = loadYAMLfile('config/firefox_options.yaml')
63
- # Capybara.register_driver :selenium do |app|
64
- # Capybara::Selenium::Driver.new(app, :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.firefox(firefoxOptions: @firefox_headless_options))
65
- # end
66
- # Capybara.current_driver = :selenium_headless
54
+ when "chrome_headless"
55
+ @chrome_headless_options = loadYAMLfile('config/chrome_headless_options.yaml')
56
+ Capybara.register_driver :selenium do |app|
57
+ Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'], :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: @chrome_headless_options))
58
+ end
59
+ Capybara.current_driver = :selenium
67
60
  when "remote"
68
61
  @capabilities = loadYAMLfile('config/remote_options.yaml')
69
62
  Capybara.register_driver :selenium do |app|
70
63
  Capybara::Selenium::Driver.new(app, :url => ENV['SERVER_URL'], :desired_capabilities => @capabilities)
71
64
  end
72
65
  Capybara.current_driver = :selenium
73
- else
74
- raise "❌ ERROR: Unsupported browser: #{ENV['BROWSER']}. Available: chrome || firefox || safari || ie || remote"
66
+ else
67
+ raise "❌ ERROR: Unsupported browser: #{ENV['BROWSER']}. Available: chrome || chrome headless || firefox || safari || ie || remote"
68
+ end
69
+ unless ENV["SCREEN_RESOLUTION"].nil?
70
+ screen_resolution = ENV["SCREEN_RESOLUTION"].split("x")
71
+ Capybara.page.current_window.resize_to(screen_resolution[0], screen_resolution[1])
75
72
  end
76
73
  end
77
74
 
@@ -98,6 +95,7 @@ After do |scenario|
98
95
  # end
99
96
  # $browser_data = page.driver.browser.capabilities
100
97
  # p "$browser_data:#{$browser_data.inspect}"
98
+ FileUtils.rm_rf(Dir.glob('downloads/*'))
101
99
  end
102
100
 
103
101
  at_exit do
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itms_automation
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.1'
4
+ version: '2.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anh Pham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-24 00:00:00.000000000 Z
11
+ date: 2020-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 3.6.0
20
17
  - - "~>"
21
18
  - !ruby/object:Gem::Version
22
19
  version: '3.6'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.6.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 3.6.0
30
27
  - - "~>"
31
28
  - !ruby/object:Gem::Version
32
29
  version: '3.6'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.6.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: cucumber
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -62,22 +62,22 @@ dependencies:
62
62
  name: rspec
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: 3.8.0
68
65
  - - "~>"
69
66
  - !ruby/object:Gem::Version
70
67
  version: '3.8'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 3.8.0
71
71
  type: :runtime
72
72
  prerelease: false
73
73
  version_requirements: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: 3.8.0
78
75
  - - "~>"
79
76
  - !ruby/object:Gem::Version
80
77
  version: '3.8'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 3.8.0
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: parallel_tests
83
83
  requirement: !ruby/object:Gem::Requirement
@@ -102,20 +102,20 @@ dependencies:
102
102
  name: report_builder
103
103
  requirement: !ruby/object:Gem::Requirement
104
104
  requirements:
105
- - - ">="
105
+ - - "~>"
106
106
  - !ruby/object:Gem::Version
107
107
  version: '1.8'
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '1.8'
111
111
  type: :runtime
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '1.8'
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
120
  version: '1.8'
121
121
  - !ruby/object:Gem::Dependency
@@ -155,7 +155,6 @@ files:
155
155
  - lib/itms_automation/version.rb
156
156
  - lib/itms_automation/web_steps_helper.rb
157
157
  - project/Gemfile
158
- - project/Gemfile.lock
159
158
  - project/README.md
160
159
  - project/Rakefile
161
160
  - project/config/chrome_headless_options.yaml
@@ -190,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
189
  - !ruby/object:Gem::Version
191
190
  version: '0'
192
191
  requirements: []
193
- rubygems_version: 3.0.6
192
+ rubygems_version: 3.1.2
194
193
  signing_key:
195
194
  specification_version: 4
196
195
  summary: SELENIUM WEBDRIVER WITH RUBY & CUCUMBER
@@ -1,92 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- addressable (2.7.0)
5
- public_suffix (>= 2.0.2, < 5.0)
6
- backports (3.15.0)
7
- builder (3.2.3)
8
- capybara (3.29.0)
9
- addressable
10
- mini_mime (>= 0.1.3)
11
- nokogiri (~> 1.8)
12
- rack (>= 1.6.0)
13
- rack-test (>= 0.6.3)
14
- regexp_parser (~> 1.5)
15
- xpath (~> 3.2)
16
- childprocess (3.0.0)
17
- colorize (0.8.1)
18
- cucumber (3.1.2)
19
- builder (>= 2.1.2)
20
- cucumber-core (~> 3.2.0)
21
- cucumber-expressions (~> 6.0.1)
22
- cucumber-wire (~> 0.0.1)
23
- diff-lcs (~> 1.3)
24
- gherkin (~> 5.1.0)
25
- multi_json (>= 1.7.5, < 2.0)
26
- multi_test (>= 0.1.2)
27
- cucumber-core (3.2.1)
28
- backports (>= 3.8.0)
29
- cucumber-tag_expressions (~> 1.1.0)
30
- gherkin (~> 5.0)
31
- cucumber-expressions (6.0.1)
32
- cucumber-tag_expressions (1.1.1)
33
- cucumber-wire (0.0.1)
34
- cucumber_priority (0.3.2)
35
- cucumber
36
- diff-lcs (1.3)
37
- gherkin (5.1.0)
38
- itms_automation (1.5)
39
- capybara (~> 3.29.0)
40
- colorize (~> 0.8.1)
41
- cucumber (~> 3.1)
42
- cucumber_priority (~> 0.3.2)
43
- parallel_tests (~> 2.7, >= 2.7.1)
44
- report_builder (~> 1.8, >= 1.8)
45
- rspec (~> 3.8, >= 3.8.0)
46
- selenium-webdriver (~> 3.6, >= 3.6.0)
47
- json (2.3.0)
48
- mini_mime (1.0.2)
49
- mini_portile2 (2.4.0)
50
- multi_json (1.14.0)
51
- multi_test (0.1.2)
52
- nokogiri (1.10.7)
53
- mini_portile2 (~> 2.4.0)
54
- parallel (1.19.1)
55
- parallel_tests (2.29.2)
56
- parallel
57
- public_suffix (4.0.3)
58
- rack (2.0.7)
59
- rack-test (1.1.0)
60
- rack (>= 1.0, < 3)
61
- regexp_parser (1.6.0)
62
- report_builder (1.8)
63
- json (>= 1.8.1)
64
- rspec (3.9.0)
65
- rspec-core (~> 3.9.0)
66
- rspec-expectations (~> 3.9.0)
67
- rspec-mocks (~> 3.9.0)
68
- rspec-core (3.9.1)
69
- rspec-support (~> 3.9.1)
70
- rspec-expectations (3.9.0)
71
- diff-lcs (>= 1.2.0, < 2.0)
72
- rspec-support (~> 3.9.0)
73
- rspec-mocks (3.9.1)
74
- diff-lcs (>= 1.2.0, < 2.0)
75
- rspec-support (~> 3.9.0)
76
- rspec-support (3.9.2)
77
- rubyzip (2.0.0)
78
- selenium-webdriver (3.142.6)
79
- childprocess (>= 0.5, < 4.0)
80
- rubyzip (>= 1.2.2)
81
- xpath (3.2.0)
82
- nokogiri (~> 1.8)
83
-
84
- PLATFORMS
85
- ruby
86
-
87
- DEPENDENCIES
88
- itms_automation
89
- report_builder
90
-
91
- BUNDLED WITH
92
- 2.0.2