watir 2.0.1 → 2.0.2.rc1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,11 @@
1
+ == Version 2.x.x - 2011/xx/xx
2
+
3
+ * added support for del, ins, font, meta and ol tags
4
+ * added support for h1, h2, h3, h4, h5, h6 and ul collection methods
5
+ * Watir::IE#execute_script returns now the value of the JavaScript evaluation
6
+ * Watir::Table#rows method iterates correctly over rows
7
+ * speed up dealing with html elements in some situations
8
+
1
9
  == Version 2.0.1 - 2011/08/10
2
10
 
3
11
  * fixed Watir::IE#close for Ruby 1.9.2 - fixes http://jira.openqa.org/browse/WTR-481
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.1
1
+ 2.0.2.rc1
@@ -35,16 +35,21 @@ module Watir
35
35
  def element_tag; 'SELECT'; end
36
36
  end
37
37
 
38
- %w[Buttons FileFields Radios TextFields Hiddens].each do |collection|
38
+ %w[Button FileField Radio TextField Hidden].each do |element|
39
39
  module_eval %Q{
40
- class #{collection} < InputElementCollections; end
40
+ class #{element}s < InputElementCollections; end
41
41
  }
42
42
  end
43
+
44
+ class Inses < ElementCollections
45
+ def element_class; Ins; end
46
+ end
43
47
 
44
- %w[Links Lis Maps Areas Images Tables TableRows TableCells
45
- Labels Pres Ps Spans Divs Dls Dts Dds Strongs Ems].each do |collection|
48
+ %w[Link Li Map Area Image Table TableRow TableCell
49
+ Label Pre P Span Div Dl Dt Dd Strong Em Del
50
+ Font H1 H2 H3 H4 H5 H6 Meta Ol Ul].each do |element|
46
51
  module_eval %Q{
47
- class #{collection} < ElementCollections; end
52
+ class #{element}s < ElementCollections; end
48
53
  }
49
54
  end
50
55
 
@@ -14,7 +14,7 @@ module Watir
14
14
  #
15
15
  # there are many methods available to the Button object
16
16
  #--
17
- # Is includable for classes that have @container, document and ole_inner_elements
17
+ # Is includable for classes that have @container, document and __ole_inner_elements
18
18
  module Container
19
19
  include Watir::Exception
20
20
 
@@ -61,10 +61,9 @@ module Watir
61
61
  # Not for external consumption
62
62
  #
63
63
  #++
64
- def ole_inner_elements
64
+ def __ole_inner_elements
65
65
  return document.body.all
66
66
  end
67
- private :ole_inner_elements
68
67
 
69
68
  # This method shows the available objects on the current page.
70
69
  # This is usually only used for debugging or writing new test scripts.
@@ -102,21 +101,18 @@ module Watir
102
101
  def input_element_locator(how, what, types, klass=nil)
103
102
  locator = InputElementLocator.new self, types, klass
104
103
  locator.set_specifier how, what
105
- locator.document = document
106
- return locator.element if locator.fast_locate
107
- locator.elements = ole_inner_elements if locator.elements.nil?
108
104
  locator
109
105
  end
110
106
 
111
107
  def tagged_element_locator(tag, how, what, klass=nil)
112
- locator = TaggedElementLocator.new(self, tag, klass)
113
- locator.set_specifier(how, what)
108
+ locator = TaggedElementLocator.new self, tag, klass
109
+ locator.set_specifier how, what
114
110
  locator
115
111
  end
116
112
 
117
113
  def locator_for(locator_class, how, what)
118
- locator = locator_class.new(self)
119
- locator.set_specifier(how, what)
114
+ locator = locator_class.new self
115
+ locator.set_specifier how, what
120
116
  locator
121
117
  end
122
118
 
@@ -152,13 +152,11 @@ module Watir
152
152
  ole_object.getAttribute('name') || ''
153
153
  end
154
154
 
155
- def ole_inner_elements
155
+ def __ole_inner_elements
156
156
  assert_exists
157
157
  return ole_object.all
158
158
  end
159
159
 
160
- private :ole_inner_elements
161
-
162
160
  def document
