test-factory 0.5.1 → 0.5.2

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
- NTUzYjI3ZWNiZjVjZWI5M2NkODU2MDIzYjg1YmQ5MDczMjliMzAxNw==
4
+ NjM5YzM1ZTU5OTNjNGI1OTQ2ODkxODg0ZTJlNDk2ZjIxMzZhMzRmNw==
5
5
  data.tar.gz: !binary |-
6
- NDRiNjc2ZWNiNzUxY2Y1NmZiNzA0YjUxYWY5NWNjOGVjYjFmOGMzMw==
6
+ NjYwMmM4Y2IyMmE0NTgzNDBlYzMzYjZhMTM5OGM1OTE0MGYxMmIzYQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NWE2ZjM5OTdkYTk4ZTllMGY0ZDkxMGM1ZWFjZDE5MGQyY2QxYTFlNTE0Njk2
10
- ZjY3ODM5NzVkZmE4ZDIyZjgxNTJmODEwMDFjZTc2MmJkYTUwMDMwMWVmNzFm
11
- NDRjNGY4Y2RjYTE4ZDE3ZDMzMzExYzgzYzllMTQ4NGVjYmE2ZDU=
9
+ NDUxMTI3NTZmYTA2MWIxM2VkOGExOWU1MTNkOWI2NzVkMTNjYjNkZTNhMmNm
10
+ NTM5MGQ4YjBlNWY3MWVjMzM2YmUwM2FkYTViYzQzY2ZlYjVkZjY5NTQwZWRj
11
+ NmE4ZDc2YTA5NGIzNmFhMWE1YjA4ZWI0Yjk4ZDA0ZGNkNzBhYmM=
12
12
  data.tar.gz: !binary |-
13
- YTQ5MTg4MDZhNDI5ZTY2ZGVjMDVhYjc5MmNlOGExM2QxOGRkMmMzZmY0MzY1
14
- NDE3MTliNjBkMDg3NjU0NjE5NDRiOGUxMDM5NmJhYTczMTFhYjZlZmMxZWFk
15
- N2I1ZTRiMjQ2MDEwOTk3ZDM2ODI4ODM2MDEwOTM3NTliZDE5OGI=
13
+ OTc0ZmIzNzk2NDA3NjcwZWZiMWViNDg4ZDdjMTEyZTY2OTRkNDRiMTZmZDMw
14
+ NWI4OGM1Yzg5YzliNTQ4OTk5MmQxNjkyMDJjMWRlZDk3NDJjMDgxM2Q0MDUw
15
+ MjYzNTQwM2VkZTUyODkyNWQ5N2QzNjMyZTUzZWNiNWJmYWE3MmQ=
@@ -16,6 +16,7 @@
16
16
  class DataFactory
17
17
 
18
18
  include Foundry
19
+ extend Forwardable
19
20
 
20
21
  # Since Data Objects are not "Marshallable", and they generally
21
22
  # contain lots of types of data in their instance variables,
@@ -147,6 +147,31 @@ class PageFactory
147
147
  elementize(:button, button_text, *alias_name)
148
148
  end
149
149
 
150
+ # TestFactory doesn't allow defining a method in a child class
151
+ # with the same name as one already defined in a parent class.
152
+ # The thinking here is: "Out of sight, out of mind." Meaning:
153
+ # you or a team mate might not know or have forgotten that a given
154
+ # element is already defined in a parent class, and so define it
155
+ # again. TestFactory's restriction is there to help prevent this.
156
+ #
157
+ # However, in some cases you may have a child page class with a
158
+ # special circumstance, where the parent class's version of the
159
+ # method really doesn't apply, and you want to use the same method
160
+ # name in this child class because, really, no other method name
161
+ # would fit quite as well.
162
+ #
163
+ # The #undefine method is for those rare cases. Note: If you start
164
+ # using this method a lot then you should consider that a sign
165
+ # that perhaps you're putting too many method definitions into
166
+ # parent page classes.
167
+ #
168
+ # @example
169
+ # undefine :status, :doc_id => Undefines the specified methods in the current class
170
+ #
171
+ def undefine *methods
172
+ methods.each{ |m| undef_method m }
173
+ end
174
+
150
175
  def inherited klass
151
176
  klass.instance_eval {
152
177
 
data/lib/test-factory.rb CHANGED
@@ -13,5 +13,6 @@
13
13
  # limitations under the License.
14
14
 
15
15
  require 'watir-webdriver'
16
+ require 'forwardable'
16
17
  %w{foundry.rb data_factory.rb}.each { |f| require "#{File.dirname(__FILE__)}/test-factory/#{f}" }
17
18
  Dir["#{File.dirname(__FILE__)}/test-factory/*.rb"].each {|f| require f }
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.5.1'
3
+ s.version = '0.5.2'
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.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abraham Heward
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-23 00:00:00.000000000 Z
11
+ date: 2014-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: watir-webdriver