capybara-js_finders 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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