ghostbuster 0.3.9 → 0.3.10
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +2 -2
- data/Rakefile +2 -2
- data/bin/ghostbuster +1 -1
- data/lib/ghostbuster.coffee +2 -2
- data/lib/ghostbuster.rb +3 -3
- data/lib/ghostbuster/version.rb +1 -1
- data/test/non_working_ghost/Ghostfile +1 -1
- data/test/working_ghost/Ghostfile +1 -1
- metadata +48 -82
data/README.md
CHANGED
@@ -26,7 +26,7 @@ Your `Ghostfile` handles your configuration. To set the pattern use:
|
|
26
26
|
|
27
27
|
To enable (or disable) screenshots use:
|
28
28
|
|
29
|
-
ghost.take_screenshots! # or #
|
29
|
+
ghost.take_screenshots! # or #do_not_take_screenshots! defaults to take_screenshots!
|
30
30
|
|
31
31
|
To set the directory your screenshots will save to use:
|
32
32
|
|
@@ -64,7 +64,7 @@ You should get some output that looks something like this.
|
|
64
64
|
✓ Form input
|
65
65
|
✓ Link traversal
|
66
66
|
✗ Bad link traversal
|
67
|
-
Assert location failed:
|
67
|
+
Assert location failed: Expected http://127.0.0.1:4567/not-correct, got http://127.0.0.1:4567/
|
68
68
|
✗ Form input not equal
|
69
69
|
Assert first for selector #out did not meet expectations
|
70
70
|
|
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ namespace :test do
|
|
19
19
|
begin
|
20
20
|
matcher.each{|m| out[m] or raise("Couldn't match for #{m.inspect}")}
|
21
21
|
real_size = Dir['*.png'].to_a.size
|
22
|
-
expected_size =
|
22
|
+
expected_size = 22
|
23
23
|
raise("There are a weird number of screenshots, expected #{expected_size}, got #{real_size}") unless expected_size == real_size
|
24
24
|
exit
|
25
25
|
rescue
|
@@ -38,7 +38,7 @@ namespace :test do
|
|
38
38
|
task :non_working do
|
39
39
|
print "non_working_ghost ... "
|
40
40
|
Dir.chdir("test/non_working_ghost") do
|
41
|
-
matcher = [/0 success, 10 failure, 1 pending
|
41
|
+
matcher = [/0 success, 10 failure, 1 pending/m, %r|Bad link traversal\s+Assert location failed: Expected http://127.0.0.1:4567/not-correct, got http://127.0.0.1:4567/|im, /Form input not equal\s+Assert first for selector #out did not meet expectations/m, /To an invalid URL\s+The request for http:\/\/127\.0\.0\.1:this-url-is-invalid failed/m, /This test will explode!\s+I hate you!/m, /This test has no succeed\s+This test took too long/m, /This test has a custom assertion name\s+Assert first "custom assertion name" did not meet expectations/m, /Bad click selector\s+Couldn't find element 0 for selector i-just-made-this-up/m, /Bad click follow\s+Assert not location failed: Expected not http:\/\/127\.0\.0\.1:4567\/, got http:\/\/127\.0\.0\.1:4567\//m]
|
42
42
|
fork {
|
43
43
|
ENV['BUNDLE_GEMFILE'] = File.expand_path("./Gemfile")
|
44
44
|
`bundle install`
|
data/bin/ghostbuster
CHANGED
data/lib/ghostbuster.coffee
CHANGED
@@ -248,7 +248,7 @@ class Body
|
|
248
248
|
location = @test.runner.normalizePath(path)
|
249
249
|
@test.assert opts, (withValue) ->
|
250
250
|
assertionDescription = if opts.name then " \"#{opts.name}\"" else ""
|
251
|
-
alerter = if test.getLastError()? then "" else "alert('Assert location#{assertionDescription} failed:
|
251
|
+
alerter = if test.getLastError()? then "" else "alert('Assert location#{assertionDescription} failed: Expected #{location}, got '+currentLocation);"
|
252
252
|
eval "
|
253
253
|
var fn = function() {
|
254
254
|
var currentLocation = window.location.href;
|
@@ -268,7 +268,7 @@ class Body
|
|
268
268
|
location = @test.runner.normalizePath(path)
|
269
269
|
@test.assert opts, (withValue) ->
|
270
270
|
assertionDescription = if opts.name then " \"#{opts.name}\"" else ""
|
271
|
-
alerter = if test.getLastError()? then "" else "alert('Assert not location#{assertionDescription} failed:
|
271
|
+
alerter = if test.getLastError()? then "" else "alert('Assert not location#{assertionDescription} failed: Expected not #{location}, got '+currentLocation);"
|
272
272
|
eval "
|
273
273
|
var fn = function() {
|
274
274
|
var currentLocation = window.location.href;
|
data/lib/ghostbuster.rb
CHANGED
@@ -63,7 +63,7 @@ class Ghostbuster
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
66
|
-
|
66
|
+
status.to_i
|
67
67
|
end
|
68
68
|
|
69
69
|
def self.run(path)
|
@@ -73,9 +73,9 @@ class Ghostbuster
|
|
73
73
|
private
|
74
74
|
def compress_and_copy_screenshots
|
75
75
|
FileUtils.rm_f(File.join(@config.screenshot_dir, "*.png"))
|
76
|
-
files = Dir[File.join(@temporary_screenshot_dir, '*.png')].to_a
|
76
|
+
files = Dir[File.join(@temporary_screenshot_dir, '*.png')].to_a.sort
|
77
77
|
files.map{|f| f[/(.*?)-\d+\.png$/, 1]}.uniq.each do |cluster|
|
78
|
-
images = files.select{|f| f[cluster]}.sort_by{|f| Integer(f[/\-(\d+)\.png$/, 1])}
|
78
|
+
images = files.select{|f| f[/#{Regexp.quote(cluster)}-\d+\.png$/]}.sort_by{|f| Integer(f[/\-(\d+)\.png$/, 1])}
|
79
79
|
idx = 0
|
80
80
|
while idx < (images.size - 1)
|
81
81
|
if Digest::MD5.file(images[idx]) == Digest::MD5.file(images[idx + 1])
|
data/lib/ghostbuster/version.rb
CHANGED
metadata
CHANGED
@@ -1,95 +1,69 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ghostbuster
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.10
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 9
|
10
|
-
version: 0.3.9
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Josh Hull
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
12
|
+
date: 2011-12-07 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: thin
|
16
|
+
requirement: &70342192270060 !ruby/object:Gem::Requirement
|
22
17
|
none: false
|
23
|
-
requirements:
|
18
|
+
requirements:
|
24
19
|
- - ~>
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 9
|
27
|
-
segments:
|
28
|
-
- 1
|
29
|
-
- 2
|
30
|
-
- 11
|
20
|
+
- !ruby/object:Gem::Version
|
31
21
|
version: 1.2.11
|
32
|
-
requirement: *id001
|
33
22
|
type: :development
|
34
23
|
prerelease: false
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
|
24
|
+
version_requirements: *70342192270060
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &70342192268980 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
29
|
+
requirements:
|
40
30
|
- - ~>
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
hash: 49
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
- 8
|
46
|
-
- 7
|
31
|
+
- !ruby/object:Gem::Version
|
47
32
|
version: 0.8.7
|
48
|
-
requirement: *id002
|
49
33
|
type: :development
|
50
34
|
prerelease: false
|
51
|
-
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
|
35
|
+
version_requirements: *70342192268980
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bundler
|
38
|
+
requirement: &70342192268140 !ruby/object:Gem::Requirement
|
54
39
|
none: false
|
55
|
-
requirements:
|
40
|
+
requirements:
|
56
41
|
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
hash: 11
|
59
|
-
segments:
|
60
|
-
- 1
|
61
|
-
- 0
|
62
|
-
- 14
|
42
|
+
- !ruby/object:Gem::Version
|
63
43
|
version: 1.0.14
|
64
|
-
requirement: *id003
|
65
44
|
type: :development
|
66
45
|
prerelease: false
|
67
|
-
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
|
46
|
+
version_requirements: *70342192268140
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: sinatra
|
49
|
+
requirement: &70342192266580 !ruby/object:Gem::Requirement
|
70
50
|
none: false
|
71
|
-
requirements:
|
72
|
-
- -
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
version: "0"
|
78
|
-
requirement: *id004
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
79
55
|
type: :development
|
80
56
|
prerelease: false
|
81
|
-
|
57
|
+
version_requirements: *70342192266580
|
82
58
|
description: Integration testing ftw.
|
83
|
-
email:
|
59
|
+
email:
|
84
60
|
- joshbuddy@gmail.com
|
85
|
-
executables:
|
61
|
+
executables:
|
86
62
|
- ghostbuster
|
87
63
|
- setup-ghostbuster
|
88
64
|
extensions: []
|
89
|
-
|
90
65
|
extra_rdoc_files: []
|
91
|
-
|
92
|
-
files:
|
66
|
+
files:
|
93
67
|
- .gitignore
|
94
68
|
- Gemfile
|
95
69
|
- README.md
|
@@ -129,38 +103,29 @@ files:
|
|
129
103
|
- test/working_ghost/test_injs.js
|
130
104
|
homepage: https://github.com/joshbuddy/ghostbuster
|
131
105
|
licenses: []
|
132
|
-
|
133
106
|
post_install_message:
|
134
107
|
rdoc_options: []
|
135
|
-
|
136
|
-
require_paths:
|
108
|
+
require_paths:
|
137
109
|
- lib
|
138
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
111
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
|
144
|
-
|
145
|
-
- 0
|
146
|
-
version: "0"
|
147
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ! '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
117
|
none: false
|
149
|
-
requirements:
|
150
|
-
- -
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
|
153
|
-
segments:
|
154
|
-
- 0
|
155
|
-
version: "0"
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
156
122
|
requirements: []
|
157
|
-
|
158
123
|
rubyforge_project: ghostbuster
|
159
124
|
rubygems_version: 1.8.10
|
160
125
|
signing_key:
|
161
126
|
specification_version: 3
|
162
127
|
summary: Integration testing ftw
|
163
|
-
test_files:
|
128
|
+
test_files:
|
164
129
|
- test/non_working_ghost/Gemfile
|
165
130
|
- test/non_working_ghost/Ghostfile
|
166
131
|
- test/non_working_ghost/start.sh
|
@@ -183,3 +148,4 @@ test_files:
|
|
183
148
|
- test/working_ghost/test_ghost.coffee
|
184
149
|
- test/working_ghost/test_ghostmore.coffee
|
185
150
|
- test/working_ghost/test_injs.js
|
151
|
+
has_rdoc:
|