163
161
  assert_exists
164
162
  return ole_object
@@ -338,10 +336,9 @@ module Watir
338
336
 
339
337
  def dispatch_event(event)
340
338
  if IE.version_parts.first.to_i >= 9
341
- begin
342
- # we're in IE9 document standards mode
339
+ if @container.page_container.document_mode.to_i >= 9
343
340
  ole_object.dispatchEvent(create_event(event))
344
- rescue WIN32OLERuntimeError
341
+ else
345
342
  ole_object.fireEvent(event)
346
343
  end
347
344
  else
@@ -43,11 +43,10 @@ module Watir
43
43
  @container.wait
44
44
  end
45
45
 
46
- def ole_inner_elements
46
+ def __ole_inner_elements
47
47
  assert_exists
48
48
  @o.elements
49
49
  end
50
- private :ole_inner_elements
51
50
 
52
51
  # This method is responsible for setting and clearing the colored highlighting on the specified form.
53
52
  # use :set to set the highlight
@@ -20,10 +20,9 @@ module Watir
20
20
  end
21
21
  end
22
22
 
23
- def ole_inner_elements
23
+ def __ole_inner_elements
24
24
  document.body.all
25
25
  end
26
- private :ole_inner_elements
27
26
 
28
27
  def initialize(container, how, what)
29
28
  set_container container
@@ -41,6 +40,10 @@ module Watir
41
40
  end
42
41
  end
43
42
 
43
+ def document_mode
44
+ document.documentMode
45
+ end
46
+
44
47
  def attach_command
45
48
  @container.page_container.attach_command + ".frame(#{@how.inspect}, #{@what.inspect})".gsub('"','\'')
46
49
  end
@@ -368,6 +368,13 @@ module Watir
368
368
  @ie.document.title
369
369
  end
370
370
 
371
+ # The document standards mode used by IE
372
+ # can be overridden in the html with: <meta http-equiv="x-ua-compatible" content="IE=8">
373
+ def document_mode
374
+ @ie.document.documentMode.to_i
375
+ end
376
+
377
+
371
378
  # Return the status of the window, typically from the status bar at the bottom.
372
379
  def status
373
380
  return @ie.statusText
@@ -413,8 +420,16 @@ module Watir
413
420
  # Execute the given JavaScript string
414
421
  def execute_script(source)
415
422
  document.parentWindow.eval(source.to_s)
416
- rescue WIN32OLERuntimeError
417
- document.parentWindow.execScript(source.to_s)
423
+ rescue WIN32OLERuntimeError #if eval fails we need to use execScript(source.to_s) which does not return a value, hence the workaround
424
+ wrapper = "_watir_helper_div_#{rand(100000)}"
425
+ escaped_src = source.to_s
426
+ escaped_src = escaped_src.gsub("'", "\\\\'")
427
+ cmd = "var e= document.createElement('DIV'); e.id='#{wrapper}'; e.innerHTML= eval('#{escaped_src}');document.body.appendChild(e);"
428
+ document.parentWindow.execScript(cmd)
429
+ wrapper_obj = document.getElementById(wrapper)
430
+ result_value = wrapper_obj.innerHTML
431
+ wrapper_obj.style.display = 'none'
432
+ result_value
418
433
  end
419
434
 
420
435
  # clear the list of urls that we have visited
@@ -3,6 +3,10 @@ module Watir
3
3
  include Watir
4
4
  include Watir::Exception
5
5
 
6
+ def document
7
+ @document ||= @container.document
8
+ end
9
+
6
10
  def normalize_specifiers!(specifiers)
7
11
  specifiers.each do |how, what|
8
12
  case how
@@ -28,11 +32,35 @@ module Watir
28
32
  @specifiers.all? {|how, what| how == :index || match?(element, how, what)}
29
33
  end
30
34
 
35
+ def has_excluding_specifiers?
36
+ @specifiers.keys.any? {|specifier| [:css, :xpath, :ole_object].include? specifier}
37
+ end
38
+
31
39
  def set_specifier(how, what=nil)
32
40
  specifiers = what ? {how => what} : how
