spec/html/proofer_spec.rb in html-proofer-1.6.0 vs spec/html/proofer_spec.rb in html-proofer-2.0.0
- old
+ new
@@ -1,102 +1,122 @@
require "spec_helper"
describe HTML::Proofer do
- describe "#failed_tests" do
- it "is a list of the formatted errors" do
+ describe '#failed_tests' do
+ it 'is a list of the formatted errors' do
brokenLinkInternalFilepath = "#{FIXTURES_DIR}/links/brokenLinkInternal.html"
- proofer = make_proofer(brokenLinkInternalFilepath)
- expect(proofer.failed_tests).to eq(["\e[34mspec/html/proofer/fixtures/links/brokenLinkInternal.html\e[0m: internally linking to ./notreal.html, which does not exist", "\e[34mspec/html/proofer/fixtures/links/brokenLinkInternal.html\e[0m: internally linking to ./missingImageAlt.html, which does not exist"])
+ proofer = run_proofer(brokenLinkInternalFilepath)
+ expect(proofer.failed_tests).to eq(["spec/html/proofer/fixtures/links/brokenLinkInternal.html: internally linking to ./notreal.html, which does not exist (line 5)", "spec/html/proofer/fixtures/links/brokenLinkInternal.html: internally linking to ./missingImageAlt.html, which does not exist (line 6)"])
end
end
- describe "#files" do
- it "works for directory that ends with .html" do
+ describe '#files' do
+ it 'works for directory that ends with .html' do
folder = "#{FIXTURES_DIR}/links/_site/folder.html"
proofer = HTML::Proofer.new folder
expect(proofer.files).to eq(["#{folder}/index.html"])
end
end
- describe "#options" do
- it "strips out undesired Typhoeus options" do
+ describe '#options' do
+ it 'strips out undesired Typhoeus options' do
folder = "#{FIXTURES_DIR}/links/_site/folder.html"
proofer = HTML::Proofer.new folder, :verbose => true
expect(proofer.options[:verbose]).to eq(true)
expect(proofer.typhoeus_opts[:verbose]).to eq(nil)
end
- it "takes options for Parallel" do
+ it 'takes options for Parallel' do
folder = "#{FIXTURES_DIR}/links/_site/folder.html"
proofer = HTML::Proofer.new folder, :parallel => { :in_processes => 3 }
expect(proofer.parallel_opts[:in_processes]).to eq(3)
expect(proofer.typhoeus_opts[:in_processes]).to eq(nil)
expect(proofer.options[:parallel]).to eq(nil)
end
- describe "sorting" do
- # would love to know why Travis barfs here
- it "understands sorting by path", :skip => ENV['TRAVIS'] do
+ describe 'sorting' do
+ it 'understands sorting by path' do
output = send_proofer_output("#{FIXTURES_DIR}/sorting/path")
- expect(output.strip).to eq("""
+ expect(output.strip).to eq('''
- spec/html/proofer/fixtures/sorting/path/multiple_issues.html
- * tel: contains no phone number
- * internal image gpl.png does not exist
- * image gpl.png does not have an alt attribute
+ * image gpl.png does not have an alt attribute (line 7)
+ * internal image gpl.png does not exist (line 7)
+ * tel: contains no phone number (line 5)
- spec/html/proofer/fixtures/sorting/path/single_issue.html
- * image has a terrible filename (./Screen Shot 2012-08-09 at 7.51.18 AM.png)
- """.strip)
+ * image has a terrible filename (./Screen Shot 2012-08-09 at 7.51.18 AM.png) (line 1)
+ '''.strip)
end
- it "understands sorting by issue" do
+ it 'understands sorting by issue' do
output = send_proofer_output("#{FIXTURES_DIR}/sorting/issue", :error_sort => :desc)
- expect(output.strip).to eq("""
+ expect(output.strip).to eq('''
- image ./gpl.png does not have an alt attribute
- * spec/html/proofer/fixtures/sorting/issue/broken_image_one.html
- * spec/html/proofer/fixtures/sorting/issue/broken_image_two.html
+ * spec/html/proofer/fixtures/sorting/issue/broken_image_one.html (line 1)
+ * spec/html/proofer/fixtures/sorting/issue/broken_image_two.html (line 1)
- internal image ./gpl.png does not exist
- * spec/html/proofer/fixtures/sorting/issue/broken_image_one.html
- * spec/html/proofer/fixtures/sorting/issue/broken_image_two.html
+ * spec/html/proofer/fixtures/sorting/issue/broken_image_one.html (line 1)
+ * spec/html/proofer/fixtures/sorting/issue/broken_image_two.html (line 1)
- internal image NOT_AN_IMAGE does not exist
- * spec/html/proofer/fixtures/sorting/issue/broken_image_two.html
- """.strip)
+ * spec/html/proofer/fixtures/sorting/issue/broken_image_two.html (line 4)
+ '''.strip)
end
- it "understands sorting by status" do
- output = send_proofer_output("#{FIXTURES_DIR}/sorting/status", :followlocation => false, :error_sort => :status)
- expect(output.strip).to eq("""
+ it 'understands sorting by status' do
+ output = send_proofer_output("#{FIXTURES_DIR}/sorting/status", :typhoeus => { :followlocation => false }, :error_sort => :status)
+ expect(output.strip).to eq('''
- -1
- * spec/html/proofer/fixtures/sorting/status/broken_link.html: internally linking to nowhere.fooof, which does not exist
+ * spec/html/proofer/fixtures/sorting/status/broken_link.html: internally linking to nowhere.fooof, which does not exist (line 3)
- 404
* spec/html/proofer/fixtures/sorting/status/a_404.html: External link http://upload.wikimedia.org/wikipedia/en/thumb/not_here.png failed: 404 No error
* spec/html/proofer/fixtures/sorting/status/broken_link.html: External link http://upload.wikimedia.org/wikipedia/en/thumb/fooooof.png failed: 404 No error
- """.strip)
+ '''.strip)
end
end
- describe "file ignores" do
- it "knows how to ignore a file by string" do
+ describe 'file ignores' do
+ it 'knows how to ignore a file by string' do
options = { :file_ignore => ["#{FIXTURES_DIR}/links/brokenHashInternal.html"] }
brokenHashInternalFilepath = "#{FIXTURES_DIR}/links/brokenHashInternal.html"
- proofer = make_proofer(brokenHashInternalFilepath, options)
+ proofer = run_proofer(brokenHashInternalFilepath, options)
expect(proofer.failed_tests).to eq []
end
- it "knows how to ignore a file by regexp" do
+ it 'knows how to ignore a file by regexp' do
options = { :file_ignore => [/brokenHash/] }
brokenHashInternalFilepath = "#{FIXTURES_DIR}/links/brokenHashInternal.html"
- proofer = make_proofer(brokenHashInternalFilepath, options)
+ proofer = run_proofer(brokenHashInternalFilepath, options)
expect(proofer.failed_tests).to eq []
end
- it "knows how to ignore a directory by regexp" do
+ it 'knows how to ignore multiple files by regexp' do
+ options = { :file_ignore => [%r{.*/javadoc/.*}, %r{.*/catalog/.*}] }
+ brokenFolders = "#{FIXTURES_DIR}/links/folder/multiples"
+ proofer = run_proofer(brokenFolders, options)
+ expect(proofer.failed_tests).to eq []
+ end
+
+ it 'knows how to ignore a directory by regexp' do
options = { :file_ignore => [/\S\.html/] }
linksDir = "#{FIXTURES_DIR}/links"
- proofer = make_proofer(linksDir, options)
+ proofer = run_proofer(linksDir, options)
expect(proofer.failed_tests).to eq []
end
+ end
+ end
+
+ describe 'ignored checks' do
+ it 'knows how to ignore checks' do
+ options = { :checks_to_ignore => ['ImageRunner'] }
+ proofer = make_proofer('', options)
+ expect(proofer.checks).to_not include 'ImageRunner'
+ end
+
+ it 'does not care about phoney ignored checks' do
+ options = { :checks_to_ignore => ['This is nothing.'] }
+ proofer = make_proofer('', options)
+ expect(proofer.checks.length).to eq 3
end
end
end