html-proofer 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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