watir-rspec 0.0.1 → 0.0.2

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/lib/watir/rspec.rb CHANGED
@@ -25,134 +25,134 @@ module Watir
25
25
  #
26
26
  class RSpec
27
27
  class << self
28
- def bootstrap const
29
- const.class_eval do
28
+ def add_within_and_during_to_matcher const
29
+ const.class_eval do
30
30
 
31
- inst_methods = instance_methods.map &:to_sym
31
+ inst_methods = instance_methods.map &:to_sym
32
32
 
33
- if !(inst_methods.include?(:__matches?) || inst_methods.include?(:__does_not_match?)) &&
34
- (inst_methods.include?(:matches?) || inst_methods.include?(:does_not_match?))
33
+ if !(inst_methods.include?(:__matches?) || inst_methods.include?(:__does_not_match?)) &&
34
+ (inst_methods.include?(:matches?) || inst_methods.include?(:does_not_match?))
35
35
 
36
- def within(timeout)
37
- @within_timeout = timeout
38
- self
39
- end
36
+ def within(timeout)
37
+ @within_timeout = timeout
38
+ self
39
+ end
40
40
 
41
- def during(timeout)
42
- @during_timeout = timeout
43
- self
44
- end
41
+ def during(timeout)
42
+ @during_timeout = timeout
43
+ self
44
+ end
45
45
 
46
- def soon
47
- within(30)
48
- end
46
+ def soon
47
+ within(30)
48
+ end
49
49
 
50
- def seconds
51
- # for syntactic sugar
52
- self
53
- end
50
+ def seconds
51
+ # for syntactic sugar
52
+ self
53
+ end
54
54
 
55
- alias_method :second, :seconds
55
+ alias_method :second, :seconds
56
56
 
57
- def minutes
58
- @within_timeout *= 60 if @within_timeout
59
- @during_timeout *= 60 if @during_timeout
60
- self
61
- end
57
+ def minutes
58
+ @within_timeout *= 60 if @within_timeout
59
+ @during_timeout *= 60 if @during_timeout
60
+ self
61
+ end
62
62
 
63
- alias_method :minute, :minutes
64
- end
63
+ alias_method :minute, :minutes
64
+ end
65
65
 
66
- if inst_methods.include? :matches?
67
- alias_method :__matches?, :matches?
66
+ if inst_methods.include? :matches?
67
+ alias_method :__matches?, :matches?
68
68
 
69
- def matches?(actual)
70
- match_with_wait {__matches?(actual)}
69
+ def matches?(actual)
70
+ match_with_wait {__matches?(actual)}
71
+ end
71
72
  end
72
- end
73
73
 
74
- if inst_methods.include? :does_not_match?
75
- alias_method :__does_not_match?, :does_not_match?
74
+ if inst_methods.include? :does_not_match?
75
+ alias_method :__does_not_match?, :does_not_match?
76
76
 
77
- def does_not_match?(actual)
78
- match_with_wait {__does_not_match?(actual)}
77
+ def does_not_match?(actual)
78
+ match_with_wait {__does_not_match?(actual)}
79
+ end
80
+ elsif inst_methods.include? :matches?
81
+ def does_not_match?(actual)
82
+ match_with_wait {!__matches?(actual)}
83
+ end
79
84
  end
80
- elsif inst_methods.include? :matches?
81
- def does_not_match?(actual)
82
- match_with_wait {!__matches?(actual)}
83
- end
84
- end
85
85
 
86
- private
87
-
88
- def match_with_wait
89
- if @within_timeout
90
- timeout = @within_timeout; @within_timeout = nil
91
- Watir::Wait.until(timeout) {yield} rescue false
92
- elsif @during_timeout
93
- timeout = @during_timeout; @during_timeout = nil
94
- Watir::Wait.while(timeout) {yield} rescue true
95
- else
96
- yield
86
+ private
87
+
88
+ def match_with_wait
89
+ if @within_timeout
90
+ timeout = @within_timeout; @within_timeout = nil
91
+ Watir::Wait.until(timeout) {yield} rescue false
92
+ elsif @during_timeout
93
+ timeout = @during_timeout; @during_timeout = nil
94
+ Watir::Wait.while(timeout) {yield} rescue true
95
+ else
96
+ yield
97
+ end
97
98
  end
98
99
  end
99
100
  end
100
- end
101
101
 
102
- def file_path(file_name, description=nil)
103
- formatter.file_path(file_name, description=nil)
104
- end
102
+ def file_path(file_name, description=nil)
103
+ formatter.file_path(file_name, description=nil)
104
+ end
105
105
 
106
- private
106
+ private
107
107
 
