goggles 0.8.2 → 0.9.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +0 -4
- data/features/goggles.feature +23 -0
- data/features/step_definitions/goggles_steps.rb +27 -0
- data/features/support/env.rb +5 -0
- data/goggles.gemspec +1 -0
- data/lib/goggles.rb +5 -3
- data/lib/goggles/version.rb +1 -1
- data/spec/goggles_spec.rb +50 -3
- metadata +22 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b8a91f4529abbd086e9e4a3e156549a3494d75b
|
4
|
+
data.tar.gz: b3a5aca11025edd9d6e17e8d25f12efaabd791f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d1962ae700d9681afff49b1aa64ac6c5389c1579b13bda95e00ffe3adb98e5c16413210a1b961972c5196525f0e2d4a139192aa18260aebebf64c759a7e8c10
|
7
|
+
data.tar.gz: 28ba4feca15756f1adb1e8b1959eb09a02f43efa9936f8c248589fce7ee431fff8213c1eb6bbfdcb2564c14cd7b47d7e9928dcee7e35c9398284107896e676d9
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v0.9.0 (Apr 14, 2015)
|
4
|
+
* `Goggles.each` accepts Array, Integer, String, and Symbol arguments.
|
5
|
+
* Arguments passed to `Goggles.each` extend configured settings instead of replacing them.
|
6
|
+
* Add Cucumber tests.
|
7
|
+
|
3
8
|
## v0.8.2 (Apr 10, 2015)
|
4
9
|
* Fix another typo in the gem description.
|
5
10
|
|
data/README.md
CHANGED
@@ -41,10 +41,6 @@ Goggles.each([:chrome, :firefox], [1080]) do |browser|
|
|
41
41
|
end
|
42
42
|
```
|
43
43
|
|
44
|
-
**TODO**
|
45
|
-
|
46
|
-
Before the 1.0.0 release, these arguments will act as additonal browsers/sizes to script against. That way, the base configuration can be extended for particular script instances.
|
47
|
-
|
48
44
|
#### Screenshots
|
49
45
|
|
50
46
|
Your script blocks should include the `Watir::Browser#grab_screenshot` method, which has been patched onto the browser objects yielded to your blocks. Simply give the method a description argument and the screenshot will be saved to your configured directory.
|
@@ -0,0 +1,23 @@
|
|
1
|
+
Feature: Screenshot comparison
|
2
|
+
As a software professional
|
3
|
+
I want to automate the collection and comparison of screenshots on my application
|
4
|
+
So I can efficiently assess visual regression
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I have configured Goggles with a valid directory
|
8
|
+
Given I have configured Goggles for browsers at 1080 width
|
9
|
+
|
10
|
+
Scenario: Compare screenshots in two browsers at one size
|
11
|
+
When I use the description "search-home" in my script
|
12
|
+
Then I have a file called "search-home_1080/chrome_firefox_diff.png"
|
13
|
+
And I have a file called "search-home_1080/chrome_firefox_data.txt"
|
14
|
+
|
15
|
+
Scenario: Extending a script with more browsers and sizes
|
16
|
+
When I extend configuration with arguments "phantomjs, 500"
|
17
|
+
And I use the description "homepage" in my script
|
18
|
+
Then I have a file called "homepage_1080/chrome_firefox_diff.png"
|
19
|
+
And I have a file called "homepage_1080/chrome_firefox_data.txt"
|
20
|
+
And I have a file called "homepage_1080/chrome_phantomjs_diff.png"
|
21
|
+
And I have a file called "homepage_1080/chrome_phantomjs_data.txt"
|
22
|
+
And I have a file called "homepage_1080/firefox_phantomjs_diff.png"
|
23
|
+
And I have a file called "homepage_1080/firefox_phantomjs_data.txt"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Given /^I have configured Goggles with a valid directory$/ do
|
2
|
+
@results = Pathname.new("./results").realdirpath.to_s
|
3
|
+
Goggles.configure { |c| c.directory = @results }
|
4
|
+
end
|
5
|
+
|
6
|
+
Given /^I have configured Goggles for browsers at (\d+) width$/ do |width|
|
7
|
+
Goggles.configure do |c|
|
8
|
+
c.browsers = [:chrome, :firefox]
|
9
|
+
c.sizes = [width]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
When /^I extend configuration with arguments "(.*)"$/ do |args|
|
14
|
+
@args = args.split(/,/).map(&:strip)
|
15
|
+
end
|
16
|
+
|
17
|
+
When /^I use the description "(.*)" in my script$/ do |desc|
|
18
|
+
Goggles.each(@args) do |browser|
|
19
|
+
browser.goto "http://google.com"
|
20
|
+
browser.grab_screenshot desc
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
Then /^I have a file called "(.*)"$/ do |file|
|
25
|
+
filepath = "#{@results}/#{file}"
|
26
|
+
File.exists? filepath
|
27
|
+
end
|
data/goggles.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_development_dependency "bundler", "~> 1.5"
|
21
21
|
spec.add_development_dependency "rake"
|
22
22
|
spec.add_development_dependency "rspec"
|
23
|
+
spec.add_development_dependency "cucumber"
|
23
24
|
|
24
25
|
spec.add_runtime_dependency "watir-webdriver"
|
25
26
|
spec.add_runtime_dependency "image_size"
|
data/lib/goggles.rb
CHANGED
@@ -9,9 +9,11 @@ module Goggles
|
|
9
9
|
configuration.tap { |conf| yield conf }
|
10
10
|
end
|
11
11
|
|
12
|
-
def each
|
13
|
-
|
14
|
-
|
12
|
+
def each *instance, &block
|
13
|
+
args = instance.flatten.map(&:to_s)
|
14
|
+
|
15
|
+
sizes = configuration.sizes + args.grep(/\d+/).map(&:to_i)
|
16
|
+
browsers = configuration.browsers + args.grep(/[^\d+]/).map(&:to_sym)
|
15
17
|
|
16
18
|
browsers.product(sizes).each do |browser, size|
|
17
19
|
Iteration.new browser, size, configuration, &block
|
data/lib/goggles/version.rb
CHANGED
data/spec/goggles_spec.rb
CHANGED
@@ -34,9 +34,56 @@ describe Goggles do
|
|
34
34
|
Goggles.each { "foo" }
|
35
35
|
end
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
context "when given a browser argument" do
|
38
|
+
it "extends the configured browser list with the given browser" do
|
39
|
+
expect(Goggles::Iteration).to receive(:new).with(:foo, 500, config)
|
40
|
+
expect(Goggles::Iteration).to receive(:new).with(:bar, 500, config)
|
41
|
+
Goggles.each(:bar) { "foo" }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context "when given a size argument" do
|
46
|
+
it "extends the configured size list with the given size" do
|
47
|
+
expect(Goggles::Iteration).to receive(:new).with(:foo, 500, config)
|
48
|
+
expect(Goggles::Iteration).to receive(:new).with(:foo, 250, config)
|
49
|
+
Goggles.each(250) { "foo" }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "when given multiple browser and size arguments" do
|
54
|
+
it "extends the configuration with correctly" do
|
55
|
+
[:foo, :bar, :baz].product([500, 1000, 250]).each do |b, s|
|
56
|
+
expect(Goggles::Iteration).to receive(:new).with(b, s, config)
|
57
|
+
end
|
58
|
+
Goggles.each(:bar, :baz, 1000, 250) { "foo" }
|
59
|
+
end
|
60
|
+
|
61
|
+
context "in no particular order" do
|
62
|
+
it "extends the configuration with the correct arguments" do
|
63
|
+
[:foo, :bar, :baz].product([500, 1000, 250]).each do |b, s|
|
64
|
+
expect(Goggles::Iteration).to receive(:new).with(b, s, config)
|
65
|
+
end
|
66
|
+
Goggles.each(1000, :bar, :baz, 250) { "foo" }
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context "when given arguments in arrays" do
|
72
|
+
it "extends the configuration correctly" do
|
73
|
+
[:foo, :bar, :baz].product([500, 1000, 250]).each do |b, s|
|
74
|
+
expect(Goggles::Iteration).to receive(:new).with(b, s, config)
|
75
|
+
end
|
76
|
+
Goggles.each([:bar, :baz], [250, 1000]) { "foo" }
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context "when given arguments of various classes" do
|
81
|
+
it "extends the configuration correctly" do
|
82
|
+
[:foo, :bar, :baz].product([500, 1000, 250]).each do |b, s|
|
83
|
+
expect(Goggles::Iteration).to receive(:new).with(b, s, config)
|
84
|
+
end
|
85
|
+
Goggles.each([:bar, "baz"], 250, "1000") { "foo" }
|
86
|
+
end
|
40
87
|
end
|
41
88
|
|
42
89
|
it "returns a comparison object" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goggles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Johnson Denen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: cucumber
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: watir-webdriver
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,6 +107,9 @@ files:
|
|
93
107
|
- LICENSE.txt
|
94
108
|
- README.md
|
95
109
|
- Rakefile
|
110
|
+
- features/goggles.feature
|
111
|
+
- features/step_definitions/goggles_steps.rb
|
112
|
+
- features/support/env.rb
|
96
113
|
- goggles.gemspec
|
97
114
|
- lib/goggles.rb
|
98
115
|
- lib/goggles/comparison.rb
|
@@ -129,6 +146,9 @@ signing_key:
|
|
129
146
|
specification_version: 4
|
130
147
|
summary: Compare screenshots in different browsers at different sizes
|
131
148
|
test_files:
|
149
|
+
- features/goggles.feature
|
150
|
+
- features/step_definitions/goggles_steps.rb
|
151
|
+
- features/support/env.rb
|
132
152
|
- spec/goggles/comparison_spec.rb
|
133
153
|
- spec/goggles/configuration_spec.rb
|
134
154
|
- spec/goggles/iteration_spec.rb
|