validate-website 0.7.1 → 0.7.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +15 -2
- data/lib/validate_website/rspec.rb +10 -0
- data/lib/validate_website/validator.rb +1 -3
- data/spec/core_spec.rb +1 -0
- data/spec/data/validator.nu-failure.html +10 -0
- data/spec/fakeweb_helper.rb +1 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/validator_spec.rb +19 -0
- metadata +16 -14
data/README.rdoc
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
validate-website is a web crawler for checking the markup validity with XML
|
21
21
|
Schema / DTD and not found urls (more info doc/validate-website.txt).
|
22
22
|
|
23
|
-
validate-website-static
|
23
|
+
validate-website-static checks the markup validity of your local documents with
|
24
24
|
XML Schema / DTD (more info doc/validate-website-static.txt).
|
25
25
|
|
26
26
|
HTML5 support with Validator.nu Web Service.
|
@@ -62,13 +62,26 @@ HTML5 support with Validator.nu Web Service.
|
|
62
62
|
66::
|
63
63
|
There are not valid markup and pages not found.
|
64
64
|
|
65
|
-
== On your application
|
65
|
+
== On your application
|
66
66
|
|
67
67
|
require 'validate_website/validator'
|
68
68
|
body = '<!DOCTYPE html><html></html>'
|
69
69
|
v = ValidateWebsite::Validator.new(Nokogiri::HTML(body), body)
|
70
70
|
v.valid? # => false
|
71
71
|
|
72
|
+
== With RSpec
|
73
|
+
|
74
|
+
On spec/spec_helper.rb:
|
75
|
+
|
76
|
+
require 'validate_website/validator'
|
77
|
+
require 'validate_website/rspec'
|
78
|
+
|
79
|
+
On your spec/controllers:
|
80
|
+
|
81
|
+
it 'should be valid' do
|
82
|
+
response.body.should be_w3c_valid
|
83
|
+
end
|
84
|
+
|
72
85
|
== REQUIREMENTS
|
73
86
|
|
74
87
|
See validate-website.gemspec file.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
RSpec::Matchers.define :be_w3c_valid do |expected|
|
3
|
+
match do |body|
|
4
|
+
@validator = ValidateWebsite::Validator.new(Nokogiri::HTML(body), body)
|
5
|
+
@validator.valid?
|
6
|
+
end
|
7
|
+
failure_message_for_should do |actual|
|
8
|
+
@validator.errors
|
9
|
+
end
|
10
|
+
end
|
@@ -52,9 +52,7 @@ module ValidateWebsite
|
|
52
52
|
'Content-Length' => multipart.to_s.bytesize.to_s,
|
53
53
|
}
|
54
54
|
res = http.start {|con| con.post(url.path, multipart.to_s, headers) }
|
55
|
-
|
56
|
-
@errors << "HTML5 validator.nu #{el.content}"
|
57
|
-
end
|
55
|
+
@errors = Nokogiri::XML.parse(res.body).css('ol li.error').map(&:content)
|
58
56
|
else
|
59
57
|
# dont have xsd fall back to dtd
|
60
58
|
@doc = Dir.chdir(XHTML_PATH) do
|
data/spec/core_spec.rb
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en"><head><link href="http://about.validator.nu/icon.png" rel="icon"><link href="http://about.validator.nu/style.css" rel="stylesheet"><title>Validation results for http://www.google.fr/</title></head><body><h1>Validation results for http://www.google.fr/</h1><form method="get"><fieldset><legend>Validator Input</legend><table><tbody><tr title="The document to validate."><th><label for="doc">Document</label></th><td><input type="url" name="doc" id="doc" pattern="(?:(?:https?://.+)|(?:data:.+))?" title="Absolute IRI (http, https or data only) of the document to be checked." value="http://www.google.fr/"></td></tr><tr title="Override for transfer protocol character encoding declaration."><th><label for="charset">Encoding</label></th><td><select id="charset" name="charset"><option value="">As set by the server/page</option><option value="UTF-8">UTF-8 (Global)</option><option value="UTF-16">UTF-16 (Global)</option><option value="Windows-1250">Windows-1250 (Central European)</option><option value="Windows-1251">Windows-1251 (Cyrillic)</option><option value="Windows-1252">Windows-1252 (Western)</option><option value="Windows-1253">Windows-1253 (Greek)</option><option value="Windows-1254">Windows-1254 (Turkish)</option><option value="Windows-1255">Windows-1255 (Hebrew)</option><option value="Windows-1256">Windows-1256 (Arabic)</option><option value="Windows-1257">Windows-1257 (Baltic)</option><option value="Windows-1258">Windows-1258 (Vietnamese)</option><option value="ISO-8859-1">ISO-8859-1 (Western)</option><option value="ISO-8859-2">ISO-8859-2 (Central European)</option><option value="ISO-8859-3">ISO-8859-3 (South European)</option><option value="ISO-8859-4">ISO-8859-4 (Baltic)</option><option value="ISO-8859-5">ISO-8859-5 (Cyrillic)</option><option value="ISO-8859-6">ISO-8859-6 (Arabic)</option><option value="ISO-8859-7">ISO-8859-7 (Greek)</option><option value="ISO-8859-8">ISO-8859-8 (Hebrew)</option><option value="ISO-8859-9">ISO-8859-9 (Turkish)</option><option value="ISO-8859-13">ISO-8859-13 (Baltic)</option><option value="ISO-8859-15">ISO-8859-15 (Western)</option><option value="KOI8-R">KOI8-R (Russian)</option><option value="TIS-620">TIS-620 (Thai)</option><option value="GBK">GBK (Chinese, simplified)</option><option value="GB18030">GB18030 (Chinese, simplified)</option><option value="Big5">Big5 (Chinese, traditional)</option><option value="Big5-HKSCS">Big5-HKSCS (Chinese, traditional)</option><option value="Shift_JIS">Shift_JIS (Japanese)</option><option value="ISO-2022-JP">ISO-2022-JP (Japanese)</option><option value="EUC-JP">EUC-JP (Japanese)</option><option value="ISO-2022-KR">ISO-2022-KR (Korean)</option><option value="EUC-KR">EUC-KR (Korean)</option></select></td></tr><tr title="Space-separated list of schema IRIs. (Leave blank to let the service guess.)"><th><label for="schema">Schemas</label></th><td><input name="schema" id="schema" pattern="(?:(?:(?:https?://\S+)|(?:data:\S+))(?:\s+(?:(?:https?://\S+)|(?:data:\S+)))*)?" title="Space-separated list of schema IRIs. (Leave blank to let the service guess.)" value=""></td></tr><tr title="Selecting a preset overrides the schema field above."><th><label for="preset">Preset</label></th><td><select id="preset" name="preset"><option value="">None</option><option value="http://s.validator.nu/html5/html5full.rnc http://s.validator.nu/html5/assertions.sch http://c.validator.nu/all/">HTML5 (experimental)</option><option value="http://s.validator.nu/html5/html5full-aria.rnc http://s.validator.nu/html5/assertions.sch http://c.validator.nu/all/">HTML5+ARIA (experimental)</option><option value="http://s.validator.nu/html5-aria-svg-mathml.rnc http://s.validator.nu/html5/assertions.sch http://c.validator.nu/all/">HTML5+ARIA, SVG 1.1 plus MathML 2.0 (experimental)</option><option value="http://s.validator.nu/xhtml10/xhtml-strict.rnc http://s.validator.nu/xhtml10/xhtml.sch http://c.validator.nu/all-html4/">HTML 4.01 Strict + IRI / XHTML 1.0 Strict + IRI</option><option value="http://s.validator.nu/xhtml10/xhtml-transitional.rnc http://s.validator.nu/xhtml10/xhtml.sch http://c.validator.nu/all-html4/">HTML 4.01 Transitional + IRI / XHTML 1.0 Transitional + IRI</option><option value="http://s.validator.nu/xhtml10/xhtml-frameset.rnc http://s.validator.nu/xhtml10/xhtml.sch http://c.validator.nu/all-html4/">HTML 4.01 Frameset + IRI / XHTML 1.0 Frameset + IRI</option><option value="http://s.validator.nu/html5/xhtml5full-xhtml.rnc http://s.validator.nu/html5/assertions.sch http://c.validator.nu/all/">XHTML5 (experimental)</option><option value="http://s.validator.nu/xhtml5-aria-rdf-svg-mathml.rnc http://s.validator.nu/html5/assertions.sch http://c.validator.nu/all/">XHTML5+ARIA, SVG 1.1 plus MathML 2.0 (experimental)</option><option value="http://s.validator.nu/xhtml1-rdf-svg-mathml.rnc http://s.validator.nu/xhtml10/xhtml.sch http://c.validator.nu/all-html4/">XHTML 1.0 Strict, SVG 1.1, MathML 2.0 + IRI</option><option value="http://s.validator.nu/xhtml1-ruby-rdf-svg-mathml.rnc http://s.validator.nu/xhtml10/xhtml.sch http://c.validator.nu/all-html4/">XHTML 1.0 Strict, Ruby, SVG 1.1, MathML 2.0 + IRI</option><option value="http://s.validator.nu/xhtml10/xhtml-basic.rnc http://s.validator.nu/xhtml10/xhtml.sch http://c.validator.nu/all-html4/">XHTML Basic + IRI</option><option value="http://s.validator.nu/svg-xhtml5-aria-rdf-mathml.rnc http://s.validator.nu/html5/assertions.sch http://c.validator.nu/all/">SVG 1.1+IRI, XHTML5+ARIA plus MathML 2.0 (experimental)</option></select></td></tr><tr title="The parser to use. Affects HTTP Accept header."><th><label for="parser">Parser</label></th><td><select id="parser" name="parser"><option value="" selected="selected">Automatically from Content-Type</option><option value="xml">XML; don’t load external entities</option><option value="xmldtd">XML; load external entities</option><option value="html">HTML; flavor from doctype</option><option value="html5">HTML5</option><option value="html4">HTML 4.01 Strict</option><option value="html4tr">HTML 4.01 Transitional</option></select></td></tr><tr title="Space-separated list of namespace URIs."><th><label for="nsfilter"><abbr title="XML namespace">XMLNS</abbr> Filter</label></th><td><input name="nsfilter" id="nsfilter" pattern="(?:.+:.+(?:\s+.+:.+)*)?" title="Space-separated namespace URIs for vocabularies to be filtered out."></td></tr><tr title="Disrespect MIME RFCs."><th></th><td><label for="laxtype"><input type="checkbox" name="laxtype" id="laxtype" value="yes"> Be lax about HTTP Content-Type</label></td></tr><tr title="Display a report about the textual alternatives for images."><th></th><td><label for="showimagereport"><input type="checkbox" name="showimagereport" id="showimagereport" value="yes"> Show Image Report</label></td></tr><tr title="Display the markup source of the input document."><th></th><td><label for="showsource"><input type="checkbox" name="showsource" id="showsource" value="yes"> Show Source</label></td></tr><tr><th></th><td><input value="Validate" type="submit" id="submit"></td></tr></tbody></table></fieldset></form><script src="http://about.validator.nu/script.js"></script><ol><li class="info"><p><strong>Info</strong>: <span>The Content-Type was <code>text/html</code>. Using the HTML parser.</span></p></li><li class="info warning"><p><strong>Warning</strong>: <span>Using <code>windows-1252</code> instead of the declared encoding <code>iso-8859-1</code>.</span></p><p class="location"><span class="url">http://www.google.fr/</span></p></li><li class="info"><p><strong>Info</strong>: <span>Using the schema for HTML5+ARIA, SVG 1.1 plus MathML 2.0 (experimental).</span></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">112</span></p><p class="extract"><code>ad="document.f&<b>&</b>document.f.q.f</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">148</span></p><p class="extract"><code>;document.gbqf&<b>&</b>document.gbqf.</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>bgcolor</code> attribute on the <code>body</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">17</span>; to line <span class="last-line">11</span>, column <span class="last-col">239</span></p><p class="extract"><code>pt></head><b><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="document.f&&docu<span class="snip">…</span>nt.gbqf&&document.gbqf.q.focus();if(document.images)new Image().src='/images/srpr/nav_logo80.png'" ></b><texta</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>text</code> attribute on the <code>body</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">17</span>; to line <span class="last-line">11</span>, column <span class="last-col">239</span></p><p class="extract"><code>pt></head><b><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="document.f&&docu<span class="snip">…</span>nt.gbqf&&document.gbqf.q.focus();if(document.images)new Image().src='/images/srpr/nav_logo80.png'" ></b><texta</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>link</code> attribute on the <code>body</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">17</span>; to line <span class="last-line">11</span>, column <span class="last-col">239</span></p><p class="extract"><code>pt></head><b><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="document.f&&docu<span class="snip">…</span>nt.gbqf&&document.gbqf.q.focus();if(document.images)new Image().src='/images/srpr/nav_logo80.png'" ></b><texta</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>vlink</code> attribute on the <code>body</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">17</span>; to line <span class="last-line">11</span>, column <span class="last-col">239</span></p><p class="extract"><code>pt></head><b><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="document.f&&docu<span class="snip">…</span>nt.gbqf&&document.gbqf.q.focus();if(document.images)new Image().src='/images/srpr/nav_logo80.png'" ></b><texta</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>alink</code> attribute on the <code>body</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">17</span>; to line <span class="last-line">11</span>, column <span class="last-col">239</span></p><p class="extract"><code>pt></head><b><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="document.f&&docu<span class="snip">…</span>nt.gbqf&&document.gbqf.q.focus();if(document.images)new Image().src='/images/srpr/nav_logo80.png'" ></b><texta</code></p></li><li class="error"><p><strong>Error</strong>: <span>Element <code>nobr</code> not allowed as child of element <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-div-element"><code>div</code></a> in this context. (Suppressing further errors from this subtree.)</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">313</span>; to line <span class="last-line">11</span>, column <span class="last-col">318</span></p><p class="extract"><code>v id=gbar><b><nobr></b><b cla</code></p><dl><dt>Content model for element <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-div-element"><code>div</code></a>:</dt>
|
3
|
+
<dd><a href="http://www.whatwg.org/specs/web-apps/current-work/#flow-content">Flow content</a>.</dd>
|
4
|
+
</dl></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">397</span></p><p class="extract"><code>.fr/imghp?hl=fr<b>&</b>tab=wi">Images</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">465</span></p><p class="extract"><code>oogle.fr/?hl=fr<b>&</b>tab=wv">Vidéos</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">536</span></p><p class="extract"><code>e.fr/maps?hl=fr<b>&</b>tab=wl">Maps</</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">606</span></p><p class="extract"><code>.fr/nwshp?hl=fr<b>&</b>tab=wn">Actual</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">684</span></p><p class="extract"><code>/shopping?hl=fr<b>&</b>tab=wf">Shoppi</code></p></li><li class="error"><p><strong>Error</strong>: <span>Attribute <code>width</code> not allowed on element <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-div-element"><code>div</code></a> at this point.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">896</span>; to line <span class="last-line">11</span>, column <span class="last-col">920</span></p><p class="extract"><code>obr></div><b><div id=guser width=100%></b><nobr></code></p><dl><dt>Attributes for element <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-div-element"><code>div</code></a>:</dt>
|
5
|
+
<dd><a href="http://www.whatwg.org/specs/web-apps/current-work/#global-attributes">Global attributes</a></dd>
|
6
|
+
</dl></li><li class="error"><p><strong>Error</strong>: <span>Element <code>nobr</code> not allowed as child of element <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-div-element"><code>div</code></a> in this context. (Suppressing further errors from this subtree.)</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">921</span>; to line <span class="last-line">11</span>, column <span class="last-col">926</span></p><p class="extract"><code>idth=100%><b><nobr></b><span </code></p><dl><dt>Content model for element <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-div-element"><code>div</code></a>:</dt>
|
7
|
+
<dd><a href="http://www.whatwg.org/specs/web-apps/current-work/#flow-content">Flow content</a>.</dd>
|
8
|
+
</dl></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">1019</span></p><p class="extract"><code>href="/url?sa=p<b>&</b>pref=</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">1027</span></p><p class="extract"><code>rl?sa=p&pref=ig<b>&</b>pval=3&q=http:</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">1034</span></p><p class="extract"><code>&pref=ig&pval=3<b>&</b>q=http://www.g</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">1086</span></p><p class="extract"><code>26source%3Diglk<b>&</b>usg=AFQjCNG3dQ</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">1363</span></p><p class="extract"><code>viceLogin?hl=fr<b>&</b>continue=http:</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>center</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1507</span>; to line <span class="last-line">11</span>, column <span class="last-col">1514</span></p><p class="extract"><code>div></div><b><center></b><br cl</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>clear</code> attribute on the <code>br</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1515</span>; to line <span class="last-line">11</span>, column <span class="last-col">1536</span></p><p class="extract"><code>v><center><b><br clear=all id=lgpd></b><div i</code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">1814</span></p><p class="extract"><code>ad="window.lol&<b>&</b>lol()"/></a><b</code></p></li><li class="info warning"><p><strong>Warning</strong>: <span>The <code>border</code> attribute is obsolete. Consider specifying <code>img { border: 0; }</code> in CSS instead.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1620</span>; to line <span class="last-line">11</span>, column <span class="last-col">1822</span></p><p class="extract"><code>;oi=ddle"><b><img alt="200ème anniversaire de Charles Dickens" title="200ème anniversaire de Charles Dickens" bor<span class="snip">…</span>=0 height=214 src="/logos/2012/dickens-2012-HP.jpg" width=500 id=hplogo onload="window.lol&&lol()"/></b></a><b</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>cellpadding</code> attribute on the <code>table</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1871</span>; to line <span class="last-line">11</span>, column <span class="last-col">1905</span></p><p class="extract"><code>h" name=f><b><table cellpadding=0 cellspacing=0></b><tr va</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>cellspacing</code> attribute on the <code>table</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1871</span>; to line <span class="last-line">11</span>, column <span class="last-col">1905</span></p><p class="extract"><code>h" name=f><b><table cellpadding=0 cellspacing=0></b><tr va</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>valign</code> attribute on the <code>tr</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1906</span>; to line <span class="last-line">11</span>, column <span class="last-col">1920</span></p><p class="extract"><code>spacing=0><b><tr valign=top></b><td wi</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>width</code> attribute on the <code>td</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1921</span>; to line <span class="last-line">11</span>, column <span class="last-col">1934</span></p><p class="extract"><code>align=top><b><td width=25%></b>&nbsp;</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>align</code> attribute on the <code>td</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1946</span>; to line <span class="last-line">11</span>, column <span class="last-col">1969</span></p><p class="extract"><code>nbsp;</td><b><td align=center nowrap></b><input</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>nowrap</code> attribute on the <code>td</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1946</span>; to line <span class="last-line">11</span>, column <span class="last-col">1969</span></p><p class="extract"><code>nbsp;</td><b><td align=center nowrap></b><input</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>nowrap</code> attribute on the <code>td</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">2658</span>; to line <span class="last-line">11</span>, column <span class="last-col">2705</span></p><p class="extract"><code>span></td><b><td nowrap width=25% align=left class="fl sblc"></b><a hre</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>width</code> attribute on the <code>td</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">2658</span>; to line <span class="last-line">11</span>, column <span class="last-col">2705</span></p><p class="extract"><code>span></td><b><td nowrap width=25% align=left class="fl sblc"></b><a hre</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>align</code> attribute on the <code>td</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">2658</span>; to line <span class="last-line">11</span>, column <span class="last-col">2705</span></p><p class="extract"><code>span></td><b><td nowrap width=25% align=left class="fl sblc"></b><a hre</code></p></li><li class="error"><p><strong>Error</strong>: <span>The <code>font</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">2952</span>; to line <span class="last-line">11</span>, column <span class="last-col">2967</span></p><p class="extract"><code>prm><span><b><font size="-1"></b><span </code></p></li><li class="error"><p><strong>Error</strong>: <span><code>&</code> did not start a character reference. (<code>&</code> probably should have been escaped as <code>&amp;</code>.)</span></p><p class="location">At line <span class="last-line">11</span>, column <span class="last-col">3104</span></p><p class="extract"><code>"google.promos&<b>&</b>google.promos.</code></p></li><li class="error"><p><strong>Error</strong>: <span>Element <code>center</code> not allowed as child of element <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-span-element"><code>span</code></a> in this context. (Suppressing further errors from this subtree.)</span></p><p class="location">From line <span class="first-line">15</span>, column <span class="first-col">126</span>; to line <span class="last-line">15</span>, column <span class="last-col">141</span></p><p class="extract"><code>id=footer><b><center id=fctr></b><div s</code></p><dl><dt>Content model for element <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-span-element"><code>span</code></a>:</dt>
|
9
|
+
<dd><a href="http://www.whatwg.org/specs/web-apps/current-work/#phrasing-content">Phrasing content</a>.</dd>
|
10
|
+
</dl></li><li class="error"><p><strong>Error</strong>: <span>The <code>center</code> element is obsolete. <a href="http://wiki.whatwg.org/wiki/Presentational_elements_and_attributes" title="About using CSS instead of presentational elements and attributes.">Use CSS instead</a>.</span></p><p class="location">From line <span class="first-line">15</span>, column <span class="first-col">126</span>; to line <span class="last-line">15</span>, column <span class="last-col">141</span></p><p class="extract"><code>id=footer><b><center id=fctr></b><div s</code></p></li><li class="error"><p><strong>Error</strong>: <span>End of file seen and there were open elements.</span></p><p class="location">From line <span class="first-line">21</span>, column <span class="first-col">1</span>; to line <span class="last-line">21</span>, column <span class="last-col">9</span></p><p class="extract"><code>));<span class="lf" title="Line break">↩</span>})();<span class="lf" title="Line break">↩</span><b></script></b></code></p></li><li class="error"><p><strong>Error</strong>: <span>Unclosed element <code>center</code>.</span></p><p class="location">From line <span class="first-line">11</span>, column <span class="first-col">1507</span>; to line <span class="last-line">11</span>, column <span class="last-col">1514</span></p><p class="extract"><code>div></div><b><center></b><br cl</code></p></li></ol><p class="failure">There were errors.</p><p class="stats">Total execution time 151 milliseconds.</p><hr><p><a href="http://about.validator.nu/">About this Service</a> • <a href="http://html5.validator.nu/">Simplified Interface</a></p></body></html>
|
data/spec/fakeweb_helper.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/validator_spec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
require File.expand_path('../spec_helper', __FILE__)
|
2
3
|
|
3
4
|
describe ValidateWebsite::Validator do
|
@@ -50,6 +51,24 @@ describe ValidateWebsite::Validator do
|
|
50
51
|
validator.valid?.must_equal true
|
51
52
|
end
|
52
53
|
end
|
54
|
+
describe('when not valid') do
|
55
|
+
before do
|
56
|
+
validator_res = File.join('spec', 'data', 'validator.nu-failure.html')
|
57
|
+
FakeWeb.register_uri(:any, 'http://validator.nu/',
|
58
|
+
:body => open(validator_res).read)
|
59
|
+
end
|
60
|
+
it 'should have an array of errors' do
|
61
|
+
name = 'html5'
|
62
|
+
file = File.join('spec', 'data', "#{name}-linuxfr.html")
|
63
|
+
page = FakePage.new(name,
|
64
|
+
:body => open(file).read,
|
65
|
+
:content_type => 'text/html')
|
66
|
+
@html5_page = @http.fetch_page(page.url)
|
67
|
+
validator = ValidateWebsite::Validator.new(@html5_page.doc, @html5_page.body)
|
68
|
+
validator.valid?.must_equal false
|
69
|
+
validator.errors.size.must_equal 38
|
70
|
+
end
|
71
|
+
end
|
53
72
|
end
|
54
73
|
|
55
74
|
describe('html4') do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validate-website
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-02-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: anemone
|
16
|
-
requirement: &
|
16
|
+
requirement: &14096080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.6.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14096080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rainbow
|
27
|
-
requirement: &
|
27
|
+
requirement: &14094820 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.1.1
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14094820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: multipart_body
|
38
|
-
requirement: &
|
38
|
+
requirement: &14094060 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.2.1
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14094060
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &14093340 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.8.7
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *14093340
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest
|
60
|
-
requirement: &
|
60
|
+
requirement: &14092520 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 2.1.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *14092520
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: fakeweb
|
71
|
-
requirement: &
|
71
|
+
requirement: &14091820 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: 1.3.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *14091820
|
80
80
|
description: validate-website is a web crawler for checking the markup validity with
|
81
81
|
XML Schema / DTD and not found urls.
|
82
82
|
email: laurent@spkdev.net
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- Rakefile
|
91
91
|
- LICENSE
|
92
92
|
- lib/validate_website/validator.rb
|
93
|
+
- lib/validate_website/rspec.rb
|
93
94
|
- lib/validate_website/colorful_messages.rb
|
94
95
|
- lib/validate_website/core.rb
|
95
96
|
- lib/validate_website/option_parser.rb
|
@@ -101,6 +102,7 @@ files:
|
|
101
102
|
- spec/data/html5.html
|
102
103
|
- spec/data/html4-strict.html
|
103
104
|
- spec/data/validator.nu-success.html
|
105
|
+
- spec/data/validator.nu-failure.html
|
104
106
|
- spec/data/html5-linuxfr.html
|
105
107
|
- spec/data/xhtml1-strict.html
|
106
108
|
- spec/example/ruby smalltalk/blockcamp-paris-le-28-novembre.html
|