w3c_validators 1.2 → 1.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.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/.travis.yml +7 -0
- data/CHANGELOG +14 -2
- data/Gemfile +3 -0
- data/Gemfile.lock +43 -0
- data/{README.rdoc → README.md} +41 -29
- data/Rakefile +64 -0
- data/lib/w3c_validators.rb +2 -1
- data/lib/w3c_validators/css_validator.rb +23 -16
- data/lib/w3c_validators/feed_validator.rb +4 -4
- data/lib/w3c_validators/markup_validator.rb +29 -29
- data/lib/w3c_validators/message.rb +6 -2
- data/lib/w3c_validators/nu_validator.rb +2 -2
- data/lib/w3c_validators/validator.rb +48 -43
- data/lib/w3c_validators/version.rb +3 -0
- data/test/fixtures/bootstrap.min.css +6 -0
- data/test/fixtures/invalid_css.css +2 -0
- data/test/fixtures/invalid_encoding.html +10 -0
- data/test/fixtures/invalid_feed.xml +19 -0
- data/test/fixtures/invalid_html5.html +16 -0
- data/test/fixtures/invalid_markup.html +11 -0
- data/test/fixtures/valid_css.css +2 -0
- data/test/fixtures/valid_feed.xml +20 -0
- data/test/fixtures/valid_html5.html +16 -0
- data/test/fixtures/valid_markup.html +11 -0
- data/test/http_recording/css_context.yml +72 -0
- data/test/http_recording/css_overriding_css_profile.yml +66 -0
- data/test/http_recording/css_skippedstring.yml +72 -0
- data/test/http_recording/css_validating_big_file.yml +1423 -0
- data/test/http_recording/css_validating_file.yml +72 -0
- data/test/http_recording/css_validating_text.yml +66 -0
- data/test/http_recording/css_validating_text_via_file.yml +72 -0
- data/test/http_recording/css_validating_uri.yml +65 -0
- data/test/http_recording/css_vendor_extensions_as_errors.yml +65 -0
- data/test/http_recording/css_vendor_extensions_as_warnings.yml +62 -0
- data/test/http_recording/css_vendor_extensions_default.yml +62 -0
- data/test/http_recording/feed_validating_file.yml +49 -0
- data/test/http_recording/feed_validating_text.yml +46 -0
- data/test/http_recording/feed_validating_text_via_file.yml +49 -0
- data/test/http_recording/feed_validating_uri_with_soap.yml +50 -0
- data/test/http_recording/html5_getting_request_data.yml +51 -0
- data/test/http_recording/html5_validating_uri.yml +74 -0
- data/test/http_recording/markup_debugging_uri.yml +83 -0
- data/test/http_recording/markup_overriding_charset.yml +125 -0
- data/test/http_recording/markup_overriding_charset_for_fallback_only.yml +76 -0
- data/test/http_recording/markup_overriding_doctype.yml +208 -0
- data/test/http_recording/markup_overriding_doctype_for_fallback_only.yml +84 -0
- data/test/http_recording/markup_validating_file.yml +93 -0
- data/test/http_recording/markup_validating_text.yml +67 -0
- data/test/http_recording/markup_validating_text_via_file.yml +93 -0
- data/test/http_recording/markup_validating_uri_with_head_request.yml +38 -0
- data/test/http_recording/markup_validating_uri_with_soap.yml +76 -0
- data/test/http_recording/markup_validator_abort.yml +50 -0
- data/test/http_recording/markup_validator_contains_details_of_error_conditions.yml +76 -0
- data/test/test_css_validator.rb +78 -17
- data/test/test_exceptions.rb +11 -8
- data/test/test_feed_validator.rb +42 -39
- data/test/test_helper.rb +7 -2
- data/test/test_html5_validator.rb +42 -34
- data/test/test_markup_validator.rb +75 -52
- data/test/test_proxy.rb +5 -2
- data/w3c_validators.gemspec +24 -0
- metadata +154 -68
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://validator.w3.org/check
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: "--349832898984244898448024464570528145\r\nContent-Disposition: form-data;
|
9
|
+
name=\"fragment\"\r\n\r\n <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML
|
10
|
+
4.01 Transitional//EN\">\n <title>Test</title>\n <body>\n <div
|
11
|
+
class=\"example\">This is a test</div>\n </body>\n\r\n--349832898984244898448024464570528145\r\nContent-Disposition:
|
12
|
+
form-data; name=\"output\"\r\n\r\nsoap12\r\n--349832898984244898448024464570528145--\r\n"
|
13
|
+
headers:
|
14
|
+
Content-Type:
|
15
|
+
- multipart/form-data; boundary=349832898984244898448024464570528145
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
Accept:
|
19
|
+
- "*/*"
|
20
|
+
User-Agent:
|
21
|
+
- Ruby
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Date:
|
28
|
+
- Sun, 30 Oct 2016 16:47:17 GMT
|
29
|
+
Server:
|
30
|
+
- Apache/2.4.10 (Debian)
|
31
|
+
X-W3c-Validator-Recursion:
|
32
|
+
- '1'
|
33
|
+
X-W3c-Validator-Status:
|
34
|
+
- Valid
|
35
|
+
X-W3c-Validator-Errors:
|
36
|
+
- '0'
|
37
|
+
X-W3c-Validator-Warnings:
|
38
|
+
- '2'
|
39
|
+
Transfer-Encoding:
|
40
|
+
- chunked
|
41
|
+
Content-Type:
|
42
|
+
- application/soap+xml; charset=UTF-8
|
43
|
+
Strict-Transport-Security:
|
44
|
+
- max-age=15552015; preload
|
45
|
+
Public-Key-Pins:
|
46
|
+
- pin-sha256="cN0QSpPIkuwpT6iP2YjEo1bEwGpH/yiUn6yhdy+HNto="; pin-sha256="WGJkyYjx1QMdMe0UqlyOKXtydPDVrk7sl2fV+nNm1r4=";
|
47
|
+
pin-sha256="LrKdTxZLRTvyHM4/atX2nquX9BeHRZMCxg3cf4rhc2I="; max-age=864000
|
48
|
+
X-Frame-Options:
|
49
|
+
- deny
|
50
|
+
X-Xss-Protection:
|
51
|
+
- 1; mode=block
|
52
|
+
body:
|
53
|
+
encoding: UTF-8
|
54
|
+
string: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n<env:Body>\n<m:markupvalidationresponse
|
55
|
+
env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\" xmlns:m=\"http://www.w3.org/2005/10/markup-validator\">\n
|
56
|
+
\ \n <m:uri>upload://Form Submission</m:uri>\n <m:checkedby>http://validator.w3.org/</m:checkedby>\n
|
57
|
+
\ <m:doctype>-//W3C//DTD HTML 4.01 Transitional//EN</m:doctype>\n <m:charset>utf-8</m:charset>\n
|
58
|
+
\ <m:validity>true</m:validity>\n <m:warnings>\n <m:warningcount>2</m:warningcount>\n
|
59
|
+
\ <m:warninglist>\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
|
60
|
+
\ <m:warning><m:messageid>W27</m:messageid><m:message>No Character encoding
|
61
|
+
declared at document level</m:message></m:warning>\n\n\n <m:warning><m:messageid>W28</m:messageid><m:message>Using
|
62
|
+
Direct Input mode: UTF-8 character encoding assumed</m:message></m:warning>\n\n\n\n\n\n\n
|
63
|
+
\ </m:warninglist>\n </m:warnings>\n <m:errors>\n <m:errorcount>0</m:errorcount>\n
|
64
|
+
\ <m:errorlist>\n\n </m:errorlist>\n </m:errors>\n</m:markupvalidationresponse>\n</env:Body>\n</env:Envelope>\n"
|
65
|
+
http_version:
|
66
|
+
recorded_at: Sun, 30 Oct 2016 16:47:17 GMT
|
67
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,93 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://validator.w3.org/check
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: "--349832898984244898448024464570528145\r\nContent-Disposition: form-data;
|
9
|
+
name=\"output\"\r\n\r\nsoap12\r\n--349832898984244898448024464570528145\r\nContent-Disposition:
|
10
|
+
form-data; name=\"uploaded_file\"; filename=\"#<File:0x00000003d72f00>\"\r\nContent-Type:
|
11
|
+
text/html\r\n\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
|
12
|
+
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\"
|
13
|
+
xml:lang=\"en-ca\" lang=\"en-ca\">\n<head>\n\t<meta http-equiv=\"Content-type\"
|
14
|
+
content=\"text/html; charset=utf-8\" />\n\t<title>W3C Validators -- Invalid
|
15
|
+
Test Page </title>\n</head>\n<body>\n<p unknown=\"true\">Invalid!</p>\n<!--
|
16
|
+
1 error; 0 warnings -->\n</body>\n</html>\n\r\n--349832898984244898448024464570528145--\r\n"
|
17
|
+
headers:
|
18
|
+
Content-Type:
|
19
|
+
- multipart/form-data; boundary=349832898984244898448024464570528145
|
20
|
+
Accept-Encoding:
|
21
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
22
|
+
Accept:
|
23
|
+
- "*/*"
|
24
|
+
User-Agent:
|
25
|
+
- Ruby
|
26
|
+
response:
|
27
|
+
status:
|
28
|
+
code: 200
|
29
|
+
message: OK
|
30
|
+
headers:
|
31
|
+
Date:
|
32
|
+
- Sun, 30 Oct 2016 16:51:16 GMT
|
33
|
+
Server:
|
34
|
+
- Apache/2.4.10 (Debian)
|
35
|
+
X-W3c-Validator-Recursion:
|
36
|
+
- '1'
|
37
|
+
X-W3c-Validator-Status:
|
38
|
+
- Invalid
|
39
|
+
X-W3c-Validator-Errors:
|
40
|
+
- '1'
|
41
|
+
X-W3c-Validator-Warnings:
|
42
|
+
- '0'
|
43
|
+
Transfer-Encoding:
|
44
|
+
- chunked
|
45
|
+
Content-Type:
|
46
|
+
- application/soap+xml; charset=UTF-8
|
47
|
+
Strict-Transport-Security:
|
48
|
+
- max-age=15552015; preload
|
49
|
+
Public-Key-Pins:
|
50
|
+
- pin-sha256="cN0QSpPIkuwpT6iP2YjEo1bEwGpH/yiUn6yhdy+HNto="; pin-sha256="WGJkyYjx1QMdMe0UqlyOKXtydPDVrk7sl2fV+nNm1r4=";
|
51
|
+
pin-sha256="LrKdTxZLRTvyHM4/atX2nquX9BeHRZMCxg3cf4rhc2I="; max-age=864000
|
52
|
+
X-Frame-Options:
|
53
|
+
- deny
|
54
|
+
X-Xss-Protection:
|
55
|
+
- 1; mode=block
|
56
|
+
body:
|
57
|
+
encoding: UTF-8
|
58
|
+
string: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n<env:Body>\n<m:markupvalidationresponse
|
59
|
+
env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\" xmlns:m=\"http://www.w3.org/2005/10/markup-validator\">\n
|
60
|
+
\ \n <m:uri>#<File:0x00000003d72f00></m:uri>\n <m:checkedby>http://validator.w3.org/</m:checkedby>\n
|
61
|
+
\ <m:doctype>-//W3C//DTD XHTML 1.0 Transitional//EN</m:doctype>\n <m:charset>utf-8</m:charset>\n
|
62
|
+
\ <m:validity>false</m:validity>\n <m:warnings>\n <m:warningcount>0</m:warningcount>\n
|
63
|
+
\ <m:warninglist>\n \n </m:warninglist>\n </m:warnings>\n
|
64
|
+
\ <m:errors>\n <m:errorcount>1</m:errorcount>\n <m:errorlist>\n\n
|
65
|
+
\ <m:error>\n <m:line>8</m:line>\n <m:col>12</m:col>\n
|
66
|
+
\ <m:message>there is no attribute "unknown"</m:message>\n
|
67
|
+
\ <m:messageid>108</m:messageid>\n <m:explanation>
|
68
|
+
\ <![CDATA[\n <p class=\"helpwanted\">\n <a\n href=\"feedback.html?uri=;errmsg_id=108#errormsg\"\n\ttitle=\"Suggest
|
69
|
+
improvements on this error message through our feedback channels\" \n >✉</a>\n
|
70
|
+
\ </p>\n\n <div class=\"ve mid-108\">\n <p>\n You have used the
|
71
|
+
attribute named above in your document, but the\n document type you are
|
72
|
+
using does not support that attribute for this\n element. This error
|
73
|
+
is often caused by incorrect use of the \"Strict\"\n document type with
|
74
|
+
a document that uses frames (e.g. you must use\n the \"Transitional\"
|
75
|
+
document type to get the \"target\" attribute), or\n by using vendor
|
76
|
+
proprietary extensions such as \"marginheight\" (this\n is usually fixed
|
77
|
+
by using CSS to achieve the desired effect instead).\n </p>\n <p>\n
|
78
|
+
\ This error may also result if the element itself is not supported in\n
|
79
|
+
\ the document type you are using, as an undefined element will have no\n
|
80
|
+
\ supported attributes; in this case, see the element-undefined error\n
|
81
|
+
\ message for further information.\n </p>\n <p>\n How to fix:
|
82
|
+
check the spelling and case of the element and attribute, \n (Remember
|
83
|
+
XHTML is all lower-case) and/or \n check that they are both allowed in
|
84
|
+
the chosen document type, and/or\n use CSS instead of this attribute.
|
85
|
+
If you received this error when using the \n <embed> element to
|
86
|
+
incorporate flash media in a Web page, see the \n <a href=\"docs/help.html#faq-flash\">FAQ
|
87
|
+
item on valid flash</a>.\n </p>\n </div>\n\n ]]>\n </m:explanation>\n
|
88
|
+
\ <m:source><![CDATA[<p unknown=<strong title=\"Position
|
89
|
+
where error was detected.\">"</strong>true">Invalid!</p>]]></m:source>\n
|
90
|
+
\ </m:error>\n \n </m:errorlist>\n </m:errors>\n</m:markupvalidationresponse>\n</env:Body>\n</env:Envelope>\n"
|
91
|
+
http_version:
|
92
|
+
recorded_at: Sun, 30 Oct 2016 16:51:17 GMT
|
93
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: head
|
5
|
+
uri: https://validator.w3.org/check?output=soap12&uri=https://doc75.github.io/w3c_validators_tests/invalid_markup_4.html
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*"
|
12
|
+
User-Agent:
|
13
|
+
- Ruby
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Date:
|
20
|
+
- Sun, 30 Oct 2016 17:10:37 GMT
|
21
|
+
Server:
|
22
|
+
- Apache
|
23
|
+
X-W3c-Validator-Recursion:
|
24
|
+
- '1'
|
25
|
+
X-W3c-Validator-Status:
|
26
|
+
- Invalid
|
27
|
+
X-W3c-Validator-Errors:
|
28
|
+
- '1'
|
29
|
+
X-W3c-Validator-Warnings:
|
30
|
+
- '0'
|
31
|
+
Content-Type:
|
32
|
+
- application/soap+xml; charset=UTF-8
|
33
|
+
body:
|
34
|
+
encoding: UTF-8
|
35
|
+
string: ''
|
36
|
+
http_version:
|
37
|
+
recorded_at: Sun, 30 Oct 2016 17:10:38 GMT
|
38
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,76 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://validator.w3.org/check?output=soap12&uri=https://doc75.github.io/w3c_validators_tests/invalid_markup_5.html
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sun, 30 Oct 2016 17:10:39 GMT
|
23
|
+
Server:
|
24
|
+
- Apache
|
25
|
+
X-W3c-Validator-Recursion:
|
26
|
+
- '1'
|
27
|
+
X-W3c-Validator-Status:
|
28
|
+
- Invalid
|
29
|
+
X-W3c-Validator-Errors:
|
30
|
+
- '1'
|
31
|
+
X-W3c-Validator-Warnings:
|
32
|
+
- '0'
|
33
|
+
Transfer-Encoding:
|
34
|
+
- chunked
|
35
|
+
Content-Type:
|
36
|
+
- application/soap+xml; charset=UTF-8
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n<env:Body>\n<m:markupvalidationresponse
|
40
|
+
env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\" xmlns:m=\"http://www.w3.org/2005/10/markup-validator\">\n
|
41
|
+
\ \n <m:uri>https://doc75.github.io/w3c_validators_tests/invalid_markup_5.html</m:uri>\n
|
42
|
+
\ <m:checkedby>https://validator.w3.org/</m:checkedby>\n
|
43
|
+
\ <m:doctype>-//W3C//DTD XHTML 1.0 Transitional//EN</m:doctype>\n <m:charset>utf-8</m:charset>\n
|
44
|
+
\ <m:validity>false</m:validity>\n <m:errors>\n <m:errorcount>1</m:errorcount>\n
|
45
|
+
\ <m:errorlist>\n \n <m:error>\n <m:line>8</m:line>\n
|
46
|
+
\ <m:col>13</m:col>\n <m:message>there is no
|
47
|
+
attribute "unknown5"</m:message>\n <m:messageid>108</m:messageid>\n
|
48
|
+
\ <m:explanation> <![CDATA[\n <p class=\"helpwanted\">\n
|
49
|
+
\ <a\n href=\"feedback.html?uri=https%3A%2F%2Fdoc75.github.io%2Fw3c_validators_tests%2Finvalid_markup_5.html;errmsg_id=108#errormsg\"\n\ttitle=\"Suggest
|
50
|
+
improvements on this error message through our feedback channels\" \n >✉</a>\n
|
51
|
+
\ </p>\n\n <div class=\"ve mid-108\">\n <p>\n You have used the
|
52
|
+
attribute named above in your document, but the\n document type you are
|
53
|
+
using does not support that attribute for this\n element. This error
|
54
|
+
is often caused by incorrect use of the \"Strict\"\n document type with
|
55
|
+
a document that uses frames (e.g. you must use\n the \"Transitional\"
|
56
|
+
document type to get the \"target\" attribute), or\n by using vendor
|
57
|
+
proprietary extensions such as \"marginheight\" (this\n is usually fixed
|
58
|
+
by using CSS to achieve the desired effect instead).\n </p>\n <p>\n
|
59
|
+
\ This error may also result if the element itself is not supported in\n
|
60
|
+
\ the document type you are using, as an undefined element will have no\n
|
61
|
+
\ supported attributes; in this case, see the element-undefined error\n
|
62
|
+
\ message for further information.\n </p>\n <p>\n How to fix:
|
63
|
+
check the spelling and case of the element and attribute, \n (Remember
|
64
|
+
XHTML is all lower-case) and/or \n check that they are both allowed in
|
65
|
+
the chosen document type, and/or\n use CSS instead of this attribute.
|
66
|
+
If you received this error when using the \n <embed> element to
|
67
|
+
incorporate flash media in a Web page, see the \n <a href=\"docs/help.html#faq-flash\">FAQ
|
68
|
+
item on valid flash</a>.\n </p>\n </div>\n\n ]]>\n </m:explanation>\n
|
69
|
+
\ <m:source><![CDATA[<p unknown5=<strong title=\"Position
|
70
|
+
where error was detected.\">"</strong>true">Invalid!</p>]]></m:source>\n
|
71
|
+
\ </m:error>\n \n </m:errorlist>\n </m:errors>\n
|
72
|
+
\ <m:warnings>\n <m:warningcount>0</m:warningcount>\n <m:warninglist>\n
|
73
|
+
\ \n \n </m:warninglist>\n </m:warnings>\n</m:markupvalidationresponse>\n</env:Body>\n</env:Envelope>\n"
|
74
|
+
http_version:
|
75
|
+
recorded_at: Sun, 30 Oct 2016 17:10:40 GMT
|
76
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,50 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://validator.w3.org/check?debug=1&output=soap12&uri=https://doc75.github.io/w3c_validators_tests/invalid_encoding.html
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sun, 30 Oct 2016 17:10:41 GMT
|
23
|
+
Server:
|
24
|
+
- Apache
|
25
|
+
X-W3c-Validator-Recursion:
|
26
|
+
- '1'
|
27
|
+
X-W3c-Validator-Status:
|
28
|
+
- Abort
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Content-Type:
|
32
|
+
- application/soap+xml; charset=UTF-8
|
33
|
+
body:
|
34
|
+
encoding: UTF-8
|
35
|
+
string: "<?xml version='1.0' encoding=\"utf-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\"\n
|
36
|
+
\ xmlns:m='http://www.w3.org/2005/10/markup-validator'>\n <env:Body>\n
|
37
|
+
\ <env:Fault>\n <env:Code>\n <env:Value>env:Sender</env:Value>\n
|
38
|
+
\ <env:Subcode>\n <env:Value>m:Exception</env:Value>\n </env:Subcode>\n
|
39
|
+
\ </env:Code>\n\n\n\n\n\n\n <env:Reason>\n\t<env:Text xml:lang=\"en-US\">Incorrect
|
40
|
+
Bytes detected</env:Text>\n </env:Reason>\n <env:Detail>\n <m:messageid>fatal_byte_error</m:messageid>\n
|
41
|
+
\ <m:errordetail xml:lang=\"en-US\">\n Sorry, I am unable to validate
|
42
|
+
this document because on line\n 8.\n it contained one or more
|
43
|
+
bytes that I cannot interpret as\n utf-8\n (in other words,
|
44
|
+
the bytes found are not valid values in the specified\n Character Encoding).
|
45
|
+
Please check both the content of the file and the\n character encoding
|
46
|
+
indication.\n\t</m:errordetail>\n </env:Detail>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
|
47
|
+
\ </env:Fault>\n </env:Body>\n</env:Envelope>\n"
|
48
|
+
http_version:
|
49
|
+
recorded_at: Sun, 30 Oct 2016 17:10:42 GMT
|
50
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,76 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://validator.w3.org/check?output=soap12&uri=https://doc75.github.io/w3c_validators_tests/invalid_markup_7.html
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sun, 30 Oct 2016 17:10:43 GMT
|
23
|
+
Server:
|
24
|
+
- Apache
|
25
|
+
X-W3c-Validator-Recursion:
|
26
|
+
- '1'
|
27
|
+
X-W3c-Validator-Status:
|
28
|
+
- Invalid
|
29
|
+
X-W3c-Validator-Errors:
|
30
|
+
- '1'
|
31
|
+
X-W3c-Validator-Warnings:
|
32
|
+
- '0'
|
33
|
+
Transfer-Encoding:
|
34
|
+
- chunked
|
35
|
+
Content-Type:
|
36
|
+
- application/soap+xml; charset=UTF-8
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n<env:Body>\n<m:markupvalidationresponse
|
40
|
+
env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\" xmlns:m=\"http://www.w3.org/2005/10/markup-validator\">\n
|
41
|
+
\ \n <m:uri>https://doc75.github.io/w3c_validators_tests/invalid_markup_7.html</m:uri>\n
|
42
|
+
\ <m:checkedby>https://validator.w3.org/</m:checkedby>\n
|
43
|
+
\ <m:doctype>-//W3C//DTD XHTML 1.0 Transitional//EN</m:doctype>\n <m:charset>utf-8</m:charset>\n
|
44
|
+
\ <m:validity>false</m:validity>\n <m:errors>\n <m:errorcount>1</m:errorcount>\n
|
45
|
+
\ <m:errorlist>\n \n <m:error>\n <m:line>8</m:line>\n
|
46
|
+
\ <m:col>13</m:col>\n <m:message>there is no
|
47
|
+
attribute "unknown7"</m:message>\n <m:messageid>108</m:messageid>\n
|
48
|
+
\ <m:explanation> <![CDATA[\n <p class=\"helpwanted\">\n
|
49
|
+
\ <a\n href=\"feedback.html?uri=https%3A%2F%2Fdoc75.github.io%2Fw3c_validators_tests%2Finvalid_markup_7.html;errmsg_id=108#errormsg\"\n\ttitle=\"Suggest
|
50
|
+
improvements on this error message through our feedback channels\" \n >✉</a>\n
|
51
|
+
\ </p>\n\n <div class=\"ve mid-108\">\n <p>\n You have used the
|
52
|
+
attribute named above in your document, but the\n document type you are
|
53
|
+
using does not support that attribute for this\n element. This error
|
54
|
+
is often caused by incorrect use of the \"Strict\"\n document type with
|
55
|
+
a document that uses frames (e.g. you must use\n the \"Transitional\"
|
56
|
+
document type to get the \"target\" attribute), or\n by using vendor
|
57
|
+
proprietary extensions such as \"marginheight\" (this\n is usually fixed
|
58
|
+
by using CSS to achieve the desired effect instead).\n </p>\n <p>\n
|
59
|
+
\ This error may also result if the element itself is not supported in\n
|
60
|
+
\ the document type you are using, as an undefined element will have no\n
|
61
|
+
\ supported attributes; in this case, see the element-undefined error\n
|
62
|
+
\ message for further information.\n </p>\n <p>\n How to fix:
|
63
|
+
check the spelling and case of the element and attribute, \n (Remember
|
64
|
+
XHTML is all lower-case) and/or \n check that they are both allowed in
|
65
|
+
the chosen document type, and/or\n use CSS instead of this attribute.
|
66
|
+
If you received this error when using the \n <embed> element to
|
67
|
+
incorporate flash media in a Web page, see the \n <a href=\"docs/help.html#faq-flash\">FAQ
|
68
|
+
item on valid flash</a>.\n </p>\n </div>\n\n ]]>\n </m:explanation>\n
|
69
|
+
\ <m:source><![CDATA[<p unknown7=<strong title=\"Position
|
70
|
+
where error was detected.\">"</strong>true">Invalid!</p>]]></m:source>\n
|
71
|
+
\ </m:error>\n \n </m:errorlist>\n </m:errors>\n
|
72
|
+
\ <m:warnings>\n <m:warningcount>0</m:warningcount>\n <m:warninglist>\n
|
73
|
+
\ \n \n </m:warninglist>\n </m:warnings>\n</m:markupvalidationresponse>\n</env:Body>\n</env:Envelope>\n"
|
74
|
+
http_version:
|
75
|
+
recorded_at: Sun, 30 Oct 2016 17:10:44 GMT
|
76
|
+
recorded_with: VCR 3.0.3
|
data/test/test_css_validator.rb
CHANGED
@@ -16,36 +16,97 @@ class CSSValidatorTests < Test::Unit::TestCase
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_overriding_css_profile
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
VCR.use_cassette('css_overriding_css_profile') do
|
20
|
+
@v.set_profile!(:css21)
|
21
|
+
r = @v.validate_text(@invalid_fragment)
|
22
|
+
assert_equal 'css21', r.css_level
|
23
|
+
end
|
22
24
|
end
|
23
25
|
|
24
26
|
def test_validating_file
|
25
|
-
|
26
|
-
|
27
|
-
|
27
|
+
VCR.use_cassette('css_validating_file') do
|
28
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/invalid_css.css')
|
29
|
+
r = @v.validate_file(file_path)
|
30
|
+
assert_errors r, 1
|
31
|
+
end
|
28
32
|
end
|
29
33
|
|
30
34
|
def test_validating_uri
|
31
|
-
|
32
|
-
|
33
|
-
|
35
|
+
VCR.use_cassette('css_validating_uri') do
|
36
|
+
@v.set_profile!(:svgbasic)
|
37
|
+
r = @v.validate_text(@invalid_fragment)
|
38
|
+
assert_errors r, 1
|
39
|
+
end
|
34
40
|
end
|
35
|
-
|
41
|
+
|
36
42
|
def test_validating_text
|
37
|
-
|
38
|
-
|
43
|
+
VCR.use_cassette('css_validating_text') do
|
44
|
+
r = @v.validate_text(@invalid_fragment)
|
45
|
+
assert_errors r, 1
|
46
|
+
end
|
39
47
|
end
|
40
48
|
|
41
49
|
def test_validating_text_via_file
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
50
|
+
VCR.use_cassette('css_validating_text_via_file') do
|
51
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/invalid_css.css')
|
52
|
+
fh = File.new(file_path, 'r+')
|
53
|
+
r = @v.validate_file(fh)
|
54
|
+
fh.close
|
55
|
+
assert_errors r, 1
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_validating_big_file
|
60
|
+
VCR.use_cassette('css_validating_big_file') do
|
61
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/bootstrap.min.css')
|
62
|
+
fh = File.new(file_path, 'r+')
|
63
|
+
r = @v.validate_file(fh)
|
64
|
+
fh.close
|
65
|
+
assert_errors r
|
66
|
+
end
|
47
67
|
end
|
48
68
|
|
69
|
+
def test_context
|
70
|
+
VCR.use_cassette('css_context') do
|
71
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/invalid_css.css')
|
72
|
+
results = @v.validate_file(file_path)
|
73
|
+
assert results.errors.first.context == "body"
|
74
|
+
end
|
75
|
+
end
|
49
76
|
|
77
|
+
def test_skippedstring
|
78
|
+
VCR.use_cassette('css_skippedstring') do
|
79
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/invalid_css.css')
|
80
|
+
results = @v.validate_file(file_path)
|
81
|
+
assert results.errors.first.skippedstring == "blue"
|
82
|
+
end
|
83
|
+
end
|
50
84
|
|
85
|
+
def test_vendor_extensions_default
|
86
|
+
VCR.use_cassette('css_vendor_extensions_default') do
|
87
|
+
@v.set_vendor_extension_warning!
|
88
|
+
r = @v.validate_text("p { -moz-border-radius: 5px; }")
|
89
|
+
assert_errors r, 0
|
90
|
+
assert_warnings r, 1
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_vendor_extensions_as_errors
|
95
|
+
VCR.use_cassette('css_vendor_extensions_as_errors') do
|
96
|
+
@v.set_vendor_extension_warning!('Errors')
|
97
|
+
r = @v.validate_text('some-class { -moz-border-radius: 3px; }')
|
98
|
+
assert_errors r, 1
|
99
|
+
assert_no_warnings r
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_vendor_extensions_as_warnings
|
104
|
+
VCR.use_cassette('css_vendor_extensions_as_warnings') do
|
105
|
+
@v.set_vendor_extension_warning!('Warnings')
|
106
|
+
r = @v.validate_text('some-class { -moz-border-radius: 3px; }')
|
107
|
+
assert_no_errors r
|
108
|
+
assert_warnings r, 1
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
51
112
|
end
|