rwebspec 1.6 → 1.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,6 +1,13 @@
1
1
  CHANGELOG
2
2
  =========
3
- 1.6
3
+ 1.6.2
4
+ add helper method: basic_authentication for IE and Firefox
5
+
6
+ 1.6.1 (2010-07-08)
7
+ Update load test installer
8
+ Extend Watir to suppoort calling JScript/VBscript in IE
9
+
10
+ 1.6 (2010-04)
4
11
  Include ScreenCapture
5
12
 
6
13
  1.5.4
data/README CHANGED
@@ -1,33 +1,41 @@
1
1
 
2
- RWebSpec wraps the popular web testing framework WATIR with RSpec Syntax to provide better easy to read automated web test cases. By using iTest/Watir recorder, the rWebUnit test scripts can be recorded in Firefox. iTest2 makes editing/executing test cases with ease.
2
+ RWebSpec wraps the popular web testing framework WATIR with RSpec Syntax to provide better easy to read automated web test cases. By using TestWise/Watir recorder, the RWebSpec test scripts can be recorded in Firefox. TestWise, The Next-Generation Functional Testing IDE, makes editing/executing test cases with ease.
3
3
 
4
- Sample rWebUnit Test:
4
+ Sample RWebSpec Test:
5
5
 
6
- require 'rwebspec'
6
+ load File.dirname(__FILE__) + '/test_helper.rb'
7
7
 
8
- spec "Locate a Suncorp Branch" do
9
- include RWebSpec::RSpecHelper
8
+ specification "User Profile" do
9
+ include TestHelper
10
10
 
11
11
  before(:all) do
12
- open_browser_with("http://suncorp.com.au/")
13
- end
14
-
15
- before(:each) do
16
- goto_page("/locator")
12
+ open_browser("http://demo.adminwise.com")
13
+ reset_database
17
14
  end
18
15
 
19
16
  after(:all) do
20
- close_browser
17
+ fail_safe { logout }
21
18
  end
22
19
 
23
- scenario "Find by extended trading hours" do
24
- checkbox(:id, "OpenExtendedTradingHoursSerivceId").click # using Watir directly
25
- enter_text("Postcode_Locator__Postcode", "4061")
26
- click_button_with_image("search_button.gif")
27
- page_source.should include("Queen St Mall")
20
+ story "[8] User can change password" do
21
+ login_as("bob", "password")
22
+ click_link("Profile")
23
+ click_link("Change password")
24
+
25
+ password_change_page = expect_page PasswordChangePage
26
+ password_change_page.enter_current("password")
27
+ password_change_page.enter_new("newpass")
28
+ password_change_page.enter_confirm("newpass")
29
+ password_change_page.click_button("Change")
30
+
31
+ logout
32
+ login_as("bob", "newpass")
33
+ assert_link_present_with_text("Profile") # login Ok
28
34
  end
35
+
29
36
  end
30
37
 
31
38
 
32
- iTest2 Homepage: http://www.itest2.com
39
+
40
+ TestWise Homepage: http://www.testwisely.com/en/testwise
33
41
 
data/Rakefile CHANGED
@@ -72,7 +72,7 @@ end
72
72
  spec = Gem::Specification.new do |s|
73
73
  s.platform= Gem::Platform::RUBY
74
74
  s.name = "rwebspec"
75
- s.version = "1.6"
75
+ s.version = "1.6.2"
76
76
  s.summary = "Executable functional specification for web applications in RSpec syntax and Watir"
77
77
  # s.description = ""
78
78
 
@@ -13,13 +13,13 @@ require File.join(File.dirname(__FILE__), 'matchers', "contains_text.rb")
13
13
  require 'timeout'
14
14
  require 'uri'
15
15
 
16
- require 'watir/screen_capture' if RUBY_PLATFORM.downcase.include?("mswin") or RUBY_PLATFORM.downcase.include?("mingw")
16
+ require 'watir/screen_capture' if RUBY_PLATFORM.downcase.include?("mswin") or RUBY_PLATFORM.downcase.include?("mingw")
17
17
 
18
18
  module RWebSpec
19
19
  module Driver
20
20
  include RWebSpec::TestWisePlugin
21
21
  include RWebSpec::Popup
22
- include Watir::ScreenCapture if RUBY_PLATFORM.downcase.include?("mswin") or RUBY_PLATFORM.downcase.include?("mingw")
22
+ include Watir::ScreenCapture if RUBY_PLATFORM.downcase.include?("mswin") or RUBY_PLATFORM.downcase.include?("mingw")
23
23
 
24
24
  @@default_polling_interval = 1 # second
25
25
  @@default_timeout = 30 # seconds
@@ -180,11 +180,11 @@ module RWebSpec
180
180
  #
181
181
  # attach_browser(:title, )
182
182
  def attach_browser(how, what, options = {})
183
- options.merge!(:browser => is_firefox? ? "Firefox" : "IE")
183
+ options.merge!(:browser => is_firefox? ? "Firefox" : "IE") unless options[:browser]
184
184
  begin
185
185
  options.merge!(:base_url => browser.context.base_url)
186
186
  rescue => e
187
- puts "error to attach to browser: #{e}"
187
+ puts "failed to set base_url, ignore : #{e}"
188
188
  end
189
189
  WebBrowser.attach_browser(how, what, options)
190
190
  end
@@ -241,8 +241,8 @@ module RWebSpec
241
241
  # text_field <input> tags with the type=text (single-line), type=textarea (multi-line), and type=password
242
242
  # p <p> (paragraph) tags, because
243
243
  [:area, :button, :cell, :checkbox, :div, :form, :frame, :h1, :h2, :h3, :h4, :h5, :h6, :hidden, :image, :li, :link, :map, :pre, :row, :radio, :select_list, :span, :table, :text_field, :paragraph, :file_field, :label].each do |method|
244
- define_method method do |*args|
245
- perform_operation { @web_browser.send(method, *args) if @web_browser }
244
+ define_method method do |* args|
245
+ perform_operation { @web_browser.send(method, * args) if @web_browser }
246
246
  end
247
247
  end
248
248
  alias td cell
@@ -270,8 +270,8 @@ module RWebSpec
270
270
  # page.check_checkbox('good_ones', ['Cars', 'Toy Story'])
271
271
  #
272
272
  [:set_form_element, :click_link_with_text, :click_link_with_id, :submit, :click_button_with_id, :click_button_with_name, :click_button_with_caption, :click_button_with_value, :click_radio_option, :clear_radio_option, :check_checkbox, :uncheck_checkbox, :select_option].each do |method|
273
- define_method method do |*args|
274
- perform_operation { @web_browser.send(method, *args) if @web_browser }
273
+ define_method method do |* args|
274
+ perform_operation { @web_browser.send(method, * args) if @web_browser }
275
275
  end
276
276
  end
277
277
 
@@ -288,7 +288,7 @@ module RWebSpec
288
288
  perform_operation { text_field(:id, textfield_id).set(value) }
289
289
  end
290
290
 
291
- def perform_operation(&block)
291
+ def perform_operation(& block)
292
292
  begin
293
293
  dump_caller_stack
294
294
  operation_delay
@@ -437,9 +437,9 @@ module RWebSpec
437
437
  require 'hpricot'
438
438
  doc = Hpricot(content)
439
439
  base_url.slice!(-1) if ends_with?(base_url, "/")
440
- (doc/'link').each { |e| e['href'] = absolutify_url(e['href'], base_url, parent_url) || ""}
441
- (doc/'img').each { |e| e['src'] = absolutify_url(e['src'], base_url, parent_url) || ""}
442
- (doc/'script').each { |e| e['src'] = absolutify_url(e['src'], base_url, parent_url) || ""}
440
+ (doc/'link').each { |e| e['href'] = absolutify_url(e['href'], base_url, parent_url) || "" }
441
+ (doc/'img').each { |e| e['src'] = absolutify_url(e['src'], base_url, parent_url) || "" }
442
+ (doc/'script').each { |e| e['src'] = absolutify_url(e['src'], base_url, parent_url) || "" }
443
443
  return doc.to_html
444
444
  rescue => e
445
445
  absolutize_page(content, base_url, parent_url)
@@ -569,7 +569,7 @@ module RWebSpec
569
569
  # i.enter_text('btn1')
570
570
  # i.click_button('btn1')
571
571
  # end
572
- def on(page, &block)
572
+ def on(page, & block)
573
573
  yield page
574
574
  end
575
575
 
@@ -577,7 +577,7 @@ module RWebSpec
577
577
  #
578
578
  # Example:
579
579
  # shall_not_allow { 1/0 }
580
- def shall_not_allow(&block)
580
+ def shall_not_allow(& block)
581
581
  operation_performed_ok = false
582
582
  begin
583
583
  yield
@@ -593,7 +593,7 @@ module RWebSpec
593
593
  #
594
594
  # Example:
595
595
  # allow { click_button('Register') }
596
- def allow(&block)
596
+ def allow(& block)
597
597
  yield
598
598
  end
599
599
 
@@ -604,7 +604,7 @@ module RWebSpec
604
604
  #
605
605
  # Example:
606
606
  # failsafe { click_link("Logout") } # try logout, but it still OK if not being able to (already logout))
607
- def failsafe(&block)
607
+ def failsafe(& block)
608
608
  begin
609
609
  yield
610
610
  rescue =>e
@@ -624,7 +624,7 @@ module RWebSpec
624
624
  # wait_until {puts 'hello'}
625
625
  # wait_until { div(:id, :receipt_date).exists? }
626
626
  #
627
- def wait_until(timeout = @@default_timeout || 30, polling_interval = @@default_polling_interval || 1, &block)
627
+ def wait_until(timeout = @@default_timeout || 30, polling_interval = @@default_polling_interval || 1, & block)
628
628
  waiter = Watir::Waiter.new(timeout, polling_interval)
629
629
  waiter.wait_until { yield }
630
630
  end
@@ -714,7 +714,7 @@ module RWebSpec
714
714
  # Example
715
715
  # repeat_try(3, 2) { click_button('Search' } # 3 times, 6 seconds in total
716
716
  # repeat_try { click_button('Search' } # using default 5 tries, 2 second interval
717
- def repeat_try(num_tries = @@default_timeout || 30, interval = @@default_polling_interval || 1, &block)
717
+ def repeat_try(num_tries = @@default_timeout || 30, interval = @@default_polling_interval || 1, & block)
718
718
  num_tries ||= 1
719
719
  (num_tries - 1).times do |num|
720
720
  begin
@@ -743,7 +743,7 @@ module RWebSpec
743
743
  # try { click_link('waiting')}
744
744
  # try(10, 2) { click_button('Search' } # try to click the 'Search' button upto 10 seconds, try every 2 seconds
745
745
  # try { click_button('Search' }
746
- def try(timeout = @@default_timeout, polling_interval = @@default_polling_interval || 1, &block)
746
+ def try(timeout = @@default_timeout, polling_interval = @@default_polling_interval || 1, & block)
747
747
  start_time = Time.now
748
748
 
749
749
  last_error = nil
@@ -766,17 +766,17 @@ module RWebSpec
766
766
  ##
767
767
  # Convert :first to 1, :second to 2, and so on...
768
768
  def symbol_to_sequence(symb)
769
- value = { :zero => 0,
770
- :first => 1,
771
- :second => 2,
772
- :third => 3,
773
- :fourth => 4,
774
- :fifth => 5,
775
- :sixth => 6,
776
- :seventh => 7,
777
- :eighth => 8,
778
- :ninth => 9,
779
- :tenth => 10 }[symb]
769
+ value = {:zero => 0,
770
+ :first => 1,
771
+ :second => 2,
772
+ :third => 3,
773
+ :fourth => 4,
774
+ :fifth => 5,
775
+ :sixth => 6,
776
+ :seventh => 7,
777
+ :eighth => 8,
778
+ :ninth => 9,
779
+ :tenth => 10}[symb]
780
780
  return value || symb.to_i
781
781
  end
782
782
 
@@ -850,6 +850,55 @@ module RWebSpec
850
850
  end
851
851
  end
852
852
 
853
+ # Use AutoIT3 to send password
854
+ # title starts with "Connect to ..."
855
+ def basic_authentication_ie(title, username, password, options = {})
856
+ default_options = {:textctrl_username => "Edit2",
857
+ :textctrl_password => "Edit3",
858
+ :button_ok => 'Button1'
859
+ }
860
+
861
+ options = default_options.merge(options)
862
+
863
+ title ||= ""
864
+ if title =~ /^Connect\sto/
865
+ full_title = title
866
+ else
867
+ full_title = "Connect to #{title}"
868
+ end
869
+ require 'rformspec'
870
+ login_win = RFormSpec::Window.new(full_title)
871
+ login_win.send_control_text(options[:textctrl_username], username)
872
+ login_win.send_control_text(options[:textctrl_password], password)
873
+ login_win.click_button("OK")
874
+ end
875
+
876
+ # Use JSSH to pass authentication
877
+ # Window title "Authentication required"
878
+ def basic_authentication_firefox(username, password, wait = 3)
879
+ jssh_command = "
880
+ var length = getWindows().length;
881
+ var win;
882
+ var found = false;
883
+ for (var i = 0; i < length; i++) {
884
+ win = getWindows()[i];
885
+ if(win.document.title == \"Authentication Required\") {
886
+ found = true;
887
+ break;
888
+ }
889
+ }
890
+ if (found) {
891
+ var jsdocument = win.document;
892
+ var dialog = jsdocument.getElementsByTagName(\"dialog\")[0];
893
+ jsdocument.getElementsByTagName(\"textbox\")[0].value = \"#{username}\";
894
+ jsdocument.getElementsByTagName(\"textbox\")[1].value = \"#{password}\";
895
+ dialog.getButton(\"accept\").click();
896
+ }
897
+ \n"
898
+ sleep(wait)
899
+ $jssh_socket.send(jssh_command, 0)
900
+ # read_socket()
901
+ end
853
902
 
854
903
  # take_screenshot to save the current active window
855
904
  # TODO can't move mouse
@@ -5,9 +5,13 @@ module RWebSpec
5
5
  include RWebSpec::Utils
6
6
  include RWebSpec::Assert
7
7
 
8
+ MAX_VU = 1000
9
+
8
10
  # only support firefox or Celerity
9
- def open_browser(base_url, options)
10
- options[:firefox] ||= (ENV['ILOAD2_PREVIEW'] == true)
11
+ def open_browser(base_url, options = {})
12
+ default_options = {:resynchronize => false, :firefox => false }
13
+ options = default_options.merge(options)
14
+ options[:firefox] ||= (ENV['LOADWISE_PREVIEW'] || $LOADWISE_PREVIEW)
11
15
  RWebSpec::WebBrowser.new(base_url, nil, options)
12
16
  end
13
17
 
@@ -78,33 +82,91 @@ module RWebSpec
78
82
  end
79
83
 
80
84
  # monitor current execution using
81
- #
85
+ #
82
86
  # Usage
83
87
  # log_time { browser.click_button('Confirm') }
84
- def log_time(msg, &block)
88
+ def log_time(msg, &block)
85
89
  start_time = Time.now
86
- yield
90
+ yield
91
+ end_time = Time.now
92
+
87
93
  Thread.current[:log] ||= []
88
- Thread.current[:log] << [File.basename(__FILE__), msg, Time.now, Time.now - start_time]
94
+ Thread.current[:log] << {:file => File.basename(__FILE__),
95
+ :message => msg,
96
+ :start_time => Time.now,
97
+ :duration => Time.now - start_time}
98
+
99
+ if $LOADWISE_MONITOR
100
+ begin
101
+ require 'java'
102
+ puts "Calling Java 1"
103
+ java_import com.loadwise.db.MemoryDatabase
104
+ #puts "Calling Java 2: #{MemoryDatabase.count}"
105
+ MemoryDatabase.addEntry(1, "zdfa01", "a_spec.rb", msg, start_time, end_time);
106
+ puts "Calling Java Ok: #{MemoryDatabase.count}"
107
+ rescue NameError => ne
108
+ puts "Name Error: #{ne}"
109
+ # failed to load Java class
110
+ rescue => e
111
+ puts "Failed to calling Java: #{e.class.name}"
112
+ end
113
+ end
114
+ # How to notify LoadWise at real time
115
+ # LoadWise to collect CPU
89
116
  end
90
117
 
91
- def run_with_virtual_users(virtual_user_count = 2, &block)
92
- raise "too many virtual users" if virtual_user_count > 100 #TODO
93
- if (virtual_user_count <= 1)
94
- yield
95
- else
96
- threads = []
97
- virtual_user_count.times do |idx|
98
- threads[idx] = Thread.new do
99
- start_time = Time.now
100
- yield
101
- puts "Thread[#{idx+1}] #{Time.now - start_time}s"
102
- end
103
- end
118
+ def run_with_virtual_users(virtual_user_count = 2, preview = false, &block)
119
+ raise "too many virtual users" if virtual_user_count > MAX_VU
120
+
121
+ begin
122
+ if defined?(LOADWISE_PREVIEW)
123
+ preview = LOADWISE_PREVIEW
124
+ end
125
+ rescue => e1
126
+ end
127
+
128
+ if preview
129
+ virtual_user_count = 1
130
+ $LOADWISE_PREVIEW = true
131
+ end
132
+
133
+ if (virtual_user_count <= 1)
134
+ yield
135
+ else
136
+ threads = []
137
+ vu_reports = {}
138
+ virtual_user_count.times do |idx|
139
+ threads[idx] = Thread.new do
140
+ start_time = Time.now
141
+ vu_reports[idx] ||= []
142
+ begin
143
+ yield
144
+ vu_reports[idx] = Thread.current[:log]
145
+ rescue => e
146
+ vu_reports[idx] = Thread.current[:log]
147
+ vu_reports[idx] ||= []
148
+ vu_reports[idx] << { :error => e }
149
+ end
150
+ vu_reports[idx] ||= []
151
+ vu_reports[idx] << { :message => "Total Duration", :duration => Time.now - start_time }
152
+ puts "VU[#{idx+1}] #{Time.now - start_time}s"
153
+ end
154
+ end
104
155
 
105
- threads.each {|t| t.join }
106
- end
107
- end
156
+ threads.each {|t| t.join; }
157
+ vu_reports.each do |key, value|
158
+ value.each do |entry|
159
+ if entry[:error] then
160
+ puts "Error: #{entry[:error]}"
161
+ else
162
+ puts "[#{key}] #{entry[:message]}, #{entry[:duration]}"
163
+ end
164
+ end
165
+ end
166
+
167
+ return vu_reports
168
+ end
169
+ end
108
170
 
109
171
  end
110
172
  end
@@ -519,7 +519,8 @@ module RWebSpec
519
519
  options = default_options.merge(options)
520
520
  site_context = Context.new(options[:base_url]) if options[:base_url]
521
521
  if (options[:browser] == "Firefox")
522
- return WebBrowser.new_from_existing(FireWatir::Firefox.new.attach(how, what), site_context)
522
+ ff = FireWatir::Firefox.attach(how, what)
523
+ return WebBrowser.new_from_existing(ff, site_context)
523
524
  else
524
525
  return WebBrowser.new_from_existing(Watir::IE.attach(how, what), site_context)
525
526
  end
data/lib/rwebspec.rb CHANGED
@@ -14,7 +14,7 @@ require 'active_support/core_ext'
14
14
  require 'spec'
15
15
 
16
16
  unless defined? RWEBSPEC_VERSION
17
- RWEBSPEC_VERSION = RWEBUNIT_VERSION = "1.6"
17
+ RWEBSPEC_VERSION = RWEBUNIT_VERSION = "1.6.2"
18
18
  end
19
19
 
20
20
  # Extra full path to load libraries
@@ -30,6 +30,10 @@ require File.dirname(__FILE__) + "/rwebspec/rspec_helper"
30
30
  require File.dirname(__FILE__) + "/rwebspec/load_test_helper"
31
31
  require File.dirname(__FILE__) + "/rspec_extensions"
32
32
  require File.dirname(__FILE__) + "/watir_extensions"
33
+ if RUBY_PLATFORM =~ /mswin/ or RUBY_PLATFORM =~ /mingw/
34
+ require File.dirname(__FILE__) + "/window_script_extensions.rb"
35
+ end
36
+
33
37
  require File.dirname(__FILE__) + "/rwebspec/matchers/contains_text"
34
38
  require File.dirname(__FILE__) + "/rwebspec/testwise_plugin"
35
39
 
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'watir'
3
+
4
+ # Used for calling javacript of VBScript
5
+ # Applies to IE only
6
+ #
7
+ # Ref: http://msdn.microsoft.com/en-us/library/aa741364%28VS.85%29.aspx
8
+ #
9
+ module Watir
10
+ class IE
11
+ def execute_script(scriptCode)
12
+ window.execScript(scriptCode)
13
+ end
14
+
15
+ def window
16
+ ie.Document.parentWindow
17
+ end
18
+ end
19
+ end
metadata CHANGED
@@ -1,37 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rwebspec
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.6"
4
+ hash: 11
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 6
9
+ - 2
10
+ version: 1.6.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - Zhimin Zhan
8
- autorequire: rwebspec
14
+ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-05-16 00:00:00 +10:00
18
+ date: 2010-07-08 00:00:00 +10:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: rspec
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - "="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 11
30
+ segments:
31
+ - 1
32
+ - 1
33
+ - 12
23
34
  version: 1.1.12
24
- version:
35
+ type: :runtime
36
+ version_requirements: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: commonwatir
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
30
42
  requirements:
31
43
  - - ">="
32
44
  - !ruby/object:Gem::Version
45
+ hash: 5
46
+ segments:
47
+ - 1
48
+ - 6
49
+ - 5
33
50
  version: 1.6.5
34
- version:
51
+ type: :runtime
52
+ version_requirements: *id002
35
53
  description:
36
54
  email: zhimin@agileway.net
37
55
  executables: []
@@ -49,22 +67,22 @@ files:
49
67
  - lib/rwebspec/assert.rb
50
68
  - lib/rwebspec/clickJSDialog.rb
51
69
  - lib/rwebspec/context.rb
52
- - lib/rwebspec/database_checker.rb
53
70
  - lib/rwebspec/driver.rb
54
- - lib/rwebspec/load_test_helper.rb
71
+ - lib/rwebspec/testwise_plugin.rb
55
72
  - lib/rwebspec/matchers/contains_text.rb
56
73
  - lib/rwebspec/popup.rb
57
74
  - lib/rwebspec/rspec_helper.rb
58
75
  - lib/rwebspec/test_script.rb
59
76
  - lib/rwebspec/test_utils.rb
60
- - lib/rwebspec/testwise_plugin.rb
61
77
  - lib/rwebspec/using_pages.rb
62
78
  - lib/rwebspec/web_browser.rb
63
79
  - lib/rwebspec/web_page.rb
64
80
  - lib/rwebspec/web_testcase.rb
65
81
  - lib/rwebspec.rb
66
- - lib/rwebunit.rb
67
82
  - lib/watir_extensions.rb
83
+ - lib/rwebspec/load_test_helper.rb
84
+ - lib/rwebspec/database_checker.rb
85
+ - lib/window_script_extensions.rb
68
86
  has_rdoc: true
69
87
  homepage: http://github.com/zhimin/rwebspec/tree/master
70
88
  licenses: []
@@ -75,23 +93,29 @@ rdoc_options: []
75
93
  require_paths:
76
94
  - lib
77
95
  required_ruby_version: !ruby/object:Gem::Requirement
96
+ none: false
78
97
  requirements:
79
98
  - - ">="
80
99
  - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
81
103
  version: "0"
82
- version:
83
104
  required_rubygems_version: !ruby/object:Gem::Requirement
105
+ none: false
84
106
  requirements:
85
107
  - - ">="
86
108
  - !ruby/object:Gem::Version
109
+ hash: 3
110
+ segments:
111
+ - 0
87
112
  version: "0"
88
- version:
89
113
  requirements:
90
114
  - none
91
115
  rubyforge_project: rwebspec
92
- rubygems_version: 1.3.5
116
+ rubygems_version: 1.3.7
93
117
  signing_key:
94
- specification_version: 3
118
+ specification_version: 2
95
119
  summary: Executable functional specification for web applications in RSpec syntax and Watir
96
120
  test_files: []
97
121
 
data/lib/rwebunit.rb DELETED
@@ -1,3 +0,0 @@
1
- # legacy code to support old 'require rwebunit'
2
- require File.dirname(__FILE__) + "/rwebspec"
3
- RWebUnit = RWebSpec