rwebspec 1.4.0

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 ADDED
@@ -0,0 +1,300 @@
1
+ CHANGELOG
2
+ =========
3
+ 1.4.0
4
+ Renamed to rwebspec
5
+ 1.9 compliance
6
+ TODO: support JRuby to run against Firefox and Celerity
7
+
8
+ 1.3.1
9
+ [Enhancement] better absolutize the hyperlinks in dumped page source
10
+ [Fixes] logic in allowing method
11
+
12
+ 1.3
13
+ add new syntax for including pages
14
+ extend RWebSpec::UsingPages
15
+ pages :login_page, :receipt_page, :page_dir => 'c:/temp'
16
+
17
+ 1.2.4
18
+ Generate new rdoc
19
+
20
+ 1.2.3
21
+ New - support_unicode
22
+ More alias assert_select_label_not_present assert_option_not_present
23
+ New - click_button_with_name
24
+
25
+ 1.2.2
26
+
27
+ save_current_page save to ITEST2
28
+
29
+ 1.2.1 (2009-04-02)
30
+
31
+ Fixes - base_url is file://
32
+ New - set_hidden_field
33
+ New - allowing
34
+ New - try { } handles boolean values as well
35
+ Doc update
36
+
37
+ 1.2
38
+ REVISIT all APIs
39
+ - assertions
40
+ - assert_not (new)
41
+ - assert_text_field_value (new)
42
+ - assert_text_present_in_table (renamed)
43
+ - assert_element_present (removed, use assert div(:id, "").exists?)
44
+ - driver.rb
45
+ - wait_until (new)
46
+ - repeat_try_util (new)
47
+ - try (add more clear messages when block failed)
48
+ - add unit tests
49
+ - run unit test against the test page in Firefox Browser
50
+ - major documentation update
51
+
52
+ 1.1.3
53
+ add open_existing_browser
54
+
55
+ 1.1.2 (2009-03-13)
56
+ added goto_url
57
+
58
+ 1.1.1
59
+ add open_browser.rb, check for firefox with jssh is running
60
+ added assert_exists, assert_not_exists
61
+
62
+ 1.1
63
+
64
+ Changed dependency (Assertions) for test-unit 2.0.2, ruby 1.9.1 ready
65
+ Extract popup.rb out
66
+ Added repeat_try in driver.rb
67
+ remove should_not_allow, should_allow. Important!!! don't define methods start with should_not_, should_
68
+
69
+ 1.0.4
70
+ Added: WebBrowser.html WebBrowser.text
71
+ Added: random method in test_utils
72
+ Enhancemet: close_browser works even no browser started in the test
73
+ move open_browser to driver.rb
74
+ fixed include rwebspec causing stack too deep error
75
+
76
+ 1.0.3
77
+ - New set of samples (real life tests)
78
+
79
+ 1.0.2
80
+ - add more unit tests
81
+ Fixes cell_with_id
82
+
83
+ 1.0.1
84
+ [Enhancement] Normalize windows file path before setting upload
85
+
86
+ 1.0 (2008-11-25)
87
+
88
+ TODO:
89
+ Firefox: check the element is hidden or showing,
90
+ Checkfor driver.rb: ajax_call_complete_after_element_hidden
91
+ does not support outerHtml yet
92
+ Firefox: attach browser,
93
+ Unfortundately, Firewatir does not support attaching current window
94
+ Firefox Workaround: element_by_id
95
+
96
+ 0.10.3
97
+ - added label_with_id, span_with_id, cell_with_id
98
+ - better fixes for enabled_popup
99
+
100
+ 0.10.1 (2008-11-08)
101
+ - Upgrade to support Firewatir 1.6.2
102
+ - Work around Firefox reuse one window browser issue
103
+ - Exclude watir/contrib/enabled_popup, user can add themselves
104
+
105
+ 0.9.10 (2008-10-28)
106
+ [Feature] Better support reuse IE window for testing
107
+
108
+ 0.9.9.1
109
+ [Feature] Support pausing in iTest2
110
+
111
+ == 0.9.9
112
+ [Fixes] add "area" method for running tests against Firefox
113
+ [Enhancement] Pass browser type and base_utl when calling attach_browser
114
+
115
+ == 0.9.8
116
+ [New] 'assert_title' to check page title
117
+ [Fixes] Not same two same messages to iTest in a row
118
+
119
+ == 0.9.7
120
+ [TODO] support should.contains?(JAMEs)
121
+ [WORKING] maybe yield to suport
122
+ - add prepare_to_click_button_in_popup() in driver.rb
123
+ - refactor web_tester.rb to use dynamicly create test cases
124
+ - rename web_tester.rb to web_browser.rb
125
+ - add alias visit (goto_page)
126
+ - WebBrowser.attach_browser return rWebUnit WebBrowser instance instead of Watir or Firefox
127
+ - expect_page(Class, argument) added to support one more additional argument
128
+
129
+ == 0.9.6
130
+ - using global variable instead of environment variable passing between rwebspec and iTest
131
+ - add debug()
132
+
133
+ == 0.9.5
134
+ - Add support for iTest to trace execution
135
+
136
+ == 0.9.4 (2008-08-20)
137
+ - change test_context => context, avoid confusing Ruby test
138
+ - refactored driver.rb
139
+
140
+ == 0.9.3
141
+ - add method failsafe {}
142
+
143
+ == 0.9.2
144
+ - sleep 0.5 seconds after clicking popup window
145
+ - save current page
146
+ - (0.9.1.1) support rspec 1.1.4: at exit hook
147
+
148
+ == 0.9.1 (2008-05-26)
149
+ - support storing page source during execution
150
+
151
+ == 0.9 (2008-05-21)
152
+ - support new syntax
153
+ spec "" do
154
+ scenario "1" do
155
+ end
156
+
157
+ story "2" do
158
+ end
159
+ end
160
+
161
+ == 0.8.9
162
+ - support Watir 1.5.4 zippy mode, set it as default
163
+
164
+ == 0.8.8
165
+ - support iTest hiding browse option
166
+
167
+ == 0.8.7
168
+ - support delay between operations (must be click_... type operation) for iTest2
169
+
170
+ == 0.8.6
171
+ - Add dependency on activesupport 2.0.x, xml_simple to support 1.days.ago
172
+ - RSpec Helper, overwrite rspec patch
173
+
174
+ == 0.8.5
175
+ - click button with image
176
+ - better handling new pop up window
177
+ - fixes links_with_text
178
+
179
+ == 0.8.4
180
+ - better support for iTest
181
+ - for firefox support, don't do slow typing, just set text in textfield
182
+
183
+ == 0.8.2
184
+ - fixed assert_link_not_present has .Text
185
+
186
+ == 0.8.1
187
+ - fixed attach_browser issue
188
+
189
+ == 0.8 (2008-01-18)
190
+ - change click_link to click_link_with_text, to for id click, use click_link_with_id
191
+ - change click_button to click_button_with_text, to for id click, use click_button_with_id
192
+
193
+ == 0.7.2 (2007-12-31)
194
+ - Change dependency from Watir => Watir or FireWatir
195
+ Now can run on Mac or Linux
196
+ - Fixes: shall_not_allow syntax error
197
+
198
+ == 0.7.1 (2007-12-24)
199
+ - Fixes error when firefox is not available
200
+
201
+ == 0.7 (2007-12-18)
202
+ - support Firefox using FireWatir
203
+
204
+ == 0.6.9
205
+ - add shall_not_allow
206
+ - more watir wrapper methods
207
+
208
+ == 0.6.4 (2007-11-30)
209
+ - updated rwebspec 0.6.4
210
+ - support javascript window
211
+ - support watir td, tr...
212
+
213
+ == 0.6.0 (2007-11-18)
214
+ - support watir convenient methods
215
+
216
+ == 0.5.4 (2007-11-12)
217
+ - fixed element_by_id
218
+
219
+ == 0.5.3 (2007-11-07)
220
+ - fixed ajax_wait_element with web_tester changes
221
+ - added wait_for_element
222
+
223
+ == 0.5.2 (2007-09-27)
224
+ - added element_text
225
+
226
+ == 0.5.1 (2007-09-21)
227
+ - add wrap of Watir methods, such as buttons, button(...)
228
+ - expose Watir low level methods to test/spec through Driver.rb
229
+ - removed old way using array and comparision to access individual control
230
+ - renamed html_title to page_title
231
+ - add method contains_text
232
+ - make faster checkbox operations
233
+ - make faster radio operations
234
+ - added radio operation in driver.rb
235
+ - renamed ajax_wait_for_element
236
+ - added some comments
237
+
238
+ == 0.5.0
239
+ - Support Watir 1.5.2
240
+
241
+ == 0.4.5
242
+ - support checkboxes with same name
243
+
244
+ == 0.4.2
245
+
246
+ New Features
247
+ - Drop support for java syntax methods
248
+ - remove assert helper methods in web_tester
249
+ - improve support for RSpecs
250
+
251
+ == 0.4.0 (2007-05-29)
252
+
253
+ New features
254
+ - Support RSpec
255
+
256
+ == 0.3.1 (2007-04-18)
257
+
258
+ Bug fix reelase
259
+
260
+ == 0.3.0 (2007-02-16)
261
+
262
+ New features
263
+ - Deprecated Java like method name, use ruby naming convention instead, beginAt => begin_at
264
+ - More ajax related calls: ajax_wait_for_element_show, ajax_wait_for_element_hide, assert_position_in_list
265
+
266
+ == 0.2.0 (2006-11-28)
267
+
268
+ New features:
269
+ - wait_ajax_udpate(elem_id, seconds) - use indicator image id to determine whether the ajax request is completed or not
270
+ - browser_opened?
271
+
272
+ A number of general fixes and code improvements.
273
+
274
+ == 0.1.1
275
+
276
+ New jWebUnit API methods implemented:
277
+ assertOptionEquals(selectName, optionLabel)
278
+ assertOptionValueEquals(selectName, optionValue)
279
+ assertCheckboxNotSelected(checkBoxName)
280
+ assertCheckboxSelected(checkBoxName)
281
+ assertLinkPresentWithExactText(linkText)
282
+ assertLinkNotPresentWithExactText(linkText)
283
+ assertRadioOptionNotPresent(radioGroup, radioOption)
284
+ assertRadioOptionPresent(radioGroup, radioOption)
285
+ assertRadioOptionSelected(radioGroup, radioOption)
286
+ assertRadioOptionNotSelected(radioGroup, radioOption)
287
+ assertTextInTable(tableId, text)
288
+ assertTextNotInTable(tableId, text)
289
+
290
+ API methods modified:
291
+ assertLinkPresentWithText(linkText):
292
+ assertLinkNotPresentWithText(linkText):
293
+
294
+ New rWebUnit API :
295
+ clickRadioOption(radioGroup, radioOption): this method is protected in jWebUnit
296
+
297
+ == 0.1.0
298
+
299
+ * Initial release.
300
+ * Most common web actions and assertions implemented.
data/MIT-LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2006-2008 Zhimin Zhan, zhimin@zhimin.com
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
data/README ADDED
@@ -0,0 +1,33 @@
1
+
2
+ rWebUnit 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.
3
+
4
+ Sample rWebUnit Test:
5
+
6
+ require 'rwebspec'
7
+
8
+ spec "Locate a Suncorp Branch" do
9
+ include RWebSpec::RSpecHelper
10
+
11
+ before(:all) do
12
+ open_browser_with("http://suncorp.com.au/")
13
+ end
14
+
15
+ before(:each) do
16
+ goto_page("/locator")
17
+ end
18
+
19
+ after(:all) do
20
+ close_browser
21
+ end
22
+
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")
28
+ end
29
+ end
30
+
31
+
32
+ iTest2 Homepage: http://www.itest2.com
33
+
data/Rakefile ADDED
@@ -0,0 +1,94 @@
1
+ require 'rubygems'
2
+ require 'spec/rake/spectask'
3
+ require 'rake/rdoctask'
4
+ require 'rake/gempackagetask'
5
+ require 'rdoc' # require rdoc 2
6
+ gem 'darkfish-rdoc'
7
+ # require 'darkfish-rdoc'
8
+
9
+ $:.unshift(File.dirname(__FILE__) + "/lib")
10
+ #require 'rwebspec'
11
+
12
+ desc "Default task"
13
+ task :default => [ :clean, :spec, :rdoc, :chm, :gem]
14
+
15
+ desc "Clean generated files"
16
+ task :clean do
17
+ rm_rf 'pkg'
18
+ rm_rf 'doc'
19
+ rm_rf 'chm'
20
+ end
21
+
22
+ desc 'Run all specs'
23
+ Spec::Rake::SpecTask.new('spec') do |t|
24
+ t.spec_opts = ['--format', 'specdoc', '--colour']
25
+ # t.libs = ["lib", "server/lib" ]
26
+ t.spec_files = Dir['spec/**/*_spec.rb'].sort
27
+ end
28
+
29
+ # Generate the RDoc documentation
30
+ # Rake::RDocTask.new { |rdoc|
31
+ # rdoc.rdoc_dir = 'doc'
32
+ # rdoc.title = 'rWebUnit'
33
+ # rdoc.template = "#{ENV['template']}.rb" if ENV['template']
34
+ # rdoc.rdoc_files.include('README')
35
+ # rdoc.rdoc_files.include('lib/rwebspec.rb')
36
+ # rdoc.rdoc_files.include('lib/rwebspec/*.rb')
37
+ # }
38
+
39
+ # using DarkFish - http://deveiate.org/projects/Darkfish-Rdoc/
40
+ Rake::RDocTask.new do |rdoc|
41
+ rdoc.rdoc_dir = 'doc'
42
+ rdoc.title = 'RWebSpec'
43
+ rdoc.rdoc_files.include('lib/rwebspec.rb')
44
+ rdoc.rdoc_files.include('lib/rwebspec/*.rb')
45
+ rdoc.options += [
46
+ '-SHN',
47
+ '-f', 'darkfish', # This is the important bit
48
+ ]
49
+ end
50
+
51
+ Rake::RDocTask.new("chm") do |rdoc|
52
+ rdoc.rdoc_dir = 'chm'
53
+ rdoc.title = 'RWebSpec'
54
+ rdoc.rdoc_files.include('lib/rwebspec.rb')
55
+ rdoc.rdoc_files.include('lib/rwebspec/*.rb')
56
+ rdoc.options += [
57
+ '-SHN',
58
+ '-f', 'chm', # This is the important bit
59
+ ]
60
+ end
61
+
62
+
63
+ spec = Gem::Specification.new do |s|
64
+ s.platform= Gem::Platform::RUBY
65
+ s.name = "rwebspec"
66
+ s.version = "1.4.0"
67
+ s.summary = "Executable functional specification for web applications in RSpec syntax and Watir"
68
+ # s.description = ""
69
+
70
+ s.author = "Zhimin Zhan"
71
+ s.email = "zhimin@agileway.net"
72
+ s.homepage= "http://github.com/zhimin/rwebspec/tree/master"
73
+ s.rubyforge_project = "rwebspec"
74
+
75
+ s.has_rdoc = true
76
+ s.requirements << 'none'
77
+ s.require_path = "lib"
78
+ s.autorequire = "rwebspec"
79
+
80
+ s.files = [ "Rakefile", "README", "CHANGELOG", "MIT-LICENSE" ]
81
+ s.files = s.files + Dir.glob( "lib/**/*" )
82
+ s.files = s.files + Dir.glob( "test/**/*" )
83
+ s.files = s.files + Dir.glob( "sample/**/*")
84
+ s.files = s.files + Dir.glob( "docs/**/*" )
85
+ s.add_dependency(%q<rspec>, ["= 1.1.12"])
86
+ s.add_dependency("commonwatir", ">= 1.6.2")
87
+ s.add_dependency("test-unit", ">= 2.0.2")
88
+ # s.add_dependency("watir", ">= 1.6.2")
89
+ # s.add_dependency("firewatir", ">= 1.6.2")
90
+ end
91
+
92
+ Rake::GemPackageTask.new(spec) do |pkg|
93
+ pkg.need_zip = true
94
+ end
@@ -0,0 +1,51 @@
1
+ module Spec
2
+ module Extensions
3
+ module Main
4
+
5
+ alias :spec :describe
6
+ alias :specification :describe
7
+ alias :test_suite :describe
8
+ alias :suite :describe
9
+
10
+ end
11
+ end
12
+ end
13
+
14
+ # For RSpec 1.1.12
15
+ module Spec
16
+ module DSL
17
+ module Main
18
+
19
+ alias :spec :describe
20
+ alias :specification :describe
21
+ alias :test_suite :describe
22
+ alias :suite :describe
23
+
24
+ end
25
+ end
26
+ end
27
+
28
+ # ZZ patches to RSpec 1.1.4
29
+ # - add to_s method to example_group
30
+ module Spec
31
+ module Example
32
+ class ExampleGroup
33
+ def to_s
34
+ @_defined_description
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ module Spec
41
+ module Example
42
+ module ExampleGroupMethods
43
+
44
+ alias_method :scenario, :it
45
+ alias_method :story, :it
46
+ alias_method :test_case, :it
47
+ alias_method :use_case, :it
48
+ alias_method :test, :it
49
+ end
50
+ end
51
+ end