capybara-js_finders 0.2.2 → 0.3.0

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.
@@ -1,5 +1,5 @@
1
1
  module Capybara
2
2
  module JsFinders
3
- VERSION = "0.2.2"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -76,9 +76,16 @@ module Capybara
76
76
  "(./@#{BR} >= #{rtr} and ./@#{TR} <= #{rbr})"
77
77
  end
78
78
 
79
+ def self.not_equal_to(headers)
80
+ headers.reject{|h| h == true}.map do |h|
81
+ "( ./@#{TR} != #{h[TR]} or ./@#{BR} != #{h[BR]} or ./@#{LR} != #{h[LR]} or ./@#{RR} != #{h[RR]} )"
82
+ end.join(" and ")
83
+ end
84
+
79
85
  # Condition for td to be under one of column and on the same level as one of the rows
86
+ # and cannot be the same cell as one of the row-header or column-header
80
87
  def self.cell_condition(columns, rows)
81
- xpath = "( #{overlaps_rows(rows)} ) and ( #{overlaps_columns(columns)} ) "
88
+ xpath = "( #{overlaps_rows(rows)} ) and ( #{overlaps_columns(columns)} ) and (#{not_equal_to(columns + rows)})"
82
89
  return xpath
83
90
  end
84
91
 
@@ -21,6 +21,10 @@
21
21
  <td colspan="3">
22
22
  ThreeColumns
23
23
  </td>
24
+
25
+ <td>
26
+ March 2013
27
+ </td>
24
28
  </tr>
25
29
 
26
30
  <tr>
@@ -45,6 +49,10 @@
45
49
  <td style="background-color: DarkGoldenRod;">
46
50
  DarkGoldenRod
47
51
  </td>
52
+
53
+ <td>
54
+ 13
55
+ </td>
48
56
  </tr>
49
57
 
50
58
  <tr>
@@ -146,6 +154,14 @@
146
154
  </td>
147
155
  </tr>
148
156
 
157
+ <tr>
158
+ <td>
159
+ January 2012
160
+ </td>
161
+ <td>
162
+ 12
163
+ </td>
164
+ </tr>
149
165
  </table>
150
166
 
151
167
  </body>
@@ -67,6 +67,7 @@ module FindCellTests
67
67
  end
68
68
 
69
69
  def test_find_cell_not_found
70
+ user.visit '/'
70
71
  assert_not_found{ user.find_cell(:row => "OneRow", :column => "OneColumn", :text => "hor") }
71
72
  assert_not_found{ user.find_cell(:row => "OneRow", :column => "OneColumn", :text => "ver") }
72
73
 
@@ -77,10 +78,20 @@ module FindCellTests
77
78
  end
78
79
 
79
80
  def test_find_cell_without_row_or_column
81
+ user.visit '/'
80
82
  assert user.find_cell(:row => "OneRow", :text => "red").has_content?("red")
81
83
  assert user.find_cell(:column => "OneColumn", :text => "red").has_content?("red")
82
84
  end
83
85
 
86
+ def test_does_not_find_row_header_as_a_cell
87
+ user.visit '/'
88
+ assert ! user.find_cell(:row => "January 2012", :text => "12").has_content?("January")
89
+ end
90
+
91
+ def test_does_not_find_column_header_as_a_cell
92
+ user.visit '/'
93
+ assert ! user.find_cell(:column => "March 2013", :text => "13").has_content?("March")
94
+ end
84
95
 
85
96
  private
86
97
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara-js_finders
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-25 00:00:00.000000000 +02:00
12
+ date: 2011-07-27 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: capybara
17
- requirement: &78592980 !ruby/object:Gem::Requirement
17
+ requirement: &72850780 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *78592980
25
+ version_requirements: *72850780
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rake
28
- requirement: &78592730 !ruby/object:Gem::Requirement
28
+ requirement: &72850530 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.9.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *78592730
36
+ version_requirements: *72850530
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rdoc
39
- requirement: &78592500 !ruby/object:Gem::Requirement
39
+ requirement: &72850300 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 2.4.2
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *78592500
47
+ version_requirements: *72850300
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: sinatra
50
- requirement: &78592270 !ruby/object:Gem::Requirement
50
+ requirement: &72850070 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 1.2.6
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *78592270
58
+ version_requirements: *72850070
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: erubis
61
- requirement: &78592040 !ruby/object:Gem::Requirement
61
+ requirement: &72849840 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 2.6.6
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *78592040
69
+ version_requirements: *72849840
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: bbq
72
- requirement: &78591810 !ruby/object:Gem::Requirement
72
+ requirement: &72849610 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 0.0.3
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *78591810
80
+ version_requirements: *72849610
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: redcarpet
83
- requirement: &78591580 !ruby/object:Gem::Requirement
83
+ requirement: &72849380 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '1.17'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *78591580
91
+ version_requirements: *72849380
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: ruby-debug19
94
- requirement: &78591390 !ruby/object:Gem::Requirement
94
+ requirement: &72849190 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *78591390
102
+ version_requirements: *72849190
103
103
  description: ! " Additional finders for capybara that for some reason\n cannot
104
104
  use only xpath for finding nodes but needs to\n execute js for some calculations.\n\n
105
105
  \ Ex: I you want to find a table cell\n that is under or next to other cell
@@ -144,7 +144,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  segments:
146
146
  - 0
147
- hash: 767245201
147
+ hash: 1067246483
148
148
  required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  version: '0'
154
154
  segments:
155
155
  - 0
156
- hash: 767245201
156
+ hash: 1067246483
157
157
  requirements: []
158
158
  rubyforge_project: capybara-js_finders
159
159
  rubygems_version: 1.6.2