33
41
  @specifiers = {:index => Watir::IE.base_index} # default if not specified
34
42
  normalize_specifiers! specifiers
35
43
  end
44
+
45
+ def locate_by_id
46
+ # Searching through all elements returned by __ole_inner_elements
47
+ # is *significantly* slower than IE's getElementById() and
48
+ # getElementsByName() calls when how is :id. However
49
+ # IE doesn't match Regexps, so first we make sure what is a String.
50
+ # In addition, IE's getElementById() will also return an element
51
+ # where the :name matches, so we will only return the results of
52
+ # getElementById() if the matching element actually HAS a matching
53
+ # :id.
54
+
55
+ the_id = @specifiers[:id]
56
+ if the_id && the_id.class == String
57
+ element = document.getElementById(the_id) rescue nil
58
+ # Return if our fast match really HAS a matching :id
59
+ return element if element && element.invoke('id') == the_id
60
+ end
61
+
62
+ nil
63
+ end
36
64
 
37
65
  def locate_by_xpath_css_ole
38
66
  if @specifiers[:xpath]
@@ -41,7 +69,18 @@ module Watir
41
69
  return @container.element_by_css(@specifiers[:css])
42
70
  elsif @specifiers[:ole_object]
43
71
  return @specifiers[:ole_object]
72
+ end
73
+ end
74
+
75
+ def create_element ole_object
76
+ if @klass == Element
77
+ element = Element.new(ole_object)
78
+ else
79
+ element = @klass.new(@container, @specifiers, nil)
80
+ element.ole_object = ole_object
81
+ def element.locate; @o; end
44
82
  end
83
+ element
45
84
  end
46
85
  end
47
86
 
@@ -53,15 +92,8 @@ module Watir
53
92
  end
54
93
 
55
94
  def each_element tag
56
- @container.document.getElementsByTagName(tag).each do |ole_object|
57
- if @klass == Element
58
- element = Element.new(ole_object)
59
- else
60
- element = @klass.new(@container, @specifiers, nil)
61
- element.ole_object = ole_object
62
- def element.locate; @o; end unless @klass == TableRow
63
- end
64
- yield element
95
+ document.getElementsByTagName(tag).each do |ole_object|
96
+ yield create_element ole_object
65
97
  end
66
98
  end
67
99
 
@@ -74,7 +106,9 @@ module Watir
74
106
  end
75
107
 
76
108
  def locate
77
- return locate_by_xpath_css_ole if @specifiers[:xpath] || @specifiers[:css] || @specifiers[:ole_object]
109
+ el = locate_by_id
110
+ return el if el
111
+ return locate_by_xpath_css_ole if has_excluding_specifiers?
78
112
 
79
113
  count = Watir::IE.base_index - 1
80
114
  each do |element|
@@ -89,7 +123,7 @@ module Watir
89
123
  method = element.method(how)
90
124
  rescue NameError
91
125
  raise MissingWayOfFindingObjectException,
92
- "#{how} is an unknown way of finding a <#{@tag}> element (#{what})"
126
+ "#{how} is an unknown way of finding a <#{@tag || @tags.join(", ")}> element (#{what})"
93
127
  end
94
128
  case method.arity
95
129
  when 0
@@ -98,7 +132,7 @@ module Watir
98
132
  method.call(what)
99
133
  else
100
134
  raise MissingWayOfFindingObjectException,
101
- "#{how} is an unknown way of finding a <#{@tag}> element (#{what})"
135
+ "#{how} is an unknown way of finding a <#{@tag || @tags.join(", ")}> element (#{what})"
102
136
  end
103
137
  end
104
138
 
@@ -106,26 +140,23 @@ module Watir
106
140
 
107
141
  class FrameLocator < TaggedElementLocator
108
142
  def initialize(container)
109
- @container = container
110
- @tags = Frame::TAG
143
+ super(container, Frame::TAG, Frame)
111
144
  end
112
145
 
113
146
  def each_element tag
114
- frames = @container.document.frames
147
+ frames = document.frames
115
148
  i = 0
