rwebspec 4.3.4 → 4.3.5

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.
data/CHANGELOG CHANGED
@@ -1,6 +1,10 @@
1
1
  CHANGELOG
2
2
  =========
3
3
 
4
+ 4.3.5
5
+ [Change] Add licence (MIT) into gemspec
6
+ [Fixes] check_checkbox not working when there is hidden input with same name as checkbox
7
+
4
8
  4.3.4
5
9
  [Fixes] check_checkbox and uncheck_checkbox handle when more than one matching element
6
10
 
data/Rakefile CHANGED
@@ -78,7 +78,7 @@ end
78
78
  spec = Gem::Specification.new do |s|
79
79
  s.platform= Gem::Platform::RUBY
80
80
  s.name = "rwebspec"
81
- s.version = "4.3.4"
81
+ s.version = "4.3.5"
82
82
  s.summary = "Web application functional specification in Ruby"
83
83
  s.description = "Executable functional specification for web applications in RSpec syntax with Watir or Selenium"
84
84
 
@@ -86,7 +86,8 @@ spec = Gem::Specification.new do |s|
86
86
  s.email = "zhimin@agileway.com.au"
87
87
  s.homepage= "http://github.com/zhimin/rwebspec/tree/master"
88
88
  s.rubyforge_project = "rwebspec"
89
-
89
+ s.licenses = ["MIT"]
90
+
90
91
  s.has_rdoc = true
91
92
  s.requirements << 'none'
92
93
  s.require_path = "lib"
@@ -579,47 +579,43 @@ module RWebSpec
579
579
  # check_checkbox("agree")
580
580
  # check_checkbox("agree", "true")
581
581
  def check_checkbox(checkBoxName, values=nil)
582
+ elements = find_checkboxes_by_name(checkBoxName)
582
583
  if values
583
- values.class == Array ? arys = values : arys = [values]
584
- elements = find_elements(:name, checkBoxName)
585
- the_checkbox = elements[0] if elements.size > 0
586
- if the_checkbox
587
- the_checkbox.click unless the_checkbox.selected?
588
- return
589
- end
590
-
584
+ values.class == Array ? arys = values : arys = [values]
591
585
  arys.each { |cbx_value|
592
586
  elements.each do |elem|
593
587
  elem.click if elem.attribute('value') == cbx_value && !elem.selected?
594
588
  end
595
589
  }
596
590
  else
597
- the_checkbox = find_element(:name, checkBoxName)
591
+ the_checkbox = elements[0]
598
592
  the_checkbox.click unless the_checkbox.selected?
599
593
  end
600
594
  end
595
+
596
+ def find_checkboxes_by_name(checkBoxName)
597
+ elements = find_elements(:name, checkBoxName)
598
+ elements.reject! {|x| x.tag_name != "input" || x["type"] != "checkbox"}
599
+ raise "No checkbox with name #{checkBoxName} found" if elements.empty?
600
+ return elements
601
+ end
601
602
 
602
603
  # Uncheck a checkbox
603
604
  # Usage:
604
605
  # uncheck_checkbox("agree")
605
606
  # uncheck_checkbox("agree", "false")
606
607
  def uncheck_checkbox(checkBoxName, values = nil)
608
+ elements = find_checkboxes_by_name(checkBoxName)
609
+
607
610
  if values
608
- values.class == Array ? arys = values : arys = [values]
609
- elements = find_elements(:name, checkBoxName)
610
- the_checkbox = elements[0] if elements.size > 0
611
- if the_checkbox
612
- the_checkbox.click if the_checkbox.selected?
613
- return
614
- end
615
-
611
+ values.class == Array ? arys = values : arys = [values]
616
612
  arys.each { |cbx_value|
617
613
  elements.each do |elem|
618
- elem.click if elem.attribute('value') == cbx_value && elem && elem.selected?
614
+ elem.click if elem.attribute('value') == cbx_value && elem.selected?
619
615
  end
620
616
  }
621
617
  else
622
- the_checkbox = find_element(:name, checkBoxName)
618
+ the_checkbox = elements[0]
623
619
  the_checkbox.click if the_checkbox.selected?
624
620
  end
625
621
  end
data/lib/rwebspec.rb CHANGED
@@ -16,7 +16,7 @@ end
16
16
  require 'rspec'
17
17
 
18
18
  unless defined? RWEBSPEC_VERSION
19
- RWEBSPEC_VERSION = RWEBUNIT_VERSION = "4.3.4"
19
+ RWEBSPEC_VERSION = RWEBUNIT_VERSION = "4.3.5"
20
20
  end
21
21
 
22
22
  $testwise_polling_interval = 1 # seconds
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rwebspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.4
4
+ version: 4.3.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire: rwebspec
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-05 00:00:00.000000000 Z
12
+ date: 2013-08-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -143,7 +143,8 @@ files:
143
143
  - lib/rwebspec-webdriver/web_browser.rb
144
144
  - lib/rwebspec.rb
145
145
  homepage: http://github.com/zhimin/rwebspec/tree/master
146
- licenses: []
146
+ licenses:
147
+ - MIT
147
148
  post_install_message:
148
149
  rdoc_options: []
149
150
  require_paths: