web4cucumber 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: 5458ad437c834399d9a3f2481f2d04a55a944f21
4
- data.tar.gz: ecc2582351b01cf5c8ac0474b556c64d2c629be2
3
+ metadata.gz: f4ad351ac2b8da43d6e8b8921ea89c45daf4ed20
4
+ data.tar.gz: 2a7e12e29bad39f31bc674ab32224aaaf6e70c87
5
5
  SHA512:
6
- metadata.gz: 7a9e1aebe37d794ff8e562cd5c068606b63cbd63537c0ecd6eced5aea0e5138c9e63d5ae9f94b9a4512aea8ea4dffdbe783fbea6ff18290ab0e8af918a0cae56
7
- data.tar.gz: af4c1a5c32ad340d60c0ee824b9f3954d9edf4e0984362750f2ecae05e1230442d4730a74519fff65b1c17ce6951146d087aaa3767570beb826f3275561ab4f4
6
+ metadata.gz: 57c3e99545d0334bf001b969142889428e53342e6e2cc6492383d1e73a5449712f3a5cdc055f2ae0022422898084d3f8c99285158c47a3ff297503eef8583410
7
+ data.tar.gz: 55fc9079cb9df2347a00f812048562a36f5f6888382a279f22137f247d21337732eb0d83984fffa71eaefa13d80cbf1fe49c3141232c0e85fbc0e6fa6705c4c3
@@ -4,7 +4,6 @@ gem 'cucumber'
4
4
  gem 'watir-webdriver'
5
5
  gem 'web4cucumber'
6
6
  gem 'rspec-expectations'
7
- gem 'debugger'
8
7
  gem 'byebug'
9
8
  gem 'headless'
10
9
  gem 'pry'
@@ -2,22 +2,20 @@ GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
4
  builder (3.2.2)
5
+ byebug (2.7.0)
6
+ columnize (~> 0.3)
7
+ debugger-linecache (~> 1.2)
5
8
  childprocess (0.5.5)
6
9
  ffi (~> 1.0, >= 1.0.11)
7
10
  coderay (1.1.0)
8
- columnize (0.8.9)
11
+ columnize (0.9.0)
9
12
  cucumber (1.3.19)
10
13
  builder (>= 2.1.2)
11
14
  diff-lcs (>= 1.1.3)
12
15
  gherkin (~> 2.12)
13
16
  multi_json (>= 1.7.5, < 2.0)
14
17
  multi_test (>= 0.1.2)
15
- debugger (1.6.8)
16
- columnize (>= 0.3.1)
17
- debugger-linecache (~> 1.2.0)
18
- debugger-ruby_core_source (~> 1.3.5)
19
18
  debugger-linecache (1.2.0)
20
- debugger-ruby_core_source (1.3.5)
21
19
  diff-lcs (1.2.5)
22
20
  ffi (1.9.6)
23
21
  gherkin (2.12.2)
@@ -42,18 +40,21 @@ GEM
42
40
  slop (3.5.0)
43
41
  watir-webdriver (0.6.11)
44
42
  selenium-webdriver (>= 2.18.0)
45
- web4cuke (0.0.1)
43
+ web4cucumber (0.0.2)
44
+ byebug (~> 2.7)
45
+ headless (~> 1.0)
46
+ watir-webdriver (~> 0.6)
46
47
  websocket (1.2.1)
47
48
 
48
49
  PLATFORMS
49
50
  ruby
50
51
 
51
52
  DEPENDENCIES
53
+ byebug
52
54
  cucumber
53
- debugger
54
55
  headless
55
56
  json
56
57
  pry
57
58
  rspec-expectations
58
59
  watir-webdriver
59
- web4cuke
60
+ web4cucumber
@@ -5,8 +5,3 @@ Feature: example.feature
5
5
  Scenario: Login to Openshift web console
6
6
  Given I am logged in to OpenShift web console
7
7
  Then the url should contain "app/account"
8
- When I run my beautiful action with:
9
- |option |value |
10
- |field_one_on_page_one |some text |
11
- |field_two_on_page_one | some other text|
12
- |field_one_on_page_two| lib/files/myfile |
@@ -1,6 +1,6 @@
1
1
  Given /^I am logged in to OpenShift web console$/ do