116
- @container.document.getElementsByTagName(tag).each do |ole_object|
117
- frame = Frame.new(@container, @specifiers, nil)
118
- frame.ole_object = ole_object
149
+ document.getElementsByTagName(tag).each do |ole_object|
150
+ frame = create_element ole_object
119
151
  frame.document = frames.item(i)
120
- def frame.locate; @o; end
121
152
  yield frame
122
153
  i += 1
123
154
  end
124
155
  end
125
156
 
126
157
  def each
127
- @tags.each do |tag|
128
- each_element(tag) do |element|
158
+ @tag.each do |t|
159
+ each_element(t) do |element|
129
160
  next unless match_with_specifiers?(element)
130
161
  yield element
131
162
  end
@@ -134,7 +165,9 @@ module Watir
134
165
  end
135
166
 
136
167
  def locate
137
- return locate_by_xpath_css_ole if @specifiers[:xpath] || @specifiers[:css] || @specifiers[:ole_object]
168
+ # do not locate frames by getElementById since can't get the correct
169
+ # 'document' related with that ole_object like it's done in #each_element
170
+ return locate_by_xpath_css_ole if has_excluding_specifiers?
138
171
 
139
172
  count = Watir::IE.base_index - 1
140
173
  each do |frame|
@@ -150,42 +183,31 @@ module Watir
150
183
  end
151
184
 
152
185
  def each_element(tag)
153
- @container.document.forms.each do |form|
154
- form_element = Form.new(@container, @specifiers, nil)
155
- form_element.ole_object = form
156
- def form_element.locate; @o; end
157
- yield form_element
186
+ document.forms.each do |form|
187
+ yield create_element form
158
188
  end
159
189
  end
160
190
  end
161
191
 
162
192
  class InputElementLocator < Locator
163
-
164
- attr_accessor :document, :element, :elements, :klass
165
-
166
193
  def initialize container, types, klass
167
194
  @container = container
168
195
  @types = types
169
- @elements = nil
170
196
  @klass = klass || Element
171
197
  end
172
198
 
173
199
  def each_element
174
- @elements.each do |object|
175
- if @klass == Element
176
- element = Element.new(object)
177
- else
178
- element = @klass.new(@container, @specifiers, nil)
179
- element.ole_object = object
180
- def element.locate; @o; end
181
- end
182
- yield element
200
+ elements = locate_by_name || @container.__ole_inner_elements
201
+ elements.each do |object|
202
+ yield create_element object
183
203
  end
184
204
  nil
185
205
  end
186
206
 
187
207
  def locate
188
- return locate_by_xpath_css_ole if @specifiers[:xpath] || @specifiers[:css] || @specifiers[:ole_object]
208
+ el = locate_by_id
209
+ return el if el
210
+ return locate_by_xpath_css_ole if has_excluding_specifiers?
189
211
 
190
212
  count = Watir::IE.base_index - 1
191
213
  each do |element|
@@ -214,29 +236,14 @@ module Watir
214
236
  what.matches(attribute)
215
237
  end
216
238
 
217
- def fast_locate
218
- # Searching through all elements returned by ole_inner_elements
219
- # is *significantly* slower than IE's getElementById() and
220
- # getElementsByName() calls when how is :id or :name. However
221
- # IE doesn't match Regexps, so first we make sure what is a String.
222
- # In addition, IE's getElementById() will also return an element
223
- # where the :name matches, so we will only return the results of
224
- # getElementById() if the matching element actually HAS a matching
225
- # :id.
226
-
227
- the_id = @specifiers[:id]
228
- if the_id && the_id.class == String &&
229
- @specifiers[:index] == Watir::IE.base_index && @specifiers.length == 2
230
- @element = @document.getElementById(the_id) rescue nil
231
- # Return if our fast match really HAS a matching :id
232
- return true if @element && @element.invoke('id') == the_id && @types.include?(@element.getAttribute('type'))
233
- end
239
+ private
234
240
 
241
+ def locate_by_name
235
242
  the_name = @specifiers[:name]
236
243
  if the_name && the_name.class == String
237
- @elements = @document.getElementsByName(the_name) rescue nil
238
- end
239
- false
244
+ return document.getElementsByName(the_name) rescue nil
245
+ end
246
+ nil
240
247
  end
241
248
  end
242
249
 
@@ -55,9 +55,20 @@ module Watir
55
55
  end
56
56
  end
57
57
 
58
- %w[pre p div span map area li ul h1 h2 h3 h4 h5 h6 dl dt dd strong em].each do |elem|
58
+ class Ins < NonControlElement
59
+ Watir::Container.module_eval do
60
+ remove_method :inss
61
+
62
+ def inses(how={}, what=nil)
63
+ Inses.new(self, how, what)
64
+ end
65
+ end
66
+ end
67
+
68
+ %w[Pre P Div Span Map Area Li Ul H1 H2 H3 H4 H5 H6
69
+ Dl Dt Dd Strong Em Del Font Meta Ol].each do |elem|
59
70
  module_eval %Q{
60
- class #{elem.capitalize} < NonControlElement; end
71
+ class #{elem} < NonControlElement; end
61
72
  }
62
73
  end
63
74
 
@@ -247,13 +247,20 @@ module Watir
247
247
 
248
248
  def locate
249
249
  super
250
- if @o # cant call the assert_exists here, as an exists? method call will fail
251
- @cells = []
252
- @o.cells.each do |oo|
253
- @cells << TableCell.new(@container, :ole_object, oo)
254
- end
250
+ cells if @o
251
+ end
252
+
253
+ def cells
254
+ return @cells if @cells
255
+
256
+ @cells = []
257
+ @o.cells.each do |c|
258
+ @cells << TableCell.new(@container, :ole_object, c)
255
259
  end
260
+ @cells
256
261
  end
262
+
263
+ private :cells
257
264
 
258
265
  # Returns an initialized instance of a table row
259
266
  # * o - the object contained in the row
@@ -270,16 +277,16 @@ module Watir
270
277
  # this method iterates through each of the cells in the row. Yields a TableCell object
271
278
  def each
272
279
  locate
273
- 0.upto(@cells.length - 1) { |i| yield @cells[i] }
280
+ 0.upto(cells.length - 1) { |i| yield cells[i] }
274
281
  end
275
282
 
276
283
  # Returns an element from the row as a TableCell object
277
284
  def [](index)
278
285
  assert_exists
279
- if @cells.length <= index
286
+ if cells.length <= index
280
287
  raise UnknownCellException, "Unable to locate a cell at index #{index}"
281
288
  end
282
- return @cells[index]
289
+ return cells[index]
283
290
  end
284
291
 
285
292
  # defaults all missing methods to the array of elements, to be able to
@@ -289,7 +296,7 @@ module Watir
289
296
  # end
290
297
  def column_count
291
298
  locate
292
- @cells.length
299
+ cells.length
293
300
  end
294
301
 
295
302
  # Returns (multi-dimensional) array of the cell texts in table's row.
@@ -363,11 +370,10 @@ module Watir
363
370
  super nil
364
371
  end
365
372
 
366
- def ole_inner_elements
373
+ def __ole_inner_elements
367
374
  locate
368
375
  return @o.all
369
376
  end
370
- private :ole_inner_elements
371
377
 
372
378
  def document
373
379
  locate
@@ -0,0 +1,67 @@
1
+
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
3
+ require 'unittests/setup'
4
+
5
+ class TC_DocumentStandards_Quirks < Test::Unit::TestCase
6
+ include Watir::Exception
7
+
8
+ def setup
9
+ goto_page 'quirks_document_standards.html'
10
+ end
11
+
12
+ def test_elements_exist_or_not
13
+ assert(browser.document_mode.to_i == 5)
14
+ assert(browser.text_field(:name,"quirks_text").exists?)
15
+ browser.text_field(:name,"quirks_text").set "test"
16
+ browser.text_field(:name,"quirks_text").fire_event "onClick"
17
+ assert(browser.text_field(:name,"quirks_text").value == 'test')
18
+ end
19
+ end
20
+
21
+ class TC_DocumentStandards_IE7 < Test::Unit::TestCase
22
+ include Watir::Exception
23
+
24
+ def setup
25
+ goto_page 'ie7_document_standards.html'
26
+ end
27
+
28
+ def test_elements_exist_or_not
29
+ assert(browser.document_mode.to_i == 7)
30
+ assert(browser.text_field(:name,"ie7_text").exists?)
31
+ browser.text_field(:name,"ie7_text").set "test"
32
+ browser.text_field(:name,"ie7_text").fire_event "onClick"
33
+ assert(browser.text_field(:name,"ie7_text").value == 'test')
34
+ end
35
+ end
36
+
37
+ class TC_DocumentStandards_IE8 < Test::Unit::TestCase
38
+ include Watir::Exception
39
+
40
+ def setup
41
+ goto_page 'ie8_document_standards.html'
42
+ end
43
+
44
+ def test_elements_exist_or_not
45
+ assert(browser.document_mode.to_i == 8)
46
+ assert(browser.text_field(:name,"ie8_text").exists?)
47
+ browser.text_field(:name,"ie8_text").set "test"
48
+ browser.text_field(:name,"ie8_text").fire_event "onClick"
49
+ assert(browser.text_field(:name,"ie8_text").value == 'test')
50
+ end
51
+ end
52
+
53
+ class TC_DocumentStandards_IE9 < Test::Unit::TestCase
54
+ include Watir::Exception
55
+
56
+ def setup
57
+ goto_page 'ie9_document_standards.html'
58
+ end
59
+
60
+ def test_elements_exist_or_not
61
+ assert(browser.document_mode.to_i == 9)
62
+ assert(browser.text_field(:name,"ie9_text").exists?)
63
+ browser.text_field(:name,"ie9_text").set "test"
64
+ browser.text_field(:name,"ie9_text").fire_event "onClick"
65
+ assert(browser.text_field(:name,"ie9_text").value == 'test')
66
+ end
67
+ end
@@ -81,5 +81,14 @@ class TC_ElementCollections < Test::Unit::TestCase
81
81
  assert_raises(Watir::Exception::MissingWayOfFindingObjectException) {browser.divs(:index, 1)}
82
82
  end
83
83
 
84
+ def test_table_rows
85
+ rows = browser.table.rows
86
+ assert 2, rows.size
87
+ rows.each_with_index do |row, i|
88
+ assert Watir::TableRow, row.class
89
+ assert i == 0 ? "one" : "two", row.class_name
90
+ end
91
+ end
92
+
84
93
  end
85
94
 
@@ -173,8 +173,8 @@ class TC_Frame_multiple_attributes < Test::Unit::TestCase
173
173
  goto_page "frame_multi.html"
174
174
  end
175
175
 
176
- def test_get_frame_by_name_and_id
177
- assert_equal('blankpage.html', browser.frame(:id => 'second_frame', :name => 'buttonFrame2').src)
176
+ def test_get_frame_by_name_and_src
177
+ assert_equal('blankpage.html', browser.frame(:src => 'blankpage.html', :name => 'buttonFrame2').src)
178
178
  end
179
179
  end
180
180
 
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <head>
3
+ <meta http-equiv="x-ua-compatible" content="IE=7">
4
+ <title>IE8 document mode</title>
5
+ </head>
6
+ <body>
7
+ <input type=text name=ie7_text>
8
+ </body>
9
+ </html>
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <head>
3
+ <meta http-equiv="x-ua-compatible" content="IE=8">
4
+ <title>IE8 document mode</title>
5
+ </head>
6
+ <body>
7
+ <input type=text name=ie8_text>
8
+ </body>
9
+ </html>
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <head>
3
+ <meta http-equiv="x-ua-compatible" content="IE=9">
4
+ <title>IE8 document mode</title>
5
+ </head>
6
+ <body>
7
+ <input type=text name=ie9_text>
8
+ </body>
9
+ </html>
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <head>
3
+ <title>IE8 document mode</title>
4
+ </head>
5
+ <body>
6
+ <input type=text name=quirks_text>
7
+ </body>
8
+ </html>
@@ -23,4 +23,9 @@ class TC_JSEvents < Test::Unit::TestCase
23
23
  assert(browser.div(:id, 'event_name').text == 'onchange')
24
24
  end
25
25
 
26
+ def test_execute_script
27
+ assert_equal(browser.execute_script("2+2").to_i, 4)
28
+ assert_nil(browser.execute_script("null"))
29
+ end
30
+
26
31
  end
@@ -41,7 +41,6 @@ spec = Gem::Specification.new do |s|
41
41
  s.add_dependency 'ffi', '~>1.0'
42
42
  s.add_dependency 'rautomation', '~>0.6.3'
43
43
 
44
- s.has_rdoc = true
45
44
  s.rdoc_options += $WATIR_RDOC_OPTIONS
46
45
  s.extra_rdoc_files = $WATIR_EXTRA_RDOC_FILES
47
46
  s.executables << 'watir-console'
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease:
4
+ hash: 15424071
5
+ prerelease: 6
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
+ - 2
10
+ - rc
9
11
  - 1
10
- version: 2.0.1
12
+ version: 2.0.2.rc1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Bret Pettichord
@@ -15,7 +17,7 @@ autorequire:
15
17
  bindir: bin
16
18
  cert_chain: []
17
19
 
18
- date: 2011-08-10 00:00:00 Z
20
+ date: 2011-09-08 00:00:00 Z
19
21
  dependencies:
20
22
  - !ruby/object:Gem::Dependency
21
23
  name: win32-process
@@ -57,12 +59,14 @@ dependencies:
57
59
  requirements:
58
60
  - - "="
59
61
  - !ruby/object:Gem::Version
60
- hash: 13
62
+ hash: 15424071
61
63
  segments:
62
64
  - 2
63
65
  - 0
66
+ - 2
67
+ - rc
64
68
  - 1
65
- version: 2.0.1
69
+ version: 2.0.2.rc1
66
70
  type: :runtime
67
71
  version_requirements: *id003
68
72
  - !ruby/object:Gem::Dependency
@@ -171,6 +175,7 @@ files:
171
175
  - unittests/div2_xpath_test.rb
172
176
  - unittests/div_test.rb
173
177
  - unittests/div_xpath_test.rb
178
+ - unittests/document_standards.rb
174
179
  - unittests/element_collections_test.rb
175
180
  - unittests/element_test.rb
176
181
  - unittests/errorchecker_test.rb
@@ -241,6 +246,9 @@ files:
241
246
  - unittests/html/frame_links.html
242
247
  - unittests/html/frame_multi.html
243
248
  - unittests/html/google_india.html
249
+ - unittests/html/ie7_document_standards.html
250
+ - unittests/html/ie8_document_standards.html
251
+ - unittests/html/ie9_document_standards.html
244
252
  - unittests/html/iframe.html
245
253
  - unittests/html/iframeTest.html
246
254
  - unittests/html/iframeTest1.html
@@ -263,6 +271,7 @@ files:
263
271
  - unittests/html/pass.html
264
272
  - unittests/html/popups1.html
265
273
  - unittests/html/pre.html
274
+ - unittests/html/quirks_document_standards.html
266
275
  - unittests/html/radioButtons1.html
267
276
  - unittests/html/selectboxes1.html
268
277
  - unittests/html/select_tealeaf.html
@@ -341,16 +350,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
341
350
  required_rubygems_version: !ruby/object:Gem::Requirement
342
351
  none: false
343
352
  requirements:
344
- - - ">="
353
+ - - ">"
345
354
  - !ruby/object:Gem::Version
346
- hash: 3
355
+ hash: 25
347
356
  segments:
348
- - 0
349
- version: "0"
357
+ - 1
358
+ - 3
359
+ - 1
360
+ version: 1.3.1
350
361
  requirements:
351
362
  - Microsoft Windows running Internet Explorer 5.5 or later.
352
363
  rubyforge_project: Watir
353
- rubygems_version: 1.8.4
364
+ rubygems_version: 1.8.10
354
365
  signing_key:
355
366
  specification_version: 3
356
367
  summary: Automated testing tool for web applications.