browsercuke 0.1.1 → 0.1.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/History.txt +15 -0
- data/README.md +43 -25
- data/Rakefile +15 -0
- data/bin/browsercuke +33 -16
- data/bin/sapphirecuke +19 -9
- data/lib/browsercuke.rb +7 -0
- data/support/env.rb +0 -2
- metadata +6 -5
- data/bin/browsercuke-setup +0 -31
data/History.txt
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
=== 0.1.2 / 2010-01-07
|
2
|
+
|
3
|
+
* Reformatted license
|
4
|
+
* Added instructions for creating new releases to the README.md
|
5
|
+
* Removed the broken and unnecessary browsercuke-setup CLI tool
|
6
|
+
* Fixed browsercuke & sapphirecuke CLI tools to be written in ruby (necessary for them to work).
|
7
|
+
* Moved version number to a better location. The existence of the lib/ directory makes Hoe run better.
|
8
|
+
|
9
|
+
=== 0.1.1 / 2010-01-07
|
10
|
+
|
11
|
+
* BUGFIX: Fixed problems with gem dependencies
|
12
|
+
|
13
|
+
=== 0.1.0 / 2010-01-07
|
14
|
+
|
15
|
+
* Initial release as a rubygem
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
|
1
|
+
# BrowserCuke
|
2
2
|
|
3
3
|
http://github.com/sminnee/browsercuke
|
4
4
|
|
5
|
-
|
5
|
+
## DESCRIPTION:
|
6
6
|
|
7
7
|
BrowserCuke is a layer of browser-based testing on top of Cucumber. It provides an intuitive way of
|
8
8
|
writing business-readable tests for your web applications, that use real web browsers to test. Your
|
@@ -14,7 +14,7 @@ For more information about Cucumber, see [the cucumber website](http://cukes.inf
|
|
14
14
|
BrowserCuke currently uses Watir to perform the browser automation, although it may be extended in
|
15
15
|
the future to use something like WebRat to test applications sans-JavaScript.
|
16
16
|
|
17
|
-
|
17
|
+
## FEATURES
|
18
18
|
|
19
19
|
* Tests Safari and Firefox
|
20
20
|
* Looks for page elements like a human would: e.g. ignores hidden elements, and you can use form element labels as identifiers.
|
@@ -37,29 +37,30 @@ Roadmap:
|
|
37
37
|
* Add tests for colour and image changes
|
38
38
|
* Get the FireWatir and SafariWatir monkey patches submitted to those upstream projects.
|
39
39
|
|
40
|
-
|
40
|
+
## INSTALL:
|
41
41
|
|
42
42
|
BrowserCuke is packaged as a gem, so the easiest way of installing BrowserCuke is by running this
|
43
43
|
command:
|
44
44
|
|
45
|
-
|
45
|
+
$ gem install browsercuke
|
46
46
|
|
47
|
-
|
47
|
+
You will also need to make some changes on your system to get the browser
|
48
48
|
|
49
|
-
|
49
|
+
* Safari: Go to System Prefences -> Universal Access and check the box labelled 'Enable access for assistive devices'
|
50
|
+
* Firefox: Install the JSSH extension. You can download it here:
|
51
|
+
* [OS X + FF 3.5](http://wiki.openqa.org/download/attachments/13893658/jssh-3.5.x-Darwin-param.xpi)
|
50
52
|
|
51
|
-
|
53
|
+
## SYNOPSIS:
|
52
54
|
|
53
55
|
Run something like this to execute a test freature.
|
54
56
|
|
55
57
|
browsercuke http://localhost/yoursite create-page.feature
|
56
58
|
|
57
|
-
|
59
|
+
### Using BrowserCuke to run tests from another project
|
58
60
|
|
59
61
|
BrowserCuke doesn't come bundled with any actual tests, so usually you have to write tests as part
|
60
62
|
of your project.
|
61
63
|
|
62
|
-
|
63
64
|
This example runs a copy of BrowserCuke installed in ~/browsercuke to execute the features
|
64
65
|
contained in a Sapphire project. `sake SapphireURL/baseurl` return the URL of the current Sapphire
|
65
66
|
project.
|
@@ -67,11 +68,12 @@ project.
|
|
67
68
|
browsercuke firefox `sake SapphireInfo/baseurl` */tests/cuke/*.feature
|
68
69
|
|
69
70
|
Because BrowserCuke was written in order to support testing of Sapphire projects, we have a special
|
70
|
-
script for this particular example. This will probably
|
71
|
+
script for this particular example. This will probably be merged into Sapphire as BrowserCuke
|
72
|
+
matures.
|
71
73
|
|
72
74
|
sapphirecuke firefox
|
73
75
|
|
74
|
-
|
76
|
+
### Rules
|
75
77
|
|
76
78
|
Please see [the cucumber website](http://cukes.info) for information about the exact cucumber
|
77
79
|
syntax.
|
@@ -179,7 +181,7 @@ Misc
|
|
179
181
|
|
180
182
|
### I put "(text)" in pop-ups
|
181
183
|
|
182
|
-
|
184
|
+
## REQUIREMENTS:
|
183
185
|
|
184
186
|
Currently browsercuke works with the following browsers.
|
185
187
|
|
@@ -188,32 +190,48 @@ Currently browsercuke works with the following browsers.
|
|
188
190
|
|
189
191
|
It has been tested on OS X only; Windows and IE support coming soon!
|
190
192
|
|
191
|
-
|
193
|
+
## DEVELOPERS:
|
192
194
|
|
193
195
|
After checking out the source, run:
|
194
196
|
|
195
|
-
|
197
|
+
$ rake newb
|
196
198
|
|
197
199
|
This task will install any missing dependencies, run the tests/specs,
|
198
200
|
and generate the RDoc.
|
199
201
|
|
200
|
-
|
202
|
+
To create a new release of the gem, to the following:
|
203
|
+
|
204
|
+
* Update the version number in lib/browsercuke.rb
|
205
|
+
* Rebuild the manifest. If it fails initially, create a manifest containaining only
|
206
|
+
`lib/browsercuke.rb` and re-execute.
|
207
|
+
|
208
|
+
rake git:manifest
|
209
|
+
|
210
|
+
* Call `rake git:changelog` and put the result at the top of History.txt, with the appropriate
|
211
|
+
version number
|
212
|
+
* Commit the changes to lib/browsercuke.rb and History.txt with commit message like "Created vX.Y.Z"
|
213
|
+
* Package the gem and release it to Gemcutter
|
214
|
+
|
215
|
+
rake publish
|
216
|
+
|
217
|
+
## LICENSE:
|
201
218
|
|
202
219
|
Browsercuke is licensed under the BSD license
|
203
220
|
|
204
|
-
Copyright (c) 2009, Sam Minnée
|
221
|
+
Copyright (c) 2009, Sam Minnée
|
205
222
|
All rights reserved.
|
206
223
|
|
207
224
|
Redistribution and use in source and binary forms, with or without
|
208
225
|
modification, are permitted provided that the following conditions are met:
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
226
|
+
|
227
|
+
* Redistributions of source code must retain the above copyright
|
228
|
+
notice, this list of conditions and the following disclaimer.
|
229
|
+
* Redistributions in binary form must reproduce the above copyright
|
230
|
+
notice, this list of conditions and the following disclaimer in the
|
231
|
+
documentation and/or other materials provided with the distribution.
|
232
|
+
* Neither the name of the <organization> nor the
|
233
|
+
names of its contributors may be used to endorse or promote products
|
234
|
+
derived from this software without specific prior written permission.
|
217
235
|
|
218
236
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
219
237
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'hoe'
|
3
|
+
|
4
|
+
Hoe.plugin :git
|
5
|
+
|
6
|
+
Hoe.spec 'browsercuke' do
|
7
|
+
self.readme_file = 'README.md'
|
8
|
+
|
9
|
+
developer('Sam Minnée', 'sam@silverstripe.com')
|
10
|
+
|
11
|
+
extra_deps << ['cucumber', '>= 0.4.4']
|
12
|
+
extra_deps << ['firewatir', '>= 1.6.5']
|
13
|
+
extra_deps << ['safariwatir', '>= 0.3.7']
|
14
|
+
extra_deps << ['rb-appscript', '>= 0.5.3']
|
15
|
+
end
|
data/bin/browsercuke
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
-
#!/usr/bin/env
|
2
|
-
|
3
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'ftools'
|
4
|
+
require 'rubygems'
|
5
|
+
|
6
|
+
if ARGV.count < 2 then
|
7
|
+
puts "Usage: $0 (browser) (url) (feature-file) (other cucumber args)
|
4
8
|
|
5
9
|
Run the given feature file using the URL has the test site, on the given browser.
|
6
10
|
|
@@ -10,20 +14,33 @@ Supported browsers:
|
|
10
14
|
|
11
15
|
"
|
12
16
|
exit 1
|
13
|
-
|
17
|
+
end
|
14
18
|
|
15
|
-
|
19
|
+
# Build list of step def -r arguments
|
20
|
+
baseDir = File.dirname(File.dirname(__FILE__))
|
21
|
+
stepDefArgs = ['-r', baseDir + '/support', '-r', baseDir + '/step_definitions']
|
16
22
|
|
17
|
-
|
18
|
-
|
23
|
+
# Special case for Sapphire applications - collect all the step_definitions from the modules
|
24
|
+
if File.exist?('sapphire/tests/cuke') then
|
25
|
+
dirs = Dir.entries(".")
|
26
|
+
dirs.each do | item |
|
27
|
+
if File.exist?(item + '/tests/cuke') then
|
28
|
+
stepDefArgs << "-r"
|
29
|
+
stepDefArgs << item + '/tests/cuke'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
19
33
|
|
34
|
+
# Pass data along to cucumber
|
35
|
+
extraArgs = ARGV.dup
|
36
|
+
ENV['BROWSERSALAD_BROWSER'] = extraArgs.shift
|
37
|
+
ENV['BROWSERSALAD_URL'] = extraArgs.shift
|
20
38
|
|
21
|
-
#
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
cucumber -r $basedir/support -r $basedir/step_definitions $extras $3 $4 $5 $6 $7 $8 $9
|
39
|
+
# We can't reassign ARGV but we can manipulate its contents
|
40
|
+
ARGV.clear
|
41
|
+
(stepDefArgs+extraArgs).each do |arg|
|
42
|
+
ARGV.push arg
|
43
|
+
end
|
44
|
+
|
45
|
+
# Call cucumber
|
46
|
+
load Gem.bin_path('cucumber', 'cucumber', ">= 0")
|
data/bin/sapphirecuke
CHANGED
@@ -1,16 +1,26 @@
|
|
1
|
-
#!/usr/bin/env
|
2
|
-
if
|
3
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
if ARGV.count < 1 then
|
3
|
+
puts "Usage: $0 (browser)
|
4
4
|
"
|
5
5
|
exit 1
|
6
|
-
|
6
|
+
end
|
7
7
|
|
8
|
-
if
|
9
|
-
|
8
|
+
if not File.exist?('sapphire/main.php') then
|
9
|
+
puts "Please run $0 from within your sapphire project root.
|
10
10
|
I couldn't find ./sapphire/main.php.
|
11
11
|
"
|
12
12
|
exit 2
|
13
|
-
|
13
|
+
end
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
# We can't reassign ARGV but we can manipulate its contents
|
16
|
+
browser = ARGV[1]
|
17
|
+
baseURL = `php ./sapphire/cli-script.php SapphireInfo/baseurl`
|
18
|
+
features = "*/tests/cuke/*.feature"
|
19
|
+
|
20
|
+
ARGV.clear
|
21
|
+
ARGV << browser
|
22
|
+
ARGV << baseURL
|
23
|
+
ARGV << features
|
24
|
+
|
25
|
+
# Call browsercuke
|
26
|
+
load File.dirname(__FILE__) + '/browsercuke'
|
data/lib/browsercuke.rb
ADDED
data/support/env.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browsercuke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Sam Minn\xC3\xA9e"
|
@@ -76,18 +76,19 @@ email:
|
|
76
76
|
- sam@silverstripe.com
|
77
77
|
executables:
|
78
78
|
- browsercuke
|
79
|
-
- browsercuke-setup
|
80
79
|
- sapphirecuke
|
81
80
|
extensions: []
|
82
81
|
|
83
|
-
extra_rdoc_files:
|
84
|
-
|
82
|
+
extra_rdoc_files:
|
83
|
+
- History.txt
|
85
84
|
files:
|
86
85
|
- .gitignore
|
86
|
+
- History.txt
|
87
87
|
- README.md
|
88
|
+
- Rakefile
|
88
89
|
- bin/browsercuke
|
89
|
-
- bin/browsercuke-setup
|
90
90
|
- bin/sapphirecuke
|
91
|
+
- lib/browsercuke.rb
|
91
92
|
- step_definitions/browser/README.md
|
92
93
|
- step_definitions/browser/ajax.rb
|
93
94
|
- step_definitions/browser/buttons.rb
|
data/bin/browsercuke-setup
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
echo "Browsercuke OS X installer
|
3
|
-
===========================
|
4
|
-
"
|
5
|
-
|
6
|
-
ffbin=/Applications/Firefox.app/Contents/MacOS/firefox-bin
|
7
|
-
|
8
|
-
|
9
|
-
if [ ! -f jssh-3.5.x-Darwin-param.xpi ]; then
|
10
|
-
echo "> Downloading Firefox 3.5 JSSH plugin"
|
11
|
-
wget http://wiki.openqa.org/download/attachments/13893658/jssh-3.5.x-Darwin-param.xpi
|
12
|
-
fi
|
13
|
-
|
14
|
-
echo "> Installing Firefox 3.5 JSSH plugin"
|
15
|
-
open ./jssh-3.5.x-Darwin-param.xpi
|
16
|
-
|
17
|
-
echo "> Please go to System Prefences -> Universal Access and check the box labelled 'Enable access for assistive devices'
|
18
|
-
|
19
|
-
When you're done, press enter to continue."
|
20
|
-
|
21
|
-
read -s -n1
|
22
|
-
|
23
|
-
echo "
|
24
|
-
Done!
|
25
|
-
|
26
|
-
You should be able to run one of these commands now:
|
27
|
-
|
28
|
-
browsercuke firefox http://localhost/yourtestsite create-page.feature
|
29
|
-
browsercuke safari http://localhost/yourtestsite create-page.feature
|
30
|
-
|
31
|
-
"
|