percy-capybara 2.5.0 → 2.5.1
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/.rubocop.yml +26 -0
- data/Gemfile +1 -1
- data/lib/percy/capybara/httpfetcher.rb +1 -1
- data/lib/percy/capybara/loaders/native_loader.rb +1 -1
- data/lib/percy/capybara/loaders/sprockets_loader.rb +13 -9
- data/lib/percy/capybara/version.rb +1 -1
- data/percy-capybara.gemspec +1 -1
- data/spec/lib/percy/capybara/loaders/native_loader_spec.rb +1 -1
- data/spec/lib/percy/capybara/loaders/sprockets_loader_spec.rb +2 -1
- data/spec/support/test_helpers.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ba34ea074b4869f59bc97456d10244725ab00c4
|
4
|
+
data.tar.gz: c582901df940381843c536adae6b12cf925de398
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a6b638286d1e7be3567b2e72c8a3ae8ba24e0da8f0cb3491d6caf49b1a1f22424db100ed1d168b335aa86bde8f05b5dc4c7f5f607e55360ba68b3e277b6090d
|
7
|
+
data.tar.gz: 551f496366ba9956bb969d1b9d400cace00bcb87faa62059bb298077d445793e9ffd51216563cc5c97c68dd669871e7d271535cc8d72b84ce4cf8e7d3ad6ac10
|
data/.rubocop.yml
CHANGED
@@ -58,6 +58,32 @@ Style/TrailingCommaInLiteral:
|
|
58
58
|
RSpec/MessageSpies:
|
59
59
|
EnforcedStyle: receive
|
60
60
|
|
61
|
+
Style/FileName:
|
62
|
+
Exclude:
|
63
|
+
- 'Gemfile'
|
64
|
+
- 'Guardfile'
|
65
|
+
- 'percy-capybara.gemspec'
|
66
|
+
|
67
|
+
Style/EmptyLineAfterMagicComment:
|
68
|
+
Exclude:
|
69
|
+
- 'percy-capybara.gemspec'
|
70
|
+
|
71
|
+
Style/PercentLiteralDelimiters:
|
72
|
+
Exclude:
|
73
|
+
- 'percy-capybara.gemspec'
|
74
|
+
|
75
|
+
Style/UnneededPercentQ:
|
76
|
+
Exclude:
|
77
|
+
- 'percy-capybara.gemspec'
|
78
|
+
|
79
|
+
Style/RegexpLiteral:
|
80
|
+
Exclude:
|
81
|
+
- 'percy-capybara.gemspec'
|
82
|
+
|
83
|
+
Style/SymbolArray:
|
84
|
+
Exclude:
|
85
|
+
- 'spec/spec_helper.rb'
|
86
|
+
|
61
87
|
# Will be able to do this in >= v1.11
|
62
88
|
# RSpec/DescribedClass:
|
63
89
|
# EnforcedStyle: explicit
|
data/Gemfile
CHANGED
@@ -19,7 +19,7 @@ module Percy
|
|
19
19
|
# influenced by any HTTP middleware/restrictions. This helps us avoid causing lots of
|
20
20
|
# problems for people using gems like VCR/WebMock. We also disable certificate checking
|
21
21
|
# because, as odd as that is, it's the default state for Selenium Firefox and others.
|
22
|
-
output = `curl --insecure -v -o #{temppath} "#{url.shellescape}" 2>&1`
|
22
|
+
output = `curl --compressed --insecure -v -o #{temppath} "#{url.shellescape}" 2>&1`
|
23
23
|
content_type = output.match(/< Content-Type:(.*)/i)
|
24
24
|
content_type = content_type[1].strip if content_type
|
25
25
|
|
@@ -9,7 +9,7 @@ module Percy
|
|
9
9
|
# This loader uses JavaScript to discover page resources, so specs must be tagged with
|
10
10
|
# "js: true" because the default Rack::Test driver does not support executing JavaScript.
|
11
11
|
class NativeLoader < BaseLoader # rubocop:disable ClassLength
|
12
|
-
PATH_REGEX =
|
12
|
+
PATH_REGEX = %r{\A/[^\\s\"']*}
|
13
13
|
DATA_URL_REGEX = /\Adata:/
|
14
14
|
LOCAL_HOSTNAMES = [
|
15
15
|
'localhost',
|
@@ -93,16 +93,20 @@ module Percy
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def _asset_logical_paths
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
96
|
+
if _rails && _rails.application.respond_to?(:precompiled_assets)
|
97
|
+
_rails.application.precompiled_assets
|
98
|
+
else
|
99
|
+
# Re-implement the same technique that "rake assets:precompile" uses to generate the
|
100
|
+
# list of asset paths to include in compiled assets. https://goo.gl/sy2R4z
|
101
|
+
# We can't just use environment.each_logical_path without any filters, because then
|
102
|
+
# we will attempt to compile assets before they're rendered (such as _mixins.css).
|
103
|
+
precompile_list = sprockets_options.precompile
|
104
|
+
logical_paths = sprockets_environment.each_logical_path(*precompile_list).to_a
|
105
|
+
logical_paths += precompile_list.flatten.select do |filename|
|
106
|
+
Pathname.new(filename).absolute? if filename.is_a?(String)
|
107
|
+
end
|
108
|
+
logical_paths.uniq
|
104
109
|
end
|
105
|
-
logical_paths.uniq
|
106
110
|
end
|
107
111
|
end
|
108
112
|
end
|
data/percy-capybara.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency 'capybara-webkit', '>= 1.6', '< 1.12.0' # 1.12.0 breaks specs
|
28
28
|
spec.add_development_dependency 'selenium-webdriver'
|
29
29
|
spec.add_development_dependency 'webmock', '~> 1'
|
30
|
-
spec.add_development_dependency 'mime-types', '< 3'
|
30
|
+
spec.add_development_dependency 'mime-types', '< 3' # For Ruby 1.9 testing support.
|
31
31
|
spec.add_development_dependency 'faraday', '>= 0.8'
|
32
32
|
spec.add_development_dependency 'sprockets', '>= 3.2.0'
|
33
33
|
end
|
@@ -225,7 +225,7 @@ RSpec.describe Percy::Capybara::Loaders::NativeLoader do
|
|
225
225
|
content = File.read(path)
|
226
226
|
# In Ruby 1.9.3 the SVG mimetype is not registered so our mini ruby webserver doesn't serve
|
227
227
|
# the correct content type. Allow either to work here so we can test older Rubies fully.
|
228
|
-
expect(resource.mimetype).to match(/
|
228
|
+
expect(resource.mimetype).to match(%r{image/svg\+xml|application/octet-stream})
|
229
229
|
expected_sha = Digest::SHA256.hexdigest(content)
|
230
230
|
expect(Digest::SHA256.hexdigest(resource.content)).to eq(expected_sha)
|
231
231
|
expect(resource.sha).to eq(expected_sha)
|
@@ -24,7 +24,7 @@ RSpec.describe Percy::Capybara::Loaders::SprocketsLoader do
|
|
24
24
|
let(:sprockets_options) do
|
25
25
|
options = double('options')
|
26
26
|
# Set specific files we want to compile. In normal use, this would be all asset files.
|
27
|
-
precompile_list = [
|
27
|
+
precompile_list = [%r{(?:/|\\|\A)(base|digested)\.(css|js)$|\.map|\.png}]
|
28
28
|
allow(options).to receive(:precompile).and_return(precompile_list)
|
29
29
|
allow(options).to receive(:digest).and_return(digest_enabled)
|
30
30
|
options
|
@@ -77,6 +77,7 @@ RSpec.describe Percy::Capybara::Loaders::SprocketsLoader do
|
|
77
77
|
# Pretend like we're in a Rails app right now, all we care about is Rails.public_path.
|
78
78
|
rails_double = double('Rails')
|
79
79
|
# Pretend like the entire testdata directory is the public/ folder.
|
80
|
+
expect(rails_double).to receive(:application).and_return(nil)
|
80
81
|
expect(rails_double).to receive(:public_path).and_return(environment.root + '/public')
|
81
82
|
expect(loader).to receive(:_rails).at_least(:once).and_return(rails_double)
|
82
83
|
end
|
@@ -40,7 +40,7 @@ module TestHelpers
|
|
40
40
|
environment.append_path '.'
|
41
41
|
|
42
42
|
sprockets_options = double('sprockets_options')
|
43
|
-
allow(sprockets_options).to receive(:precompile).and_return([
|
43
|
+
allow(sprockets_options).to receive(:precompile).and_return([%r{(?:/|\\|\A)base\.(css|js)$}])
|
44
44
|
allow(sprockets_options).to receive(:digest).and_return(false)
|
45
45
|
|
46
46
|
capybara_client.sprockets_environment = environment
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: percy-capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Perceptual Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: percy-client
|