html-proofer 2.3.0 → 2.4.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/README.md +3 -2
- data/bin/htmlproof +4 -2
- data/html-proofer.gemspec +1 -0
- data/lib/html/proofer.rb +5 -2
- data/lib/html/proofer/check_runner.rb +3 -2
- data/lib/html/proofer/checks/html.rb +7 -3
- data/lib/html/proofer/version.rb +1 -1
- data/spec/html/proofer/fixtures/html/ignore_script_embeds.html +3 -0
- data/spec/html/proofer/fixtures/links/linkWithRedirect.html +2 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/images/existingImageExternal_html.yml +62 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/images/ignoreAltButNotLink_html_alt_ignore_/_/_.yml +45 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/images/image_missing_protocol_invalid_html.yml +117 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/images/image_missing_protocol_valid_html.yml +62 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/images/missingImageExternal_html.yml +45 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/attributeWithDash_html.yml +73 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html.yml +56 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html_check_external_hash_true_.yml +719 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html_only_4xx_true_.yml +56 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenLinkExternal_html.yml +96 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenUnixLinks_html.yml +156 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/checkSSLLinks_html.yml +50 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/ensure_typhoeus_options_html_typhoeus_ssl_verifypeer_false_.yml +40 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/escape_pipes_html.yml +52 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/file_foo_ext_foo_.yml +96 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/githubHash_html.yml +73 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/linkWithHttps_html.yml +73 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html.yml +236 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html_only_4xx_true_typhoeus_followlocation_false_.yml +318 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html_typhoeus_followlocation_false_.yml +318 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/link_missing_protocol_invalid_html.yml +45 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/link_missing_protocol_valid_html.yml +73 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/nodupe_html.yml +182 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/non_standard_characters_html.yml +113 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/redirected_error_html.yml +1044 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/links/utf8Link_html.yml +113 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/scripts/script_broken_external_html.yml +45 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/sorting/status_typhoeus_followlocation_false_error_sort_status_.yml +244 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/www_garbalarba_com_href_swap_/garbalarba/_github_.yml +73 -0
- data/spec/html/proofer/fixtures/vcr_cassettes/www_github_com_foofoofoo_biz.yml +115 -0
- data/spec/html/proofer/html_spec.rb +12 -5
- data/spec/html/proofer/images_spec.rb +3 -3
- data/spec/html/proofer/links_spec.rb +6 -6
- data/spec/html/proofer/scripts_spec.rb +1 -2
- data/spec/html/proofer_spec.rb +3 -3
- data/spec/spec_helper.rb +27 -5
- metadata +78 -2
@@ -0,0 +1,115 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: head
|
5
|
+
uri: foofoofoo.biz
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; HTML Proofer/2.3.0; +https://github.com/gjtorikian/html-proofer)
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 0
|
15
|
+
message:
|
16
|
+
headers: {}
|
17
|
+
body:
|
18
|
+
encoding: UTF-8
|
19
|
+
string: ''
|
20
|
+
http_version:
|
21
|
+
adapter_metadata:
|
22
|
+
effective_url: HTTP://foofoofoo.biz/
|
23
|
+
recorded_at: Mon, 06 Jul 2015 05:10:19 GMT
|
24
|
+
- request:
|
25
|
+
method: get
|
26
|
+
uri: foofoofoo.biz
|
27
|
+
body:
|
28
|
+
encoding: US-ASCII
|
29
|
+
string: ''
|
30
|
+
headers:
|
31
|
+
User-Agent:
|
32
|
+
- Mozilla/5.0 (compatible; HTML Proofer/2.3.0; +https://github.com/gjtorikian/html-proofer)
|
33
|
+
response:
|
34
|
+
status:
|
35
|
+
code: 0
|
36
|
+
message:
|
37
|
+
headers: {}
|
38
|
+
body:
|
39
|
+
encoding: UTF-8
|
40
|
+
string: ''
|
41
|
+
http_version:
|
42
|
+
adapter_metadata:
|
43
|
+
effective_url: HTTP://foofoofoo.biz/
|
44
|
+
recorded_at: Mon, 06 Jul 2015 05:10:19 GMT
|
45
|
+
- request:
|
46
|
+
method: head
|
47
|
+
uri: www.github.com
|
48
|
+
body:
|
49
|
+
encoding: US-ASCII
|
50
|
+
string: ''
|
51
|
+
headers:
|
52
|
+
User-Agent:
|
53
|
+
- Mozilla/5.0 (compatible; HTML Proofer/2.3.0; +https://github.com/gjtorikian/html-proofer)
|
54
|
+
response:
|
55
|
+
status:
|
56
|
+
code: 200
|
57
|
+
message: OK
|
58
|
+
headers:
|
59
|
+
Server:
|
60
|
+
- GitHub.com
|
61
|
+
Date:
|
62
|
+
- Mon, 06 Jul 2015 05:10:21 GMT
|
63
|
+
Content-Type:
|
64
|
+
- text/html; charset=utf-8
|
65
|
+
Status:
|
66
|
+
- 200 OK
|
67
|
+
Content-Security-Policy:
|
68
|
+
- 'default-src *; script-src assets-cdn.github.com collector-cdn.github.com;
|
69
|
+
object-src assets-cdn.github.com; style-src ''self'' ''unsafe-inline'' ''unsafe-eval''
|
70
|
+
assets-cdn.github.com; img-src ''self'' data: assets-cdn.github.com identicons.github.com
|
71
|
+
www.google-analytics.com collector.githubapp.com *.githubusercontent.com *.gravatar.com
|
72
|
+
*.wp.com; media-src ''none''; frame-src ''self'' render.githubusercontent.com
|
73
|
+
gist.github.com www.youtube.com player.vimeo.com checkout.paypal.com; font-src
|
74
|
+
assets-cdn.github.com; connect-src ''self'' live.github.com wss://live.github.com
|
75
|
+
uploads.github.com status.github.com api.github.com www.google-analytics.com
|
76
|
+
github-cloud.s3.amazonaws.com'
|
77
|
+
Public-Key-Pins:
|
78
|
+
- max-age=300; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; pin-sha256="JbQbUG5JMJUoI6brnx0x3vZF6jilxsapbXGVfjhN8Fg=";
|
79
|
+
includeSubDomains
|
80
|
+
Cache-Control:
|
81
|
+
- no-cache
|
82
|
+
Vary:
|
83
|
+
- X-PJAX
|
84
|
+
- Accept-Encoding
|
85
|
+
X-UA-Compatible:
|
86
|
+
- IE=Edge,chrome=1
|
87
|
+
Set-Cookie:
|
88
|
+
- logged_in=no; domain=.github.com; path=/; expires=Fri, 06 Jul 2035 05:10:21
|
89
|
+
-0000; secure; HttpOnly
|
90
|
+
- _gh_sess=eyJzZXNzaW9uX2lkIjoiYjVmM2Q3ZjFhODQxMWIxNjdhODIyNWQ5ZGI1ZDNlMDkiLCJfY3NyZl90b2tlbiI6IlE5R1lsT3pFWW9Fb2VJWndZVGJUQ1ZodzJCeXZsclBzYmVEc1JvdVU1VE09In0%3D--afddd987025ba23ca6db5388811d74e15126663a;
|
91
|
+
path=/; secure; HttpOnly
|
92
|
+
X-Request-Id:
|
93
|
+
- cfa6252fd906896bc99fa744471f06af
|
94
|
+
X-Runtime:
|
95
|
+
- '0.009622'
|
96
|
+
X-GitHub-Request-Id:
|
97
|
+
- 490F8465:506E:3EED418:559A0DBD
|
98
|
+
Strict-Transport-Security:
|
99
|
+
- max-age=31536000; includeSubdomains; preload
|
100
|
+
X-Content-Type-Options:
|
101
|
+
- nosniff
|
102
|
+
X-XSS-Protection:
|
103
|
+
- 1; mode=block
|
104
|
+
X-Frame-Options:
|
105
|
+
- deny
|
106
|
+
X-Served-By:
|
107
|
+
- a22dbcbd09a98eacdd14ac7804a635dd
|
108
|
+
body:
|
109
|
+
encoding: UTF-8
|
110
|
+
string: ''
|
111
|
+
http_version: '1.1'
|
112
|
+
adapter_metadata:
|
113
|
+
effective_url: https://github.com/
|
114
|
+
recorded_at: Mon, 06 Jul 2015 05:10:21 GMT
|
115
|
+
recorded_with: VCR 2.9.3
|
@@ -22,19 +22,19 @@ describe 'Html test' do
|
|
22
22
|
it 'fails for an invalid tag' do
|
23
23
|
html = "#{FIXTURES_DIR}/html/invalid_tag.html"
|
24
24
|
proofer = run_proofer(html, { :check_html => true })
|
25
|
-
expect(proofer.failed_tests.first).to match(/Tag myfancytag invalid/)
|
25
|
+
expect(proofer.failed_tests.first).to match(/Tag myfancytag invalid \(line 2\)/)
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'fails for an unmatched end tag' do
|
29
29
|
html = "#{FIXTURES_DIR}/html/unmatched_end_tag.html"
|
30
30
|
proofer = run_proofer(html, { :check_html => true })
|
31
|
-
expect(proofer.failed_tests.first).to match(/Unexpected end tag : div/)
|
31
|
+
expect(proofer.failed_tests.first).to match(/Unexpected end tag : div \(line 3\)/)
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'fails for an unescaped ampersand in attribute' do
|
35
35
|
html = "#{FIXTURES_DIR}/html/unescaped_ampersand_in_attribute.html"
|
36
36
|
proofer = run_proofer(html, { :check_html => true })
|
37
|
-
expect(proofer.failed_tests.first).to match(/htmlParseEntityRef: expecting ';'/)
|
37
|
+
expect(proofer.failed_tests.first).to match(/htmlParseEntityRef: expecting ';' \(line 2\)/)
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'fails for mismatch between opening and ending tag' do
|
@@ -46,12 +46,19 @@ describe 'Html test' do
|
|
46
46
|
it 'fails for div inside head' do
|
47
47
|
html = "#{FIXTURES_DIR}/html/div_inside_head.html"
|
48
48
|
proofer = run_proofer(html, { :check_html => true })
|
49
|
-
expect(proofer.failed_tests.first).to match(/Unexpected end tag : head/)
|
49
|
+
expect(proofer.failed_tests.first).to match(/Unexpected end tag : head \(line 5\)/)
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'fails for missing closing quotation mark in href' do
|
53
53
|
html = "#{FIXTURES_DIR}/html/missing_closing_quotes.html"
|
54
54
|
proofer = run_proofer(html, { :check_html => true })
|
55
|
-
expect(proofer.failed_tests.to_s).to match(/Couldn't find end of Start Tag a/)
|
55
|
+
expect(proofer.failed_tests.to_s).to match(/Couldn't find end of Start Tag a \(line 6\)/)
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'ignores embeded scripts when asked' do
|
59
|
+
opts = { :check_html => true, :validation => { :ignore_script_embeds => true } }
|
60
|
+
ignorableScript = "#{FIXTURES_DIR}/html/ignore_script_embeds.html"
|
61
|
+
proofer = run_proofer(ignorableScript, opts)
|
62
|
+
expect(proofer.failed_tests).to eq []
|
56
63
|
end
|
57
64
|
end
|
@@ -35,7 +35,7 @@ describe 'Images test' do
|
|
35
35
|
it 'fails for missing external images' do
|
36
36
|
externalImageFilepath = "#{FIXTURES_DIR}/images/missingImageExternal.html"
|
37
37
|
proofer = run_proofer(externalImageFilepath)
|
38
|
-
expect(proofer.failed_tests.first).to match(/failed: 0
|
38
|
+
expect(proofer.failed_tests.first).to match(/failed: 0/)
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'fails for missing internal images' do
|
@@ -87,7 +87,7 @@ describe 'Images test' do
|
|
87
87
|
it 'fails for invalid images missing the protocol' do
|
88
88
|
missingProtocolLink = "#{FIXTURES_DIR}/images/image_missing_protocol_invalid.html"
|
89
89
|
proofer = run_proofer(missingProtocolLink)
|
90
|
-
expect(proofer.failed_tests.first).to match(/404
|
90
|
+
expect(proofer.failed_tests.first).to match(/failed: 404/)
|
91
91
|
end
|
92
92
|
|
93
93
|
it 'properly checks relative links' do
|
@@ -105,7 +105,7 @@ describe 'Images test' do
|
|
105
105
|
it 'properly ignores missing alt tags, but not all URLs, when asked' do
|
106
106
|
ignorableLinks = "#{FIXTURES_DIR}/images/ignoreAltButNotLink.html"
|
107
107
|
proofer = run_proofer(ignorableLinks, {:alt_ignore => [/.*/]})
|
108
|
-
expect(proofer.failed_tests.first).to match(/
|
108
|
+
expect(proofer.failed_tests.first).to match(/failed: 0/)
|
109
109
|
expect(proofer.failed_tests.first).to_not match /does not have an alt attribute/
|
110
110
|
end
|
111
111
|
|
@@ -42,7 +42,7 @@ describe 'Links test' do
|
|
42
42
|
it 'fails for broken external links' do
|
43
43
|
brokenLinkExternalFilepath = "#{FIXTURES_DIR}/links/brokenLinkExternal.html"
|
44
44
|
proofer = run_proofer(brokenLinkExternalFilepath)
|
45
|
-
expect(proofer.failed_tests.first).to match(/failed: 0
|
45
|
+
expect(proofer.failed_tests.first).to match(/failed: 0/)
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'passes for different filename without option' do
|
@@ -55,7 +55,7 @@ describe 'Links test' do
|
|
55
55
|
options = { :ext => '.foo' }
|
56
56
|
brokenLinkExternalFilepath = "#{FIXTURES_DIR}/links/file.foo"
|
57
57
|
proofer = run_proofer(brokenLinkExternalFilepath, options)
|
58
|
-
expect(proofer.failed_tests.first).to match(/failed: 0
|
58
|
+
expect(proofer.failed_tests.first).to match(/failed: 0/)
|
59
59
|
end
|
60
60
|
|
61
61
|
it 'fails for broken internal links' do
|
@@ -79,7 +79,7 @@ describe 'Links test' do
|
|
79
79
|
it 'fails on redirects if not following' do
|
80
80
|
linkWithRedirectFilepath = "#{FIXTURES_DIR}/links/linkWithRedirect.html"
|
81
81
|
proofer = run_proofer(linkWithRedirectFilepath, :typhoeus => { :followlocation => false })
|
82
|
-
expect(proofer.failed_tests.first).to match(/failed: 301
|
82
|
+
expect(proofer.failed_tests.first).to match(/failed: 301/)
|
83
83
|
end
|
84
84
|
|
85
85
|
it "does not fail on redirects we're not following" do
|
@@ -199,7 +199,7 @@ describe 'Links test' do
|
|
199
199
|
it 'fails for invalid links missing the protocol' do
|
200
200
|
missingProtocolLink = "#{FIXTURES_DIR}/links/link_missing_protocol_invalid.html"
|
201
201
|
proofer = run_proofer(missingProtocolLink)
|
202
|
-
expect(proofer.failed_tests.first).to match(/
|
202
|
+
expect(proofer.failed_tests.first).to match(/failed: 0/)
|
203
203
|
end
|
204
204
|
|
205
205
|
it 'works for valid href within link elements' do
|
@@ -236,7 +236,7 @@ describe 'Links test' do
|
|
236
236
|
|
237
237
|
it 'works for array of links' do
|
238
238
|
proofer = run_proofer(['www.github.com', 'foofoofoo.biz'])
|
239
|
-
expect(proofer.failed_tests.first).to match(/failed: 0
|
239
|
+
expect(proofer.failed_tests.first).to match(/failed: 0/)
|
240
240
|
end
|
241
241
|
|
242
242
|
it 'works for broken anchors within pre' do
|
@@ -353,7 +353,7 @@ describe 'Links test' do
|
|
353
353
|
it 'reports failures for the original link, not the redirection' do
|
354
354
|
fixture = "#{FIXTURES_DIR}/links/redirected_error.html"
|
355
355
|
proofer = run_proofer(fixture)
|
356
|
-
expect(proofer.failed_tests.first).to match(/
|
356
|
+
expect(proofer.failed_tests.first).to match(/failed: 404/)
|
357
357
|
end
|
358
358
|
|
359
359
|
it 'does not complain for files with attributes containing dashes' do
|
@@ -5,7 +5,7 @@ describe 'Scripts test' do
|
|
5
5
|
it 'fails for broken external src' do
|
6
6
|
file = "#{FIXTURES_DIR}/scripts/script_broken_external.html"
|
7
7
|
proofer = run_proofer(file)
|
8
|
-
expect(proofer.failed_tests.first).to match(/failed: 0
|
8
|
+
expect(proofer.failed_tests.first).to match(/failed: 0/)
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'works for valid internal src' do
|
@@ -43,5 +43,4 @@ describe 'Scripts test' do
|
|
43
43
|
proofer = run_proofer(ignorableLinks, { :url_ignore => [/\/assets\/.*(js|css|png|svg)/] })
|
44
44
|
expect(proofer.failed_tests).to eq []
|
45
45
|
end
|
46
|
-
|
47
46
|
end
|
data/spec/html/proofer_spec.rb
CHANGED
@@ -65,12 +65,12 @@ describe HTML::Proofer do
|
|
65
65
|
|
66
66
|
it 'understands sorting by status' do
|
67
67
|
output = send_proofer_output("#{FIXTURES_DIR}/sorting/status", :typhoeus => { :followlocation => false }, :error_sort => :status)
|
68
|
-
expect(output.
|
68
|
+
expect(output.gsub(/\s*$/, '')).to eq('''
|
69
69
|
- -1
|
70
70
|
* spec/html/proofer/fixtures/sorting/status/broken_link.html: internally linking to nowhere.fooof, which does not exist (line 3)
|
71
71
|
- 301
|
72
|
-
* spec/html/proofer/fixtures/sorting/status/a_404.html: External link http://upload.wikimedia.org/wikipedia/en/thumb/not_here.png failed: 301
|
73
|
-
* spec/html/proofer/fixtures/sorting/status/broken_link.html: External link http://upload.wikimedia.org/wikipedia/en/thumb/fooooof.png failed: 301
|
72
|
+
* spec/html/proofer/fixtures/sorting/status/a_404.html: External link http://upload.wikimedia.org/wikipedia/en/thumb/not_here.png failed: 301
|
73
|
+
* spec/html/proofer/fixtures/sorting/status/broken_link.html: External link http://upload.wikimedia.org/wikipedia/en/thumb/fooooof.png failed: 301
|
74
74
|
'''.strip)
|
75
75
|
end
|
76
76
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'bundler/setup'
|
2
|
-
|
2
|
+
require 'vcr'
|
3
|
+
require_relative '../lib/html/proofer'
|
3
4
|
|
4
|
-
FIXTURES_DIR =
|
5
|
+
FIXTURES_DIR = 'spec/html/proofer/fixtures'
|
5
6
|
|
6
7
|
RSpec.configure do |config|
|
7
8
|
# Use color in STDOUT
|
@@ -37,16 +38,37 @@ def make_proofer(file, opts)
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def run_proofer(file, opts = {})
|
41
|
+
cassette_name = make_cassette_name(file, opts)
|
40
42
|
proofer = make_proofer(file, opts)
|
41
|
-
|
42
|
-
|
43
|
+
VCR.use_cassette(cassette_name, :record => :new_episodes) do
|
44
|
+
capture_stderr { proofer.run }
|
45
|
+
proofer
|
46
|
+
end
|
43
47
|
end
|
44
48
|
|
45
49
|
def send_proofer_output(file, opts = {})
|
50
|
+
cassette_name = make_cassette_name(file, opts)
|
46
51
|
proofer = make_proofer(file, opts)
|
47
|
-
|
52
|
+
VCR.use_cassette(cassette_name, :record => :new_episodes) do
|
53
|
+
capture_stderr { proofer.run }
|
54
|
+
end
|
48
55
|
end
|
49
56
|
|
50
57
|
def make_bin(cmd, path=nil)
|
51
58
|
`bin/htmlproof #{cmd} #{path}`
|
52
59
|
end
|
60
|
+
|
61
|
+
def make_cassette_name(file, opts)
|
62
|
+
filename = if file.is_a? Array
|
63
|
+
file.join('_')
|
64
|
+
else
|
65
|
+
file.split('/')[-2..-1].join('/')
|
66
|
+
end
|
67
|
+
(filename += opts.inspect) unless opts.empty?
|
68
|
+
filename
|
69
|
+
end
|
70
|
+
|
71
|
+
VCR.configure do |config|
|
72
|
+
config.cassette_library_dir = "#{FIXTURES_DIR}/vcr_cassettes"
|
73
|
+
config.hook_into :typhoeus
|
74
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html-proofer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen Torikian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mercenary
|
@@ -164,6 +164,20 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: vcr
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '2.9'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '2.9'
|
167
181
|
description: Test your rendered HTML files to make sure they're accurate.
|
168
182
|
email:
|
169
183
|
- gjtorikian@gmail.com
|
@@ -205,6 +219,7 @@ files:
|
|
205
219
|
- spec/html/proofer/fixtures/favicon/favicon_present_shortcut.html
|
206
220
|
- spec/html/proofer/fixtures/html/div_inside_head.html
|
207
221
|
- spec/html/proofer/fixtures/html/html5_tags.html
|
222
|
+
- spec/html/proofer/fixtures/html/ignore_script_embeds.html
|
208
223
|
- spec/html/proofer/fixtures/html/invalid_tag.html
|
209
224
|
- spec/html/proofer/fixtures/html/missing_closing_quotes.html
|
210
225
|
- spec/html/proofer/fixtures/html/opening_and_ending_tag_mismatch.html
|
@@ -318,6 +333,36 @@ files:
|
|
318
333
|
- spec/html/proofer/fixtures/sorting/status/broken_link.html
|
319
334
|
- spec/html/proofer/fixtures/sorting/status/missing_redirect.html
|
320
335
|
- spec/html/proofer/fixtures/utils/lang-jp.html
|
336
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/existingImageExternal_html.yml
|
337
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/ignoreAltButNotLink_html_alt_ignore_/_/_.yml
|
338
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/image_missing_protocol_invalid_html.yml
|
339
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/image_missing_protocol_valid_html.yml
|
340
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/missingImageExternal_html.yml
|
341
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/attributeWithDash_html.yml
|
342
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html.yml
|
343
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html_check_external_hash_true_.yml
|
344
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html_only_4xx_true_.yml
|
345
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenLinkExternal_html.yml
|
346
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenUnixLinks_html.yml
|
347
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/checkSSLLinks_html.yml
|
348
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/ensure_typhoeus_options_html_typhoeus_ssl_verifypeer_false_.yml
|
349
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/escape_pipes_html.yml
|
350
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/file_foo_ext_foo_.yml
|
351
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/githubHash_html.yml
|
352
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/linkWithHttps_html.yml
|
353
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html.yml
|
354
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html_only_4xx_true_typhoeus_followlocation_false_.yml
|
355
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html_typhoeus_followlocation_false_.yml
|
356
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/link_missing_protocol_invalid_html.yml
|
357
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/link_missing_protocol_valid_html.yml
|
358
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/nodupe_html.yml
|
359
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/non_standard_characters_html.yml
|
360
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/redirected_error_html.yml
|
361
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/utf8Link_html.yml
|
362
|
+
- spec/html/proofer/fixtures/vcr_cassettes/scripts/script_broken_external_html.yml
|
363
|
+
- spec/html/proofer/fixtures/vcr_cassettes/sorting/status_typhoeus_followlocation_false_error_sort_status_.yml
|
364
|
+
- spec/html/proofer/fixtures/vcr_cassettes/www_garbalarba_com_href_swap_/garbalarba/_github_.yml
|
365
|
+
- spec/html/proofer/fixtures/vcr_cassettes/www_github_com_foofoofoo_biz.yml
|
321
366
|
- spec/html/proofer/html_spec.rb
|
322
367
|
- spec/html/proofer/images_spec.rb
|
323
368
|
- spec/html/proofer/links_spec.rb
|
@@ -363,6 +408,7 @@ test_files:
|
|
363
408
|
- spec/html/proofer/fixtures/favicon/favicon_present_shortcut.html
|
364
409
|
- spec/html/proofer/fixtures/html/div_inside_head.html
|
365
410
|
- spec/html/proofer/fixtures/html/html5_tags.html
|
411
|
+
- spec/html/proofer/fixtures/html/ignore_script_embeds.html
|
366
412
|
- spec/html/proofer/fixtures/html/invalid_tag.html
|
367
413
|
- spec/html/proofer/fixtures/html/missing_closing_quotes.html
|
368
414
|
- spec/html/proofer/fixtures/html/opening_and_ending_tag_mismatch.html
|
@@ -476,6 +522,36 @@ test_files:
|
|
476
522
|
- spec/html/proofer/fixtures/sorting/status/broken_link.html
|
477
523
|
- spec/html/proofer/fixtures/sorting/status/missing_redirect.html
|
478
524
|
- spec/html/proofer/fixtures/utils/lang-jp.html
|
525
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/existingImageExternal_html.yml
|
526
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/ignoreAltButNotLink_html_alt_ignore_/_/_.yml
|
527
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/image_missing_protocol_invalid_html.yml
|
528
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/image_missing_protocol_valid_html.yml
|
529
|
+
- spec/html/proofer/fixtures/vcr_cassettes/images/missingImageExternal_html.yml
|
530
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/attributeWithDash_html.yml
|
531
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html.yml
|
532
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html_check_external_hash_true_.yml
|
533
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html_only_4xx_true_.yml
|
534
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenLinkExternal_html.yml
|
535
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/brokenUnixLinks_html.yml
|
536
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/checkSSLLinks_html.yml
|
537
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/ensure_typhoeus_options_html_typhoeus_ssl_verifypeer_false_.yml
|
538
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/escape_pipes_html.yml
|
539
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/file_foo_ext_foo_.yml
|
540
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/githubHash_html.yml
|
541
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/linkWithHttps_html.yml
|
542
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html.yml
|
543
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html_only_4xx_true_typhoeus_followlocation_false_.yml
|
544
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html_typhoeus_followlocation_false_.yml
|
545
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/link_missing_protocol_invalid_html.yml
|
546
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/link_missing_protocol_valid_html.yml
|
547
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/nodupe_html.yml
|
548
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/non_standard_characters_html.yml
|
549
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/redirected_error_html.yml
|
550
|
+
- spec/html/proofer/fixtures/vcr_cassettes/links/utf8Link_html.yml
|
551
|
+
- spec/html/proofer/fixtures/vcr_cassettes/scripts/script_broken_external_html.yml
|
552
|
+
- spec/html/proofer/fixtures/vcr_cassettes/sorting/status_typhoeus_followlocation_false_error_sort_status_.yml
|
553
|
+
- spec/html/proofer/fixtures/vcr_cassettes/www_garbalarba_com_href_swap_/garbalarba/_github_.yml
|
554
|
+
- spec/html/proofer/fixtures/vcr_cassettes/www_github_com_foofoofoo_biz.yml
|
479
555
|
- spec/html/proofer/html_spec.rb
|
480
556
|
- spec/html/proofer/images_spec.rb
|
481
557
|
- spec/html/proofer/links_spec.rb
|