test-factory 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDkzYzgxNGM0YWViZjA4Y2ZmYTc2NGI0ZmU0MjQyYzhhNzkwYWQ4Zg==
4
+ NTYyZTZkODZkOTMwNGI0Yjc2ZjI1Mzc0ZDA3MWUyOGY2NTFmMTk1OQ==
5
5
  data.tar.gz: !binary |-
6
- ZDFiNTJjNTRlMmEzYzljZDJjYWRlNjU5YjUzYzkyNGFlMDA0ZDJhNQ==
6
+ YzdiZjY2OTliZGE2NGMwNjNmYWVmOWJhMDkwZWQxNGM2OTI5YWI5Mw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MDBkZWMwYjY0YzBlMDZiMjAwMWZiMDE3MjQwYTg0ODUzM2Y0MjNhOWViZTlm
10
- ODkwMzI2MTExZWY2MzlmNGU2NzZlZDZmODM2OGNiYzI0Y2FmNWIxMmM0ZTdj
11
- ZGZmZGUyMjg1YTA4ODU1ZWI0NDYxZjNjOGMxM2VmOWM1MzJiMzg=
9
+ ZmU3ZWE4NzZkM2E3ZDA4NzYzN2Q0MWJkNmM1ZWRkOTU1MDQ3MDk3N2E0YWM1
10
+ MWE5OTEzZTcxMGI2YzM1ZWJmODBhOGI3ZjY2NmUxZTdlNTY3M2MzMTcxMGEy
11
+ NDQwNTAxOWFhMmU3YzdmMTVkYTIyZDgxNDI3YTRmMDlkYjExZTA=
12
12
  data.tar.gz: !binary |-
13
- NWE4NDMyN2Q2YWI5Y2VlYWU5ZGFmNzQ3MTYwNjhlNjhmZWYzNjY3ODJjMDAy
14
- ZTYzYTdmNjhiOWY2ZGZmZTEzNjMwM2M3ZDA4OWJlMGFlMmQzNjI2ZWQ5M2Ri
15
- Y2IwNWRhYzU0Y2YxYTY4OTAwZTJmY2MxNmJkMGUyMjI5ZjI4MDY=
13
+ YWI3NmNjY2QwZWJjMTJmOGYzNTU5OWU3YTJhYmE1OGI3NzBlZWM2MjQ5MWY2
14
+ M2NmMmU0OWRkOGMzYWRlODQxZDVjMzQ1MjFkY2E0MzVlMmE0MjkyZGJhMTBi
15
+ ZTM0NDMwY2E1MTFjNmRkM2NlYzYyODEwNGVhMzM1M2IxNTdkMjA=
@@ -82,6 +82,58 @@ module DataFactory
82
82
  end
83
83
  alias radio_setting checkbox_setting
84
84
 
85
+ # A shortcut method for filling out fields on a page. The
86
+ # method's first parameter is the page class that contains the fields
87
+ # you want to fill out. That is followed by the list of field name(s)
88
+ # (as Symbols).
89
+ #
90
+ # This method has a number of requirements:
91
+ # 1) The field name and the instance variable name in your data object
92
+ # must be identical. For this reason, this method can only
93
+ # be used in your data objects' create methods.
94
+ # 2) Your checkbox data object variables
95
+ # 3) Since the listed fields get filled out in random order, be sure that
96
+ # this is okay in the context of your page--in other words, if field A
97
+ # needs to be specified before field B then having them both in your
98
+ # fill_out step would be inappropriate.
99
+ # 4) This method supports text fields, select lists, check boxes, and
100
+ # radio buttons, but only if their element definitions don't take a
101
+ # parameter. Please use the #fill_out_item with elements that do need
102
+ # a parameter defined.
103
+ #
104
+ # @example
105
+ #
106
+ # on PageClass do |page|
107
+ # fill_out page, :text_field_name, :radio_name, :select_list_name, :checkbox_name
108
+ # end
109
+ #
110
+ def fill_out(page, *fields)
111
+ watir_methods=[ lambda{|p, f| p.send(f).fit(instance_variable_get f) },
112
+ lambda{|p, f| p.send(f).pick!(instance_variable_get f) } ]
113
+ fields.shuffle.each do |field|
114
+ x = page.send(field).class.to_s=='Watir::Select' ? 1 : 0
115
+ watir_methods[x].call(page, field)
116
+ end
117
+ end
118
+
119
+ # Same as #fill_out, but used with methods that take a
120
+ # parameter to identify the target element...
121
+ #
122
+ # @example
123
+ #
124
+ # on PageClass do |page|
125
+ # fill_out_item 'Joe Schmoe', page, :text_field_name, :radio_name, :select_list_name, :checkbox_name
126
+ # end
127
+ #
128
+ def fill_out_item(name, page, *fields)
129
+ watir_methods=[ lambda{|n, p, f| p.send(f, n).fit(instance_variable_get f) },
130
+ lambda{|n, p, f| p.send(f, n).pick!(instance_variable_get f) } ]
131
+ fields.shuffle.each do |field|
132
+ x = page.send(field, name).class.to_s=='Watir::Select' ? 1 : 0
133
+ watir_methods[x].call(name, page, field)
134
+ end
135
+ end
136
+
85
137
  # This is a specialized method for use with any select list boxes
86
138
  # that exist in the site you're testing and will contain
87
139
  # unpredictable default values.
@@ -126,6 +126,12 @@ module Watir
126
126
  end
127
127
  end
128
128
 
129
+ class Radio
130
+ def fit(arg)
131
+ self.set if arg==:set
132
+ end
133
+ end
134
+
129
135
  module UserEditable
130
136
 
131
137
  # Extends Watir's methods.
data/test-factory.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'test-factory'
3
- s.version = '0.3.5'
3
+ s.version = '0.3.6'
4
4
  s.summary = %q{rSmart's framework for creating automated testing scripts}
5
5
  s.description = %q{This gem provides a set of modules and methods to help quickly and DRYly create a test automation framework using Ruby and Watir (or watir-webdriver).}
6
6
  s.files = Dir.glob("**/**/**")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abraham Heward
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-21 00:00:00.000000000 Z
11
+ date: 2013-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: watir-webdriver