html-proofer 0.0.1 → 0.0.3

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.
@@ -1,14 +1,33 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- html-proofer (0.0.1)
4
+ html-proofer (0.0.2)
5
+ colored (~> 1.2)
5
6
  nokogiri (~> 1.5.6)
6
7
 
7
8
  GEM
8
9
  remote: http://rubygems.org/
9
10
  specs:
11
+ activesupport (3.2.12)
12
+ i18n (~> 0.6)
13
+ multi_json (~> 1.0)
14
+ colored (1.2)
10
15
  diff-lcs (1.2.1)
16
+ escape_utils (0.3.2)
17
+ gemoji (1.4.0)
18
+ github-markdown (0.5.3)
19
+ html-pipeline (0.0.8)
20
+ activesupport (>= 2)
21
+ escape_utils (~> 0.2)
22
+ gemoji (~> 1.0)
23
+ github-markdown (~> 0.5)
24
+ nokogiri (~> 1.4)
25
+ rinku (~> 1.7)
26
+ sanitize (~> 2.0)
27
+ i18n (0.6.4)
28
+ multi_json (1.6.1)
11
29
  nokogiri (1.5.6)
30
+ rinku (1.7.2)
12
31
  rspec (2.13.0)
13
32
  rspec-core (~> 2.13.0)
14
33
  rspec-expectations (~> 2.13.0)
@@ -17,10 +36,13 @@ GEM
17
36
  rspec-expectations (2.13.0)
18
37
  diff-lcs (>= 1.1.3, < 2.0)
19
38
  rspec-mocks (2.13.0)
39
+ sanitize (2.0.3)
40
+ nokogiri (>= 1.4.4, < 1.6)
20
41
 
21
42
  PLATFORMS
22
43
  ruby
23
44
 
24
45
  DEPENDENCIES
46
+ html-pipeline (~> 0.0.7)
25
47
  html-proofer!
26
48
  rspec (~> 2.13.0)
data/README.md CHANGED
@@ -20,8 +20,8 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- Require the gem; generate some HTML; then `call` the `HTML::Proofer` on
24
- your out folder:
23
+ Require the gem; generate some HTML; create a new instance of the `HTML::Proofer` on
24
+ your out folder; then `run` it:
25
25
 
26
26
  ```ruby
27
27
  require 'html/proofer'
@@ -51,9 +51,11 @@ tester = HTML::Proofer.new("./out")
51
51
  tester.run
52
52
  ```
53
53
 
54
- The `HTML::Proofer` constructor takes on optional hash of additional options:
54
+ The `HTML::Proofer` constructor takes an optional hash of additional options:
55
55
 