2
2
  options = {}
3
- options[:login] = ENV["OPENSHIFT_USER"]
3
+ options[:login] = ENV["OPENSHIFT_LOGIN"]
4
4
  options[:password] = ENV["OPENSHIFT_PASSWORD"]
5
5
  @result = @web.login(options)
6
6
  expect(@result[:result]).to be_true, "Failed to log in"
@@ -11,13 +11,3 @@ Then /^the url should contain "(.*?)"$/ do |urlpart|
11
11
  expect(url.include?(urlpart)).to be_true, "Failed to find #{urlpart} in page url"
12
12
 
13
13
  end
14
-
15
- When /^I run my beautiful action with:$/ do |table|
16
- options = {}
17
- table.rows.each do |row|
18
- options[row[0].to_sym] = row[1]
19
- end
20
- @result = @web.run_action(:our_test_action, options)
21
- end
22
-
23
-
data/lib/web4cucumber.rb CHANGED
@@ -484,7 +484,7 @@ class Web4Cucumber
484
484
  return @result
485
485
  end
486
486
  end
487
- return new_cookies
487
+ return new_cookies
488
488
  end
489
489
  if opt == 'delete_all'
490
490
  unless @cookies.clear
@@ -515,7 +515,10 @@ class Web4Cucumber
515
515
  # elements should be an array of hashes, for example:
516
516
  # [{:a=>{:class=>"block"}}, {:a=>{:href=>"/products"}}, {:a=>{:text=>"Log In"}}]
517
517
  @counter = 0
518
- @result = {:result=>true, :failed_positive_checkpoints => [], :failed_negative_checkpoints => [], :error_messages => []}
518
+ @result = {:result=>true,
519
+ :failed_positive_checkpoints => [],
520
+ :failed_negative_checkpoints => [],
521
+ :errors => []}
519
522
  elements.each do |element|
