aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--spec/spec_helper.rb42
-rw-r--r--todo.txt3
2 files changed, 24 insertions, 21 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 360b2f38b..43a67d304 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -31,30 +31,36 @@ def receive_incoming_mail(email_name, email_to)
end
# Monkeypatch! Validate HTML in tests.
+$html_validation_script = "/usr/bin/validate" # from Debian package wdg-html-validator
if $tempfilecount.nil?
$tempfilecount = 0
- module ActionController
- module TestProcess
- alias :original_process :process
-
- def process(action, parameters = nil, session = nil, flash = nil)
- # Call original process function
- self.original_process(action, parameters, session, flash)
-
- # And then validate if HTML
- if @response.content_type == "text/html" and @response.response_code != 302
- $tempfilecount = $tempfilecount + 1
- tempfilename = File.join(Dir::tmpdir, "railshtmlvalidate."+$$.to_s+"."+$tempfilecount.to_s+".html")
- File.open(tempfilename, "w+") do |f|
- f.puts @response.body
- end
- if not system("/usr/bin/validate", tempfilename)
- raise "HTML validation error in " + tempfilename + " HTTP status: " + @response.response_code.to_s
+ if File.exist?($html_validation_script)
+ module ActionController
+ module TestProcess
+ # Hook into the process function, so can automatically get HTML after each request
+ alias :original_process :process
+
+ def process(action, parameters = nil, session = nil, flash = nil)
+ # Call original process function
+ self.original_process(action, parameters, session, flash)
+
+ # And then if HTML, validate it
+ if @response.content_type == "text/html" and @response.response_code != 302
+ $tempfilecount = $tempfilecount + 1
+ tempfilename = File.join(Dir::tmpdir, "railshtmlvalidate."+$$.to_s+"."+$tempfilecount.to_s+".html")
+ File.open(tempfilename, "w+") do |f|
+ f.puts @response.body
+ end
+ if not system($html_validation_script, tempfilename)
+ raise "HTML validation error in " + tempfilename + " HTTP status: " + @response.response_code.to_s
+ end
+ File.unlink(tempfilename)
end
- File.unlink(tempfilename)
end
end
end
+ else
+ puts "WARNING: HTML validation script " + $html_validation_script + " not found"
end
end
diff --git a/todo.txt b/todo.txt
index 28f3dc17a..6b20cc337 100644
--- a/todo.txt
+++ b/todo.txt
@@ -59,9 +59,6 @@ Consider removing login links from notifications of new responses
Tidying
=======
-HTML validation - make it properly optional is /usr/bin/validate present
-
-Work out how to get it to tell you code coverage of .rhtml files
Test that it is actually sending the request outgoing mail, by using deliveries
Test sending a message to bounce/envelope-from address