56
- * `:ext`: the extension (including the `.`) of your HTML files (default: `.html)
56
+ * `:ext`: the extension (including the `.`) of your HTML files (default: `.html`)
57
+ * `:href_swap`: a hash containing key-value pairs of `RegExp => String`. It transforms links that match `RegExp` into `String` via `gsub`.
58
+ * `:href_ignore`: an array of Strings containing `href`s that are safe to ignore (default: `mailto`)
57
59
 
58
60
  ## What's Tested?
59
61
 
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1 @@
1
+ require 'html/proofer'
@@ -3,17 +3,23 @@ require 'html/proofer/checks'
3
3
 
4
4
  module HTML
5
5
  class Proofer
6
- def initialize(src, opts = {:ext => ".html"})
6
+ def initialize(src, opts={})
7
7
  @srcDir = src
8
- @options = opts
8
+ @options = {:ext => ".html"}.merge(opts)
9
9
  end
10
10
 
11
11
  def run
12
- Find.find(@srcDir) do |path|
13
- if File.extname(path) == @options[:ext]
14
- html = HTML::Proofer.create_nokogiri(path)
15
- issues = run_checks(path, html)
16
- self.print_issues(issues)
12
+ get_checks.each do |klass|
13
+ issues = []
14
+ puts "Running #{klass.name.split(/:/).pop()} check... \n\n"
15
+
16
+ Find.find(@srcDir) do |path|
17
+ if File.extname(path) == @options[:ext]
18
+ html = HTML::Proofer.create_nokogiri(path)
19
+ check = klass.new(path, html, @options)
20
+ check.run
21
+ self.print_issues(check.issues)
22
+ end
17
23
  end
18
24
  end
19
25
  end
@@ -26,20 +32,6 @@ module HTML
26
32
  HTML::Proofer::Checks::Check.subclasses
27
33
  end
28
34
 
29
- def run_checks(path, html)
30
- issues = []
31
-
32
- get_checks.each do |klass|
33
- puts "Running #{klass.name.split(/:/).pop()} check... "
34
-
35
- check = klass.new(path, html)
36
- check.run
37
-
38
- issues.concat(check.issues)
39
- end
40
- issues
41
- end
42
-
43
35
  def print_issues(issues)
44
36
  return if issues.empty?
45
37
  issues.each do |issue|
@@ -11,10 +11,13 @@ class HTML::Proofer::Checks
11
11
 
12
12
  attr_reader :issues
13
13
 
14
- def initialize(path, html)
14
+ def initialize(path, html, opts={})
15
15
  @path = path
16
16
  @html = html
17
+ @options = opts
17
18
  @issues = []
19
+
20
+ @additional_href_ignores = @options[:href_ignore] || []
18
21
  end
19
22
 
20
23
  def run
@@ -38,6 +41,15 @@ class HTML::Proofer::Checks
38
41
  false
39
42
  end
40
43
 
44
+ def ignore_href?(href)
45
+ uri = URI.parse(href)
46
+ %w( mailto ).include?(uri.scheme) || @additional_href_ignores.include?(href)
47
+ rescue URI::BadURIError
48
+ false
49
+ rescue URI::InvalidURIError
50
+ false
51
+ end
52
+
41
53
  def validate_url(href)
42
54
  # Parse
43
55
  url = nil
@@ -47,9 +59,6 @@ class HTML::Proofer::Checks
47
59
  return Result.new(href, 'invalid URI')
48
60
  end
49
61
 
50
- # Skip non-HTTP URLs
51
- #return nil if url.scheme !~ /^https?$/
52
-
53
62
  # Get status
54
63
  res = nil
55
64
  5.times do |i|
@@ -61,11 +70,9 @@ class HTML::Proofer::Checks
61
70
  return nil
62
71
  end
63
72
 
73
+ next if res.code =~ /^5..$/
74
+
64
75
  if res.code =~ /^3..$/
65
- if i == 4
66
- return nil
67
- end
68
-
69
76
  # Find proper location
70
77
  location = res['Location']
71
78
  if location !~ /^https?:\/\//
@@ -75,7 +82,6 @@ class HTML::Proofer::Checks
75
82
  base_url.fragment = nil
76
83
  location = base_url.to_s + location
77
84
  end
78
- puts location
79
85
  url = URI.parse(location)
80
86
  elsif res.code == '200'
81
87
  return true
@@ -18,7 +18,7 @@ class Images < ::HTML::Proofer::Checks::Check
18
18
  end
19
19
 
20
20
  # check alt tag
21
- self.add_issue("#{@path}".blue + ": image #{src} does not have an alt attribute") unless img['alt']
21
+ self.add_issue("#{@path}".blue + ": image #{src} does not have an alt attribute") unless img['alt'] and !img['alt'].empty?
22
22
  end
23
23
  end
24
24
  end
@@ -7,6 +7,14 @@ class Links < ::HTML::Proofer::Checks::Check
7
7
  href = a['href']
8
8
 
9
9
  if href && href.length > 0
10
+ if @options[:href_swap]
11
+ @options[:href_swap].each do |link, replace|
12
+ href = href.gsub(link, replace)
13
+ end
14
+ end
15
+
16
+ return if ignore_href?(href)
17
+
10
18
  if href.include? '#'
11
19
  href_split = href.split('#')
12
20
  end
@@ -24,26 +32,30 @@ class Links < ::HTML::Proofer::Checks::Check
24
32
  else
25
33
  href_html = HTML::Proofer.create_nokogiri(href_location)
26
34
  found_hash_match = false
27
- unless href_html.search("[id=#{href_hash}]", "[name=#{href_hash}]").length > 0
35
+ unless hash_check(href_html, href_hash)
28
36
  self.add_issue("#{@path}".blue + ": linking to #{href}, but #{href_hash} does not exist")
29
37
  end
30
38
  end
31
39
  # it is an internal link, with an internal hash
32
40
  else
33
- unless @html.search("[id=#{href_hash}]", "[name=#{href_hash}]").length > 0
41
+ unless hash_check(@html, href_hash)
34
42
  self.add_issue("#{@path}".blue + ": linking to an internal hash called #{href_hash} that does not exist")
35
43
  end
36
44
  end
37
45
  # internal link, no hash
38
46
  else
39
- self.add_issue("#{@path}".blue + ": linking to #{href}, which does not exist") unless File.exist?(File.join(File.dirname(@path), href))
47
+ self.add_issue("#{@path}".blue + ": internally linking to #{href}, which does not exist") unless File.exist?(File.join(File.dirname(@path), href))
40
48
  end
41
49
  else
42
- self.add_issue("#{@path}".blue + ": linking to #{href}, which does not exist") unless validate_url(href)
50
+ self.add_issue("#{@path}".blue + ": externally linking to #{href}, which does not exist") unless validate_url(href)
43
51
  end
44
52
  else
45
53
  self.add_issue("#{@path}".blue + ": link has no href attribute") unless a['name'] || a['id']
46
54
  end
47
55
  end
48
56
  end
57
+
58
+ def hash_check(html, href_hash)
59
+ html.xpath("//*[@id='#{href_hash}']", "//*[@name='#{href_hash}']").length > 0
60
+ end
49
61
  end
@@ -1,5 +1,5 @@
1
1
  module HTML
2
2
  class Proofer
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -0,0 +1,8 @@
1
+ <html>
2
+
3
+ <body>
4
+
5
+ <p>Blah blah blah. <a name="25-method-not-allowed" class="anchor" href="#25-method-not-allowed"><span class="mini-icon mini-icon-link"></span></a>25 Method not allowed</h4></p>
6
+ </body>
7
+
8
+ </html>
@@ -0,0 +1,9 @@
1
+ <html>
2
+
3
+ <body>
4
+
5
+ <p>Blah blah blah. <a href="https://github.com/octocat/Spoon-Knife/issues">An HTTPS link!</a></p>
6
+
7
+ </body>
8
+
9
+ </html>
@@ -0,0 +1,9 @@
1
+ <html>
2
+
3
+ <body>
4
+
5
+ <p>Blah blah blah. <a href="http://www.capify.org/">This is a redirect.</a>. </p>
6
+
7
+ </body>
8
+
9
+ </html>
@@ -0,0 +1,9 @@
1
+ <html>
2
+
3
+ <body>
4
+
5
+ <p>Blah blah blah. <img src="./gpl.png" alt/> </p>
6
+
7
+ </body>
8
+
9
+ </html>
@@ -1,46 +1,52 @@
1
1
  require "spec_helper"
2
- include HTML::Proofer::Checks
3
2
 
4
- describe "Image" do
3
+ describe "Image tests" do
5
4
  it "passes for existing external images" do
6
5
  externalImageFilepath = "#{FIXTURES_DIR}/existingImageExternal.html"
7
- @imageCheck = ::HTML::Proofer::Checks::Check::Images.new(externalImageFilepath, HTML::Proofer.create_nokogiri(externalImageFilepath))
6
+ @imageCheck = Images.new(externalImageFilepath, HTML::Proofer.create_nokogiri(externalImageFilepath))
8
7
  @imageCheck.run
9
8
  @imageCheck.issues[0].should eq(nil)
10
9
  end
11
10
 
12
11
  it "fails for image without alt attribute" do
13
12
  missingAltFilepath = "#{FIXTURES_DIR}/missingImageAlt.html"
14
- @imageCheck = ::HTML::Proofer::Checks::Check::Images.new(missingAltFilepath, HTML::Proofer.create_nokogiri(missingAltFilepath))
13
+ @imageCheck = Images.new(missingAltFilepath, HTML::Proofer.create_nokogiri(missingAltFilepath))
15
14
  @imageCheck.run
16
- @imageCheck.issues[0].should eq("In spec/html/proofer/fixtures/missingImageAlt.html, image ./gpl.png does not have an alt attribute")
15
+ @imageCheck.issues[0].should eq("spec/html/proofer/fixtures/missingImageAlt.html".blue + ": image ./gpl.png does not have an alt attribute")
16
+ end
17
+
18
+ it "fails for image with an empty alt attribute" do
19
+ missingAltFilepath = "#{FIXTURES_DIR}/missingImageAltText.html"
20
+ @imageCheck = Images.new(missingAltFilepath, HTML::Proofer.create_nokogiri(missingAltFilepath))
21
+ @imageCheck.run
22
+ @imageCheck.issues[0].should eq("spec/html/proofer/fixtures/missingImageAltText.html".blue + ": image ./gpl.png does not have an alt attribute")
17
23
  end
18
24
 
19
25
  it "fails for image without a dir prefix" do
20
26
  missingImageDirPrefixFilepath = "#{FIXTURES_DIR}/missingImageDirPrefix.html"
21
- @imageCheck = ::HTML::Proofer::Checks::Check::Images.new(missingImageDirPrefixFilepath, HTML::Proofer.create_nokogiri(missingImageDirPrefixFilepath))
27
+ @imageCheck = Images.new(missingImageDirPrefixFilepath, HTML::Proofer.create_nokogiri(missingImageDirPrefixFilepath))
22
28
  @imageCheck.run
23
- @imageCheck.issues[0].should eq("In spec/html/proofer/fixtures/missingImageDirPrefix.html, internal image /gpl.png does not exist")
29
+ @imageCheck.issues[0].should eq("spec/html/proofer/fixtures/missingImageDirPrefix.html".blue + ": internal image /gpl.png does not exist")
24
30
  end
25
31
 
26
32
  it "fails for missing external images" do
27
33
  externalImageFilepath = "#{FIXTURES_DIR}/missingImageExternal.html"
28
- @imageCheck = ::HTML::Proofer::Checks::Check::Images.new(externalImageFilepath, HTML::Proofer.create_nokogiri(externalImageFilepath))
34
+ @imageCheck = Images.new(externalImageFilepath, HTML::Proofer.create_nokogiri(externalImageFilepath))
29
35
  @imageCheck.run
30
- @imageCheck.issues[0].should eq("In spec/html/proofer/fixtures/missingImageExternal.html, external image http://www.whatthehell does not exist")
36
+ @imageCheck.issues[0].should eq("spec/html/proofer/fixtures/missingImageExternal.html".blue + ": external image http://www.whatthehell does not exist")
31
37
  end
32
38
 
33
39
  it "fails for missing internal images" do
34
40
  internalImageFilepath = "#{FIXTURES_DIR}/missingImageInternal.html"
35
- @imageCheck = ::HTML::Proofer::Checks::Check::Images.new(internalImageFilepath, HTML::Proofer.create_nokogiri(internalImageFilepath))
41
+ @imageCheck = Images.new(internalImageFilepath, HTML::Proofer.create_nokogiri(internalImageFilepath))
36
42
  @imageCheck.run
37
- @imageCheck.issues[0].should eq("In spec/html/proofer/fixtures/missingImageInternal.html, internal image ./doesnotexist.png does not exist")
43
+ @imageCheck.issues[0].should eq("spec/html/proofer/fixtures/missingImageInternal.html".blue + ": internal image ./doesnotexist.png does not exist")
38
44
  end
39
45
 
40
46
  it "fails for image with no src" do
41
47
  imageSrcFilepath = "#{FIXTURES_DIR}/missingImageSrc.html"
42
- @imageCheck = ::HTML::Proofer::Checks::Check::Images.new(imageSrcFilepath, HTML::Proofer.create_nokogiri(imageSrcFilepath))
48
+ @imageCheck = Images.new(imageSrcFilepath, HTML::Proofer.create_nokogiri(imageSrcFilepath))
43
49
  @imageCheck.run
44
- @imageCheck.issues[0].should eq("In spec/html/proofer/fixtures/missingImageSrc.html, image has no src attribute")
50
+ @imageCheck.issues[0].should eq("spec/html/proofer/fixtures/missingImageSrc.html".blue + ": image has no src attribute")
45
51
  end
46
52
  end
@@ -1,40 +1,60 @@
1
1
  require "spec_helper"
2
- include HTML::Proofer::Checks
3
2
 
4
- describe "Links" do
3
+ describe "Links tests" do
5
4
 
6
5
  it "fails for broken external hash (even if the file exists)" do
7
6
  brokenHashExternalFilepath = "#{FIXTURES_DIR}/brokenHashExternal.html"
8
- @linkCheck = ::HTML::Proofer::Checks::Check::Links.new(brokenHashExternalFilepath, HTML::Proofer.create_nokogiri(brokenHashExternalFilepath))
7
+ @linkCheck = Links.new(brokenHashExternalFilepath, HTML::Proofer.create_nokogiri(brokenHashExternalFilepath))
9
8
  @linkCheck.run
10
- @linkCheck.issues[1].should eq("spec/html/proofer/fixtures/brokenHashExternal.html is linking to ./missingImageAlt.html#asdfasfdkafl, but asdfasfdkafl does not exist")
9
+ @linkCheck.issues[1].should eq("spec/html/proofer/fixtures/brokenHashExternal.html".blue + ": linking to ./missingImageAlt.html#asdfasfdkafl, but asdfasfdkafl does not exist")
11
10
  end
12
11
 
13
12
  it "fails for broken internal hash" do
14
13
  brokenHashInternalFilepath = "#{FIXTURES_DIR}/brokenHashInternal.html"
15
- @linkCheck = ::HTML::Proofer::Checks::Check::Links.new(brokenHashInternalFilepath, HTML::Proofer.create_nokogiri(brokenHashInternalFilepath))
14
+ @linkCheck = Links.new(brokenHashInternalFilepath, HTML::Proofer.create_nokogiri(brokenHashInternalFilepath))
16
15
  @linkCheck.run
17
- @linkCheck.issues[0].should eq("spec/html/proofer/fixtures/brokenHashInternal.html is linking to an internal hash called noHash that does not exist")
16
+ @linkCheck.issues[0].should eq("spec/html/proofer/fixtures/brokenHashInternal.html".blue + ": linking to an internal hash called noHash that does not exist")
18
17
  end
19
18
 
20
19
  it "fails for broken external links" do
21
20
  brokenLinkExternalFilepath = "#{FIXTURES_DIR}/brokenLinkExternal.html"
22
- @linkCheck = ::HTML::Proofer::Checks::Check::Links.new(brokenLinkExternalFilepath, HTML::Proofer.create_nokogiri(brokenLinkExternalFilepath))
21
+ @linkCheck = Links.new(brokenLinkExternalFilepath, HTML::Proofer.create_nokogiri(brokenLinkExternalFilepath))
23
22
  @linkCheck.run
24
- @linkCheck.issues[0].should eq("spec/html/proofer/fixtures/brokenLinkExternal.html is linking to http://www.asdo3IRJ395295jsingrkrg4.com, which does not exist")
23
+ @linkCheck.issues[0].should eq("spec/html/proofer/fixtures/brokenLinkExternal.html".blue + ": externally linking to http://www.asdo3IRJ395295jsingrkrg4.com, which does not exist")
25
24
  end
26
25
 
27
26
  it "fails for broken internal links" do
28
27
  brokenLinkInternalFilepath = "#{FIXTURES_DIR}/brokenLinkInternal.html"
29
- @linkCheck = ::HTML::Proofer::Checks::Check::Links.new(brokenLinkInternalFilepath, HTML::Proofer.create_nokogiri(brokenLinkInternalFilepath))
28
+ @linkCheck = Links.new(brokenLinkInternalFilepath, HTML::Proofer.create_nokogiri(brokenLinkInternalFilepath))
30
29
  @linkCheck.run
31
- @linkCheck.issues[0].should eq("spec/html/proofer/fixtures/brokenLinkInternal.html is linking to ./notreal.html, which does not exist")
30
+ @linkCheck.issues[0].should eq("spec/html/proofer/fixtures/brokenLinkInternal.html".blue + ": internally linking to ./notreal.html, which does not exist")
32
31
  end
33
32
 
34
33
  it "fails for link with no href" do
35
34
  missingLinkHrefFilepath = "#{FIXTURES_DIR}/missingLinkHref.html"
36
- @linkCheck = ::HTML::Proofer::Checks::Check::Links.new(missingLinkHrefFilepath, HTML::Proofer.create_nokogiri(missingLinkHrefFilepath))
35
+ @linkCheck = Links.new(missingLinkHrefFilepath, HTML::Proofer.create_nokogiri(missingLinkHrefFilepath))
37
36
  @linkCheck.run
38
- @linkCheck.issues[0].should eq("In spec/html/proofer/fixtures/missingLinkHref.html, link has no href attribute")
37
+ @linkCheck.issues[0].should eq("spec/html/proofer/fixtures/missingLinkHref.html".blue + ": link has no href attribute")
38
+ end
39
+
40
+ it "should follow redirects" do
41
+ linkWithRedirectFilepath = "#{FIXTURES_DIR}/linkWithRedirect.html"
42
+ @linkCheck = Links.new(linkWithRedirectFilepath, HTML::Proofer.create_nokogiri(linkWithRedirectFilepath))
43
+ @linkCheck.run
44
+ @linkCheck.issues[0].should eq(nil)
45
+ end
46
+
47
+ it "should understand https" do
48
+ linkWithHttpsFilepath = "#{FIXTURES_DIR}/linkWithHttps.html"
49
+ @linkCheck = Links.new(linkWithHttpsFilepath, HTML::Proofer.create_nokogiri(linkWithHttpsFilepath))
50
+ @linkCheck.run
51
+ @linkCheck.issues[0].should eq(nil)
52
+ end
53
+
54
+ it "fails for broken hash links with status code numbers" do
55
+ brokenLinkWithNumberFilepath = "#{FIXTURES_DIR}/brokenLinkWithNumber.html"
56
+ @linkCheck = Links.new(brokenLinkWithNumberFilepath, HTML::Proofer.create_nokogiri(brokenLinkWithNumberFilepath))
57
+ @linkCheck.run
58
+ @linkCheck.issues[0].should eq(nil)
39
59
  end
40
60
  end
@@ -1,7 +1,17 @@
1
1
  require 'bundler/setup'
2
- require_relative "../lib/html/proofer.rb"
3
- require_relative "../lib/html/proofer/checks.rb"
2
+ require_relative "../lib/html-proofer"
4
3
 
5
4
  require File.expand_path('../../lib/html/proofer/version.rb', __FILE__)
6
5
 
7
- FIXTURES_DIR = "spec/html/proofer/fixtures"
6
+ FIXTURES_DIR = "spec/html/proofer/fixtures"
7
+
8
+ RSpec.configure do |config|
9
+ # Use color in STDOUT
10
+ config.color_enabled = true
11
+
12
+ # Use color not only in STDOUT but also in pagers and files
13
+ config.tty = true
14
+
15
+ # Use the specified formatter
16
+ config.formatter = :documentation # :progress, :html, :textmate
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html-proofer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-14 00:00:00.000000000 Z
12
+ date: 2013-03-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -87,7 +87,9 @@ files:
87
87
  - Gemfile.lock
88
88
  - LICENSE.txt
89
89
  - README.md
90
+ - Rakefile
90
91
  - html-proofer.gemspec
92
+ - lib/html-proofer.rb
91
93
  - lib/html/proofer.rb
92
94
  - lib/html/proofer/check.rb
93
95
  - lib/html/proofer/checks.rb
@@ -98,9 +100,13 @@ files:
98
100
  - spec/html/proofer/fixtures/brokenHashInternal.html
99
101
  - spec/html/proofer/fixtures/brokenLinkExternal.html
100
102
  - spec/html/proofer/fixtures/brokenLinkInternal.html
103
+ - spec/html/proofer/fixtures/brokenLinkWithNumber.html
101
104
  - spec/html/proofer/fixtures/existingImageExternal.html
102
105
  - spec/html/proofer/fixtures/gpl.png
106
+ - spec/html/proofer/fixtures/linkWithHttps.html
107
+ - spec/html/proofer/fixtures/linkWithRedirect.html
103
108
  - spec/html/proofer/fixtures/missingImageAlt.html
109
+ - spec/html/proofer/fixtures/missingImageAltText.html
104
110
  - spec/html/proofer/fixtures/missingImageDirPrefix.html
105
111
  - spec/html/proofer/fixtures/missingImageExternal.html
106
112
  - spec/html/proofer/fixtures/missingImageInternal.html
@@ -141,9 +147,13 @@ test_files:
141
147
  - spec/html/proofer/fixtures/brokenHashInternal.html
142
148
  - spec/html/proofer/fixtures/brokenLinkExternal.html
143
149
  - spec/html/proofer/fixtures/brokenLinkInternal.html
150
+ - spec/html/proofer/fixtures/brokenLinkWithNumber.html
144
151
  - spec/html/proofer/fixtures/existingImageExternal.html
145
152
  - spec/html/proofer/fixtures/gpl.png
153
+ - spec/html/proofer/fixtures/linkWithHttps.html
154
+ - spec/html/proofer/fixtures/linkWithRedirect.html
146
155
  - spec/html/proofer/fixtures/missingImageAlt.html
156
+ - spec/html/proofer/fixtures/missingImageAltText.html
147
157
  - spec/html/proofer/fixtures/missingImageDirPrefix.html
148
158
  - spec/html/proofer/fixtures/missingImageExternal.html
149
159
  - spec/html/proofer/fixtures/missingImageInternal.html