108
- def formatter
109
- @formatter ||= begin
110
- formatter = ::RSpec.configuration.formatters.find {|f| f.kind_of? Watir::RSpec::HtmlFormatter}
111
- unless formatter
112
- raise <<-EOF
113
- Watir::RSpec::HtmlFormatter is not set as a RSpec formatter.
108
+ def formatter
109
+ @formatter ||= begin
110
+ formatter = ::RSpec.configuration.formatters.find {|f| f.kind_of? Watir::RSpec::HtmlFormatter}
111
+ unless formatter
112
+ raise <<-EOF
113
+ Watir::RSpec::HtmlFormatter is not set as a RSpec formatter.
114
114
 
115
- You need to add it into your spec_helper.rb file like this:
116
- RSpec.configure do |config|
117
- config.add_formatter('documentation')
118
- config.add_formatter(Watir::RSpec::HtmlFormatter)
119
- end
120
- EOF
115
+ You need to add it into your spec_helper.rb file like this:
116
+ RSpec.configure do |config|
117
+ config.add_formatter('documentation')
118
+ config.add_formatter(Watir::RSpec::HtmlFormatter)
119
+ end
120
+ EOF
121
+ end
122
+ formatter
121
123
  end
122
- formatter
123
- end
124
- end
124
+ end
125
125
 
126
126
 
127
- end
127
+ end
128
128
 
129
+ end
129
130
  end
130
- end
131
131
 
132
- # patch for #within(timeout) method
133
- module ::RSpec::Matchers
134
- class BuiltIn::Change
135
- def matches?(event_proc)
136
- raise_block_syntax_error if block_given?
132
+ # patch for #within(timeout) method
133
+ module ::RSpec::Matchers
134
+ class BuiltIn::Change
135
+ def matches?(event_proc)
136
+ raise_block_syntax_error if block_given?
137
137
 
138
- # to make #change work with #in(timeout) method
139
- unless defined? @actual_before
140
- @actual_before = evaluate_value_proc
141
- event_proc.call
142
- end
143
- @actual_after = evaluate_value_proc
138
+ # to make #change work with #in(timeout) method
139
+ unless defined? @actual_before
140
+ @actual_before = evaluate_value_proc
141
+ event_proc.call
142
+ end
143
+ @actual_after = evaluate_value_proc
144
144
 
145
- (!change_expected? || changed?) && matches_before? && matches_after? && matches_expected_delta? && matches_min? && matches_max?
145
+ (!change_expected? || changed?) && matches_before? && matches_after? && matches_expected_delta? && matches_min? && matches_max?
146
+ end
146
147
  end
147
- end
148
148
 
149
- alias_method :make, :change
150
- end
149
+ alias_method :make, :change
150
+ end
151
151
 
152
- matchers = RSpec::Matchers::BuiltIn.constants.map(&:to_sym)
153
- matchers.delete :BaseMatcher
154
- matchers.each do |const|
155
- Watir::RSpec.bootstrap RSpec::Matchers::BuiltIn.const_get const
156
- end
152
+ matchers = RSpec::Matchers::BuiltIn.constants.map(&:to_sym)
153
+ matchers.delete :BaseMatcher
154
+ matchers.each do |const|
155
+ Watir::RSpec.add_within_and_during_to_matcher RSpec::Matchers::BuiltIn.const_get const
156
+ end
157
157
 
158
- Watir::RSpec.bootstrap RSpec::Matchers::DSL::Matcher
158
+ Watir::RSpec.add_within_and_during_to_matcher RSpec::Matchers::DSL::Matcher
@@ -3,11 +3,15 @@ module Watir
3
3
  module Helper
4
4
  extend Forwardable
5
5
 
6
+ def browser
7
+ @browser || $browser
8
+ end
9
+
6
10
  def method_missing name, *args #:nodoc:
7
- if @browser.respond_to?(name)
11
+ if browser.respond_to?(name)
8
12
  Helper.module_eval %Q[
9
13
  def #{name}(*args)
10
- @browser.send(:#{name}, *args) {yield}
14
+ browser.send(:#{name}, *args) {yield}
11
15
  end
12
16
  ]
13
17
  self.send(name, *args) {yield}
@@ -19,7 +23,7 @@ module Watir
19
23
  # make sure that using method 'p' will be invoked on browser
20
24
  # and not Kernel
21
25
  # use Kernel.p if you need to dump some variable
22
- def_delegators :@browser, :p
26
+ def_delegators :browser, :p
23
27
  end
24
28
  end
25
29
  end
@@ -1,5 +1,5 @@
1
1
  module Watir
2
2
  class RSpec
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-28 00:00:00.000000000 Z
12
+ date: 2012-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec