kameleon 0.2.1 → 1.0.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.
data/README.md CHANGED
@@ -4,9 +4,19 @@
4
4
 
5
5
  [![CoderWall](http://api.coderwall.com/cs3b/endorsecount.png)](http://coderwall.com/cs3b)
6
6
 
7
- Kameleon is a high abstraction dsl for better writing acceptance and integrationtests using Capybara.
7
+ Kameleon is a high abstraction dsl for better writing acceptance and integration tests using Capybara.
8
8
  And "better" means: more easily to mimic how user interact with browser.
9
9
 
10
+ ## note on Capybara versions
11
+
12
+ for 1.x capybara please use kameleon in version below 1.0
13
+
14
+ gem 'kameleon', '< 1.0'
15
+
16
+ for 2.x capybara please use kameleon in version higher or equeal 1.0
17
+
18
+ gem 'kameleon', '>= 1.0'
19
+
10
20
  ## Setup
11
21
 
12
22
  Kameleon requires:
@@ -80,7 +80,9 @@ module Kameleon
80
80
  [:xpath, "//tbody/tr[#{value_in_row}]/td[#{value_in_column}]"]
81
81
  else
82
82
  #! on page there might be more then one table
83
- position = Capybara.current_session.all(:xpath, "//table//th").index { |n| n.text =~ /#{value_in_column}/ }
83
+ result = Capybara.current_session.all(:xpath, "//table//th")
84
+ elements = result.each.to_a
85
+ position = elements.index { |n| n.text =~ /#{value_in_column}/ }
84
86
  [:xpath, "//tr[*='#{value_in_row}'][1]/td[#{position+1}]"]
85
87
  end
86
88
  end
@@ -231,7 +231,12 @@ module Kameleon
231
231
  when Symbol
232
232
  parse_params(params.to_s)
233
233
  when String
234
- conditions << Condition.new(:have_field, params, :with => value)
234
+ conditions <<
235
+ if value.nil? or value == ""
236
+ Condition.new(:have_field, params)
237
+ else
238
+ Condition.new(:have_field, params, :with => value)
239
+ end
235
240
  when Array
236
241
  params.each { |param| parse_params(param) }
237
242
  else
@@ -332,13 +337,13 @@ module Kameleon
332
337
  parse_params(selected_value => identifier.to_s)
333
338
  when String
334
339
  value = case selected_value
335
- when Symbol, Fixnum
336
- selected_value.to_s
337
- when String, Array
338
- selected_value
339
- else
340
- raise "not supported"
341
- end
340
+ when Symbol, Fixnum
341
+ selected_value.to_s
342
+ when String, Array
343
+ selected_value
344
+ else
345
+ raise "not supported"
346
+ end
342
347
  conditions << Condition.new(matcher_method, identifier, :selected => value)
343
348
  else
344
349
  raise "not supported"
@@ -1,4 +1,4 @@
1
1
  require 'kameleon/ext/rspec/dsl'
2
- require 'kameleon/ext/rspec/garbage_collector'
2
+ require 'kameleon/ext/rspec/garbage_collector' unless defined? JRUBY_VERSION
3
3
  require 'kameleon/ext/rspec/headless'
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kameleon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-11-12 00:00:00.000000000 Z
14
+ date: 2013-02-24 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rspec
@@ -34,17 +34,17 @@ dependencies:
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  none: false
36
36
  requirements:
37
- - - ! '>='
37
+ - - ~>
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: '2.0'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  none: false
44
44
  requirements:
45
- - - ! '>='
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '2.0'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: headless
50
50
  requirement: !ruby/object:Gem::Requirement
@@ -126,53 +126,53 @@ dependencies:
126
126
  - !ruby/object:Gem::Version
127
127
  version: '0'
128
128
  - !ruby/object:Gem::Dependency
129
- name: guard-rspec
129
+ name: selenium-webdriver
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  none: false
132
132
  requirements:
133
- - - ! '>='
133
+ - - ~>
134
134
  - !ruby/object:Gem::Version
135
- version: '0'
135
+ version: '2.0'
136
136
  type: :development
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
- - - ! '>='
141
+ - - ~>
142
142
  - !ruby/object:Gem::Version
143
- version: '0'
143
+ version: '2.0'
144
144
  - !ruby/object:Gem::Dependency
145
- name: selenium-webdriver
145
+ name: capybara-webkit
146
146
  requirement: !ruby/object:Gem::Requirement
147
147
  none: false
148
148
  requirements:
149
- - - ! '>='
149
+ - - ~>
150
150
  - !ruby/object:Gem::Version
151
- version: '0'
151
+ version: '1.14'
152
152
  type: :development
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  none: false
156
156
  requirements:
157
- - - ! '>='
157
+ - - ~>
158
158
  - !ruby/object:Gem::Version
159
- version: '0'
159
+ version: '1.14'
160
160
  - !ruby/object:Gem::Dependency
161
- name: capybara-webkit
161
+ name: poltergeist
162
162
  requirement: !ruby/object:Gem::Requirement
163
163
  none: false
164
164
  requirements:
165
- - - ! '>='
165
+ - - ~>
166
166
  - !ruby/object:Gem::Version
167
- version: '0'
167
+ version: '1.1'
168
168
  type: :development
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
- - - ! '>='
173
+ - - ~>
174
174
  - !ruby/object:Gem::Version
175
- version: '0'
175
+ version: '1.1'
176
176
  - !ruby/object:Gem::Dependency
177
177
  name: pry
178
178
  requirement: !ruby/object:Gem::Requirement
@@ -232,7 +232,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
232
232
  requirements:
233
233
  - - ! '>='
234
234
  - !ruby/object:Gem::Version
235
- version: '0'
235
+ version: 1.9.0
236
236
  required_rubygems_version: !ruby/object:Gem::Requirement
237
237
  none: false
238
238
  requirements: