motion-juxtapose 0.2.0 → 0.3.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/LaunchScreen.xib +32 -0
- data/README.md +27 -0
- data/Rakefile +1 -0
- data/lib/juxtapose/image_matcher.rb +21 -0
- data/lib/juxtapose/rspec.rb +10 -3
- data/lib/juxtapose/screenshotter.rb +27 -14
- data/lib/juxtapose/strategy/appium_strategy.rb +33 -0
- data/lib/juxtapose/strategy/mac_bacon_strategy.rb +3 -1
- data/lib/juxtapose/version.rb +1 -1
- data/lib/motion-juxtapose.rb +2 -0
- data/spec/controllers/test_controller_spec.rb +1 -1
- data/spec/files/dog1.jpg +0 -0
- data/spec/files/dog2.jpg +0 -0
- data/spec/files/dog_fuzzy.jpg +0 -0
- data/spec/lib/rspec_matchers_spec.rb +18 -0
- data/spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-passes-when-there-is-an-identical-accepted-screenshot/accepted-screenshot/accepted.png +0 -0
- data/spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/accepted.png +0 -0
- data/spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/current.png +0 -0
- data/spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-no-accepted-screenshot-is-present/no-accepted-screenshot/current.png +0 -0
- data/spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/accepted.png +0 -0
- data/spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/current.png +0 -0
- data/spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-passes-when-there-is-an-identical-accepted-screenshot/accepted-screenshot/current.png +0 -0
- data/spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/current.png +0 -0
- data/spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-no-accepted-screenshot-is-present/no-accepted-screenshot/current.png +0 -0
- data/spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/accepted.png +0 -0
- metadata +33 -8
- data/spec/screens/iphone-retina/ios_7.1/screenshot-testing-under-bacon-passes-when-there-is-an-identical-accepted-screenshot/accepted-screenshot/accepted.png +0 -0
- data/spec/screens/iphone-retina/ios_7.1/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/accepted.png +0 -0
- data/spec/screens/iphone-retina/ios_7.1/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/accepted.png +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d2ccac7f22e4efec4bbf3c70e6beea4764eb4539
|
|
4
|
+
data.tar.gz: 3eb7f65dd5b4585f891a97f7eac80892fbc5d828
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ed97658f49980bbeb7aad17b81d63d6c6be702aff3e6a5651c9eb97dd0130b2e815b33c8b5542c9016f15af2addef85b7175716f306991efaa6d5bbba666acf1
|
|
7
|
+
data.tar.gz: d667feadb1158ce8dc85be01d79569fb96ef690bf77d19337aa39e0dfdfa806c6193aa30792ef69550cd6672cf9df5dcc96662f19ef61ff02e2d009ade0f4a32
|
data/LaunchScreen.xib
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
|
|
3
|
+
<dependencies>
|
|
4
|
+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
|
|
5
|
+
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
|
6
|
+
</dependencies>
|
|
7
|
+
<objects>
|
|
8
|
+
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
|
9
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
10
|
+
<view contentMode="scaleToFill" id="iN0-l3-epB">
|
|
11
|
+
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
|
|
12
|
+
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
13
|
+
<subviews>
|
|
14
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Juxtapose" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
|
|
15
|
+
<rect key="frame" x="20" y="140" width="441" height="43"/>
|
|
16
|
+
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
|
|
17
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
|
18
|
+
<nil key="highlightedColor"/>
|
|
19
|
+
</label>
|
|
20
|
+
</subviews>
|
|
21
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
|
22
|
+
<constraints>
|
|
23
|
+
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
|
|
24
|
+
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
|
|
25
|
+
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
|
|
26
|
+
</constraints>
|
|
27
|
+
<nil key="simulatedStatusBarMetrics"/>
|
|
28
|
+
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
|
29
|
+
<point key="canvasLocation" x="548" y="455"/>
|
|
30
|
+
</view>
|
|
31
|
+
</objects>
|
|
32
|
+
</document>
|
data/README.md
CHANGED
|
@@ -76,6 +76,28 @@ Then /^the screen should match "([^\"]*)"$/ do |template|
|
|
|
76
76
|
end
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
### Appium
|
|
80
|
+
|
|
81
|
+
Add the following config to your features/support/env.rb:
|
|
82
|
+
|
|
83
|
+
```ruby
|
|
84
|
+
require 'motion-juxtapose'
|
|
85
|
+
Juxtapose::AppiumStrategy.setup
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
This lets you write a screenshot matcher along the lines of:
|
|
89
|
+
|
|
90
|
+
```ruby
|
|
91
|
+
Then /^the screen should match "([^\"]*)"$/ do |template|
|
|
92
|
+
wait_for_nothing_to_be_animating
|
|
93
|
+
#unlike frank we need to pass in a project root to find the screenshot directory
|
|
94
|
+
screenshotter = Juxtapose::Screenshotter.new(self, template, 0, File.expand_path('./'))
|
|
95
|
+
|
|
96
|
+
max_attempts = 20
|
|
97
|
+
expect(screenshotter.attempt_verify(max_attempts)).to eq(true)
|
|
98
|
+
end
|
|
99
|
+
```
|
|
100
|
+
|
|
79
101
|
## Testing Rails Apps
|
|
80
102
|
|
|
81
103
|
### Capybara
|
|
@@ -131,6 +153,10 @@ To start it, run `bundle exec juxtapose` in the root of your project and browse
|
|
|
131
153
|
|
|
132
154
|
## Release Notes
|
|
133
155
|
|
|
156
|
+
#### v.0.3.0
|
|
157
|
+
* Add Appium support ([@squidpunch](http://github.com/squidpunch))
|
|
158
|
+
* Add support for 6/6+ screen sizes ([@squidpunch](http://github.com/squidpunch))
|
|
159
|
+
|
|
134
160
|
#### v.0.2.0
|
|
135
161
|
* Rails/rspec support
|
|
136
162
|
* Fixes to work under newest version of ImageMagick
|
|
@@ -150,6 +176,7 @@ To start it, run `bundle exec juxtapose` in the root of your project and browse
|
|
|
150
176
|
* [Thomas Mayfield](http://github.com/thegreatape )
|
|
151
177
|
* [Jeffrey Chupp](http://github.com/semanticart)
|
|
152
178
|
* [Michael Denomy](http://github.com/mdenomy)
|
|
179
|
+
* [David Larrabee](http://github.com/squidpunch)
|
|
153
180
|
|
|
154
181
|
|
|
155
182
|
## Contributing
|
data/Rakefile
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class ImageMatcher
|
|
2
|
+
attr_reader :fuzz_factor, :diff_file_name
|
|
3
|
+
def initialize(options={})
|
|
4
|
+
@fuzz_factor = options.fetch(:fuzz_factor, 0)
|
|
5
|
+
@diff_file_name = options.fetch(:diff_file_name, './temp.png')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def identical?(source, target)
|
|
9
|
+
compare_command = "compare -fuzz #{fuzz_factor}% -metric AE -dissimilarity-threshold 1 -subimage-search"
|
|
10
|
+
out = `#{compare_command} \"#{source}\" \"#{target}\" \"#{diff_file_name}\" 2>&1`
|
|
11
|
+
out.chomp!
|
|
12
|
+
out.start_with?('0')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def cleanup
|
|
16
|
+
if File.exist?(diff_file_name)
|
|
17
|
+
`rm #{diff_file_name}`
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
data/lib/juxtapose/rspec.rb
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
if defined?(RSpec::Matchers)
|
|
2
|
-
RSpec::Matchers.define :look_like do |
|
|
3
|
-
match do |
|
|
4
|
-
|
|
2
|
+
RSpec::Matchers.define :look_like do |expected, options={}|
|
|
3
|
+
match do |actual|
|
|
4
|
+
if actual.respond_to?(:looks_like?)
|
|
5
|
+
actual.looks_like?(expected) == true
|
|
6
|
+
else
|
|
7
|
+
matcher = ImageMatcher.new(options)
|
|
8
|
+
matcher.identical?(expected, actual).tap do
|
|
9
|
+
matcher.cleanup
|
|
10
|
+
end
|
|
11
|
+
end
|
|
5
12
|
end
|
|
6
13
|
end
|
|
7
14
|
end
|
|
@@ -35,12 +35,14 @@ module Juxtapose
|
|
|
35
35
|
attr_reader :strategy
|
|
36
36
|
attr_reader :template
|
|
37
37
|
attr_reader :fuzz_factor
|
|
38
|
+
attr_accessor :project_root
|
|
38
39
|
|
|
39
|
-
def initialize(context, template, fuzz_factor = 0)
|
|
40
|
+
def initialize(context, template, fuzz_factor = 0, project_root = nil)
|
|
40
41
|
@context = context
|
|
41
42
|
@template = template.gsub(' ', '-')
|
|
42
43
|
@strategy = strategy_for_context(context)
|
|
43
44
|
@fuzz_factor = fuzz_factor
|
|
45
|
+
@project_root = project_root || default_project_root
|
|
44
46
|
end
|
|
45
47
|
|
|
46
48
|
def strategy_for_context(context)
|
|
@@ -50,10 +52,12 @@ module Juxtapose
|
|
|
50
52
|
Juxtapose::FrankStrategy.new(context)
|
|
51
53
|
elsif defined?(Capybara)
|
|
52
54
|
Juxtapose::CapybaraStrategy.new(context)
|
|
55
|
+
elsif defined?(Appium)
|
|
56
|
+
Juxtapose::AppiumStrategy.new(context)
|
|
53
57
|
end
|
|
54
58
|
end
|
|
55
59
|
|
|
56
|
-
def
|
|
60
|
+
def default_project_root
|
|
57
61
|
if defined? Rails
|
|
58
62
|
Rails.root
|
|
59
63
|
else
|
|
@@ -66,13 +70,19 @@ module Juxtapose
|
|
|
66
70
|
end
|
|
67
71
|
|
|
68
72
|
def dir
|
|
69
|
-
@dir ||=
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
@dir ||= begin
|
|
74
|
+
parts = [
|
|
75
|
+
project_root,
|
|
76
|
+
strategy.spec_dir,
|
|
77
|
+
strategy.device_name,
|
|
78
|
+
strategy.version,
|
|
79
|
+
test_name,
|
|
80
|
+
template
|
|
81
|
+
].map {|p| p.to_s.gsub(/ /, '-')}
|
|
82
|
+
|
|
83
|
+
File.join(*parts).tap do |dir|
|
|
84
|
+
`mkdir -p #{dir}`
|
|
85
|
+
end
|
|
76
86
|
end
|
|
77
87
|
end
|
|
78
88
|
|
|
@@ -125,7 +135,12 @@ module Juxtapose
|
|
|
125
135
|
end
|
|
126
136
|
|
|
127
137
|
def imagemagick_installed?
|
|
128
|
-
|
|
138
|
+
if RUBY_PLATFORM =~ /darwin/
|
|
139
|
+
`command -v convert`
|
|
140
|
+
else
|
|
141
|
+
`which convert`
|
|
142
|
+
end
|
|
143
|
+
$?.success?
|
|
129
144
|
end
|
|
130
145
|
|
|
131
146
|
private
|
|
@@ -147,10 +162,8 @@ module Juxtapose
|
|
|
147
162
|
end
|
|
148
163
|
|
|
149
164
|
def identical_images?
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
out.chomp!
|
|
153
|
-
out.start_with?('0')
|
|
165
|
+
matcher = ImageMatcher.new(fuzz_factor: fuzz_factor, diff_file_name: filename(:diff))
|
|
166
|
+
matcher.identical?(filename(:current), filename(:accepted))
|
|
154
167
|
end
|
|
155
168
|
|
|
156
169
|
def screenshots_match?
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Juxtapose
|
|
2
|
+
class AppiumStrategy
|
|
3
|
+
attr_accessor :context
|
|
4
|
+
attr_accessor :project_root
|
|
5
|
+
def self.setup
|
|
6
|
+
Cucumber::RbSupport::RbDsl.register_rb_hook('before', [], Proc.new {|scenario, block| @__scenario = scenario })
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def initialize(context)
|
|
10
|
+
self.context = context
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def spec_dir
|
|
14
|
+
"features/screens"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def device_name
|
|
18
|
+
context.driver_attributes[:caps][:deviceName].gsub(" ","-").downcase
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def version
|
|
22
|
+
context.driver_attributes[:caps][:platformVersion]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def current_spec_description
|
|
26
|
+
context.instance_variable_get('@__scenario').name
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def save_current(filename)
|
|
30
|
+
context.screenshot(filename)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -16,7 +16,9 @@ module Juxtapose
|
|
|
16
16
|
def device_name
|
|
17
17
|
name = [UIDevice.currentDevice.model.gsub(/\s+Simulator/, '').downcase]
|
|
18
18
|
name << 'retina' if UIScreen.mainScreen.scale > 1
|
|
19
|
-
name << '5' if UIScreen.mainScreen.bounds.size.height
|
|
19
|
+
name << '5' if UIScreen.mainScreen.bounds.size.height == 568.0
|
|
20
|
+
name << '6' if UIScreen.mainScreen.bounds.size.height == 667.0
|
|
21
|
+
name << '6-plus' if UIScreen.mainScreen.bounds.size.height == 736.0
|
|
20
22
|
name.join('-')
|
|
21
23
|
end
|
|
22
24
|
|
data/lib/juxtapose/version.rb
CHANGED
data/lib/motion-juxtapose.rb
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
require "juxtapose/version"
|
|
2
|
+
require "juxtapose/image_matcher"
|
|
2
3
|
require "juxtapose/screenshotter"
|
|
3
4
|
require "juxtapose/strategy/frank_strategy"
|
|
4
5
|
require "juxtapose/strategy/capybara_strategy"
|
|
6
|
+
require "juxtapose/strategy/appium_strategy"
|
|
5
7
|
|
|
6
8
|
if defined?(Motion::Project::Config)
|
|
7
9
|
Motion::Project::App.setup do |app|
|
|
@@ -33,7 +33,7 @@ describe 'screenshot testing under bacon' do
|
|
|
33
33
|
error.should.not.be.nil
|
|
34
34
|
error.message.should =~ /Screenshot did not match/
|
|
35
35
|
|
|
36
|
-
spec_dir = "spec/screens/iphone-retina/
|
|
36
|
+
spec_dir = "spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot"
|
|
37
37
|
|
|
38
38
|
File.should.exist(File.join( ENV["RUBYMOTION_PROJECT_DIR"], spec_dir, "current.png"))
|
|
39
39
|
File.should.exist(File.join( ENV["RUBYMOTION_PROJECT_DIR"], spec_dir, "diff.png"))
|
data/spec/files/dog1.jpg
ADDED
|
Binary file
|
data/spec/files/dog2.jpg
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
if defined?(RSpec)
|
|
2
|
+
describe "rspec matchers" do
|
|
3
|
+
require_relative '../../lib/juxtapose/image_matcher'
|
|
4
|
+
require_relative '../../lib/juxtapose/rspec'
|
|
5
|
+
|
|
6
|
+
it "passes true if files are identical" do
|
|
7
|
+
dog1 = File.join(File.dirname(__FILE__), "../files/dog1.jpg")
|
|
8
|
+
dog2 = File.join(File.dirname(__FILE__), "../files/dog2.jpg")
|
|
9
|
+
expect(dog1).to look_like(dog2)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "passes with a fuzzy threshold" do
|
|
13
|
+
dog1 = File.join(File.dirname(__FILE__), "../files/dog1.jpg")
|
|
14
|
+
dog2 = File.join(File.dirname(__FILE__), "../files/dog_fuzzy.jpg")
|
|
15
|
+
expect(dog1).to look_like(dog2, fuzz_factor: 78.0)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: motion-juxtapose
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joe Lind
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2015-05-18 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: sinatra
|
|
@@ -107,6 +107,7 @@ files:
|
|
|
107
107
|
- ".gitignore"
|
|
108
108
|
- Gemfile
|
|
109
109
|
- LICENSE.txt
|
|
110
|
+
- LaunchScreen.xib
|
|
110
111
|
- README.md
|
|
111
112
|
- Rakefile
|
|
112
113
|
- app/app_delegate.rb
|
|
@@ -152,8 +153,10 @@ files:
|
|
|
152
153
|
- lib/juxtapose/application/spec/spec_helper.rb
|
|
153
154
|
- lib/juxtapose/application/views/index.html.haml
|
|
154
155
|
- lib/juxtapose/capybara.rb
|
|
156
|
+
- lib/juxtapose/image_matcher.rb
|
|
155
157
|
- lib/juxtapose/rspec.rb
|
|
156
158
|
- lib/juxtapose/screenshotter.rb
|
|
159
|
+
- lib/juxtapose/strategy/appium_strategy.rb
|
|
157
160
|
- lib/juxtapose/strategy/capybara_strategy.rb
|
|
158
161
|
- lib/juxtapose/strategy/frank_strategy.rb
|
|
159
162
|
- lib/juxtapose/strategy/mac_bacon_strategy.rb
|
|
@@ -161,9 +164,20 @@ files:
|
|
|
161
164
|
- lib/motion-juxtapose.rb
|
|
162
165
|
- motion-juxtapose.gemspec
|
|
163
166
|
- spec/controllers/test_controller_spec.rb
|
|
164
|
-
- spec/
|
|
165
|
-
- spec/
|
|
166
|
-
- spec/
|
|
167
|
+
- spec/files/dog1.jpg
|
|
168
|
+
- spec/files/dog2.jpg
|
|
169
|
+
- spec/files/dog_fuzzy.jpg
|
|
170
|
+
- spec/lib/rspec_matchers_spec.rb
|
|
171
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-passes-when-there-is-an-identical-accepted-screenshot/accepted-screenshot/accepted.png
|
|
172
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/accepted.png
|
|
173
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/current.png
|
|
174
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-no-accepted-screenshot-is-present/no-accepted-screenshot/current.png
|
|
175
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/accepted.png
|
|
176
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/current.png
|
|
177
|
+
- spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-passes-when-there-is-an-identical-accepted-screenshot/accepted-screenshot/current.png
|
|
178
|
+
- spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/current.png
|
|
179
|
+
- spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-no-accepted-screenshot-is-present/no-accepted-screenshot/current.png
|
|
180
|
+
- spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/accepted.png
|
|
167
181
|
homepage: https://github.com/terriblelabs/motion-juxtapose
|
|
168
182
|
licenses:
|
|
169
183
|
- MIT
|
|
@@ -190,6 +204,17 @@ specification_version: 4
|
|
|
190
204
|
summary: Screenshot-based assertions for RubyMotion projects
|
|
191
205
|
test_files:
|
|
192
206
|
- spec/controllers/test_controller_spec.rb
|
|
193
|
-
- spec/
|
|
194
|
-
- spec/
|
|
195
|
-
- spec/
|
|
207
|
+
- spec/files/dog1.jpg
|
|
208
|
+
- spec/files/dog2.jpg
|
|
209
|
+
- spec/files/dog_fuzzy.jpg
|
|
210
|
+
- spec/lib/rspec_matchers_spec.rb
|
|
211
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-passes-when-there-is-an-identical-accepted-screenshot/accepted-screenshot/accepted.png
|
|
212
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/accepted.png
|
|
213
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/current.png
|
|
214
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-no-accepted-screenshot-is-present/no-accepted-screenshot/current.png
|
|
215
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/accepted.png
|
|
216
|
+
- spec/screens/iphone-retina-6/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/current.png
|
|
217
|
+
- spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-passes-when-there-is-an-identical-accepted-screenshot/accepted-screenshot/current.png
|
|
218
|
+
- spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-and-produces-diffs-on-failure/going-to-differ-screenshot/current.png
|
|
219
|
+
- spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-no-accepted-screenshot-is-present/no-accepted-screenshot/current.png
|
|
220
|
+
- spec/screens/iphone-retina/ios_8.3/screenshot-testing-under-bacon-raises-an-error-when-screens-are-different-sizes/different-sized-screenshot/accepted.png
|
|
Binary file
|
|
Binary file
|