520
523
  myhash = {
521
524
  :a=>@@b.a(element.values[0]),
@@ -535,6 +538,7 @@ class Web4Cucumber
535
538
  end
536
539
  else
537
540
  unless myhash[element.keys[0]].exists?
541
+ screenshot_save
538
542
  @result[:result] = false
539
543
  @result[:failed_positive_checkpoints] << element
540
544
  end
@@ -542,9 +546,10 @@ class Web4Cucumber
542
546
  begin
543
547
  myhash[element.keys[0]].click
544
548
  rescue => e
549
+ screenshot_save
545
550
  @result[:result] = false
546
551
  @result[:failed_positive_checkpoints] << element
547
- @result[:error_messages] << e.message
552
+ @result[:errors] << e.message
548
553
  end
549
554
  end
550
555
  end
@@ -560,15 +565,15 @@ class Web4Cucumber
560
565
  result = {
561
566
  :result => true,
562
567
  :failed_positive_checkpoints => [],
563
- :failed_negative_checkpoints => [],
564
- :error_messages => []
568
+ :errors => []
565
569
  }
566
570
  until @@b.select_list(element_selector).exists? do
567
571
  begin
568
572
  wait_for_element(element_selector)
569
573
  rescue => e
570
574
  result[:result] = false
571
- result[:error_messages] << e.message
575
+ result[:failed_positive_checkpoints] << element_selector
576
+ result[:errors] << e.message
572
577
  break
573
578
  end
574
579
  end
@@ -594,11 +599,59 @@ class Web4Cucumber
594
599
  end
595
600
 
596
601
  def dropdown_value(selector)
597
- return @@b.select(selector).value
602
+ if not element.match(/\:\w+\=\>[\'\"]\S+[\"\']/)
603
+ raise "Please pass the element string in the form :selector=>\"value\""
604
+ end
605
+ result = {:result => true,
606
+ :failed_positive_checkpoints => [],
607
+ :errors => [],
608
+ :value => nil}
609
+ begin
610
+ result[:value] = @@b.select_list(selector).value
611
+ rescue => e
612
+ screenshot_save
613
+ result[:result] = false
614
+ result[:failed_positive_checkpoints] << selector
615
+ result[:errors] << e.message
616
+ end
617
+ end
618
+
619
+ def select_value(element, value)
620
+ if not element.match(/\:\w+\=\>[\'\"]\S+[\"\']/)
621
+ raise "Please pass the element string in the form :selector=>\"value\""
622
+ end
623
+ result = {:result => true, :errors => []}
624
+ unless @@b.select_list(element).exists?
625
+ result[:result] = false
626
+ result[:errors] << "Unable to find element with #{element.keys[0].to_s} #{element.values[0]}"
627
+ else
628
+ begin
629
+ @@b.select_list(element).select_value(value)
630
+ rescue => e
631
+ screenshot_save
632
+ result[:result] = false
633
+ result[:errors] << e.message
634
+ end
635
+ end
636
+ return result
598
637
  end
599
638
 
600
639
  def element_text(selector)
601
- return @@b.element(selector).text
640
+ if not element.match(/\:\w+\=\>[\'\"]\S+[\"\']/)
641
+ raise "Please pass the element string in the form :selector=>\"value\""
642
+ end
643
+ result = {:result => true,
644
+ :errors => [],
645
+ :failed_positive_checkpoints => []}
646
+ begin
647
+ result[:text] = @@b.element(selector).text
648
+ rescue => e
649
+ screenshot_save
650
+ result[:result] = false
651
+ result[:failed_positive_checkpoints] << selector
652
+ result[:errors] << e.message
653
+ end
654
+ return result
602
655
  end
603
656
 
604
657
  def refresh_page
@@ -606,23 +659,35 @@ class Web4Cucumber
606
659
  end
607
660
 
608
661
  def send_keys(element, text)
609
- result = {:result=>true}
662
+ if not element.match(/\:\w+\=\>[\'\"]\S+[\"\']/)
663
+ raise "Please pass the element string in the form :selector=>\"value\""
664
+ end
665
+ result = {:result=>true,
666
+ :failed_positive_checkpoints => [],
667
+ :errors => []
668
+ }
610
669
  begin
611
670
  @@b.text_field(element).clear
612
671
  @@b.text_field(element).send_keys text
613
672
  rescue => e
614
673
  result[:result] = false
615
- result[:response] = e.message
674
+ result[:failed_positive_checkpoints] << element
675
+ result[:errors] << e.message
616
676
  end
617
677
  end
618
678
 
619
- def check_textfield_content(selector, text=nil)
620
- result = {}
621
- if @@b.text_field(selector).exists?
679
+ def check_textfield_content(selector)
680
+ result = {:result => true,
681
+ :failed_positive_checkpoints => [],
682
+ :errors => []
683
+ }
684
+ begin
622
685
  result[:text] = @@b.text_field(selector).value
623
- result[:result] = true
624
- else
686
+ rescue => e
687
+ screenshot_save
625
688
  result[:result] = false
689
+ result[:failed_positive_checkpoints] << selector
690
+ result[:errors] << e.message
626
691
  end
627
692
  return result
628
693
  end
@@ -1,3 +1,3 @@
1
1
  module Web4Cucumber
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/web4cucumber.gemspec CHANGED
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.license = "GPLv3"
16
16
  s.files = `git ls-files`.split("\n")
17
17
  s.require_paths = ["lib"]
18
+ s.required_ruby_version = '~> 2.0'
18
19
  s.add_runtime_dependency "watir-webdriver", "~> 0.6"
19
20
  s.add_runtime_dependency "headless", "~> 1.0"
20
21
  s.add_runtime_dependency "byebug", "~> 2.7"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web4cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleg Fayans
@@ -113,9 +113,9 @@ require_paths:
113
113
  - lib
114
114
  required_ruby_version: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ">="
116
+ - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '0'
118
+ version: '2.0'
119
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - ">="
@@ -128,3 +128,4 @@ signing_key:
128
128
  specification_version: 4
129
129
  summary: Web testing module for cucumber
130
130
  test_files: []
131
+ has_rdoc: