html-proofer 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/bin/htmlproof +4 -2
  4. data/html-proofer.gemspec +1 -0
  5. data/lib/html/proofer.rb +5 -2
  6. data/lib/html/proofer/check_runner.rb +3 -2
  7. data/lib/html/proofer/checks/html.rb +7 -3
  8. data/lib/html/proofer/version.rb +1 -1
  9. data/spec/html/proofer/fixtures/html/ignore_script_embeds.html +3 -0
  10. data/spec/html/proofer/fixtures/links/linkWithRedirect.html +2 -0
  11. data/spec/html/proofer/fixtures/vcr_cassettes/images/existingImageExternal_html.yml +62 -0
  12. data/spec/html/proofer/fixtures/vcr_cassettes/images/ignoreAltButNotLink_html_alt_ignore_/_/_.yml +45 -0
  13. data/spec/html/proofer/fixtures/vcr_cassettes/images/image_missing_protocol_invalid_html.yml +117 -0
  14. data/spec/html/proofer/fixtures/vcr_cassettes/images/image_missing_protocol_valid_html.yml +62 -0
  15. data/spec/html/proofer/fixtures/vcr_cassettes/images/missingImageExternal_html.yml +45 -0
  16. data/spec/html/proofer/fixtures/vcr_cassettes/links/attributeWithDash_html.yml +73 -0
  17. data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html.yml +56 -0
  18. data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html_check_external_hash_true_.yml +719 -0
  19. data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenHashOnTheWeb_html_only_4xx_true_.yml +56 -0
  20. data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenLinkExternal_html.yml +96 -0
  21. data/spec/html/proofer/fixtures/vcr_cassettes/links/brokenUnixLinks_html.yml +156 -0
  22. data/spec/html/proofer/fixtures/vcr_cassettes/links/checkSSLLinks_html.yml +50 -0
  23. data/spec/html/proofer/fixtures/vcr_cassettes/links/ensure_typhoeus_options_html_typhoeus_ssl_verifypeer_false_.yml +40 -0
  24. data/spec/html/proofer/fixtures/vcr_cassettes/links/escape_pipes_html.yml +52 -0
  25. data/spec/html/proofer/fixtures/vcr_cassettes/links/file_foo_ext_foo_.yml +96 -0
  26. data/spec/html/proofer/fixtures/vcr_cassettes/links/githubHash_html.yml +73 -0
  27. data/spec/html/proofer/fixtures/vcr_cassettes/links/linkWithHttps_html.yml +73 -0
  28. data/spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html.yml +236 -0
  29. data/spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html_only_4xx_true_typhoeus_followlocation_false_.yml +318 -0
  30. data/spec/html/proofer/fixtures/vcr_cassettes/links/linkWithRedirect_html_typhoeus_followlocation_false_.yml +318 -0
  31. data/spec/html/proofer/fixtures/vcr_cassettes/links/link_missing_protocol_invalid_html.yml +45 -0
  32. data/spec/html/proofer/fixtures/vcr_cassettes/links/link_missing_protocol_valid_html.yml +73 -0
  33. data/spec/html/proofer/fixtures/vcr_cassettes/links/nodupe_html.yml +182 -0
  34. data/spec/html/proofer/fixtures/vcr_cassettes/links/non_standard_characters_html.yml +113 -0
  35. data/spec/html/proofer/fixtures/vcr_cassettes/links/redirected_error_html.yml +1044 -0
  36. data/spec/html/proofer/fixtures/vcr_cassettes/links/utf8Link_html.yml +113 -0
  37. data/spec/html/proofer/fixtures/vcr_cassettes/scripts/script_broken_external_html.yml +45 -0
  38. data/spec/html/proofer/fixtures/vcr_cassettes/sorting/status_typhoeus_followlocation_false_error_sort_status_.yml +244 -0
  39. data/spec/html/proofer/fixtures/vcr_cassettes/www_garbalarba_com_href_swap_/garbalarba/_github_.yml +73 -0
  40. data/spec/html/proofer/fixtures/vcr_cassettes/www_github_com_foofoofoo_biz.yml +115 -0
  41. data/spec/html/proofer/html_spec.rb +12 -5
  42. data/spec/html/proofer/images_spec.rb +3 -3
  43. data/spec/html/proofer/links_spec.rb +6 -6
  44. data/spec/html/proofer/scripts_spec.rb +1 -2
  45. data/spec/html/proofer_spec.rb +3 -3
  46. data/spec/spec_helper.rb +27 -5
  47. 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 Couldn't resolve host/)
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 No error/)
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(/Couldn't resolve host name/)
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 Couldn't resolve host name/)
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 Couldn't resolve host name/)
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 No error/)
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(/Couldn't resolve host name/)
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 Couldn't resolve host name/)
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(/post.htm\?id=63009224 failed: 404 No error/)
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 Couldn't resolve host name/)
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
@@ -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.strip).to eq('''
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 No error
73
- * spec/html/proofer/fixtures/sorting/status/broken_link.html: External link http://upload.wikimedia.org/wikipedia/en/thumb/fooooof.png failed: 301 No error
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
- require_relative "../lib/html/proofer"
2
+ require 'vcr'
3
+ require_relative '../lib/html/proofer'
3
4
 
4
- FIXTURES_DIR = "spec/html/proofer/fixtures"
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
- capture_stderr { proofer.run }
42
- proofer
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
- capture_stderr { proofer.run }
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.3.0
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-07-01 00:00:00.000000000 Z
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