rwebspec 1.6 → 1.6.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/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