w3c_validators 1.3.1 → 1.3.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.gitignore +1 -1
- data/.travis.yml +6 -4
- data/CHANGELOG +22 -0
- data/README.md +30 -0
- data/lib/w3c_validators/css_validator.rb +1 -1
- data/lib/w3c_validators/markup_validator.rb +4 -3
- data/lib/w3c_validators/nu_validator.rb +4 -6
- data/lib/w3c_validators/validator.rb +9 -3
- data/lib/w3c_validators/version.rb +1 -1
- data/test/http_recording/css_context.yml +24 -7
- data/test/http_recording/css_overriding_css_profile.yml +27 -10
- data/test/http_recording/css_skippedstring.yml +24 -7
- data/test/http_recording/css_validating_big_file.yml +398 -519
- data/test/http_recording/css_validating_file.yml +24 -7
- data/test/http_recording/css_validating_text.yml +27 -10
- data/test/http_recording/css_validating_text_via_file.yml +24 -7
- data/test/http_recording/css_validating_uri.yml +31 -13
- data/test/http_recording/css_vendor_extensions_as_errors.yml +22 -5
- data/test/http_recording/css_vendor_extensions_as_warnings.yml +23 -6
- data/test/http_recording/css_vendor_extensions_default.yml +23 -6
- data/test/http_recording/html5_getting_request_data.yml +25 -14
- data/test/http_recording/html5_validating_file.yml +18 -34
- data/test/http_recording/html5_validating_text.yml +18 -34
- data/test/http_recording/html5_validating_text_via_file.yml +18 -34
- data/test/http_recording/html5_validating_uri.yml +18 -36
- data/test/test_exceptions.rb +1 -1
- data/w3c_validators.gemspec +3 -2
- metadata +35 -22
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YTQwZjFlNWI4MWViYzhlZmQwYmY5ZmUxODJhMTU0YjJlZmUyN2I0NA==
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 93c24630d8eff576b83949a26d71d048d5a126bc17829576c3fbe00f7715239f
|
4
|
+
data.tar.gz: 25513e9917618bdc76488ffe559a5366c2ebe87f465d53babedcac4467fe4d81
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
YTFjMDI5NWZjZGU3ZTUyOTc3NDcwZTFlNWI1OWRkNjZlOTE3OTFlY2Y4OTY0
|
11
|
-
OWJhOTVhZWU5NWMwY2VlNGI2OTM5NmQyYTA1MjZjNGU3ZGVlYjU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OTE1OGJhNzhhYWYwYTNjOGEyYThkMmZhZTU1Nzg5ODFlNWYzNGNhZGJhMWNk
|
14
|
-
Nzk5MDRlYzRhYWE4NWE5Zjk3N2U1Njg0MDY0MGE5MDJlZjY2OGI1NzdmZmY1
|
15
|
-
ZjhmYWI2NmViMzViYjBiNGU0ZjliNmVmOGQwY2Y4MGExMGZkNzI=
|
6
|
+
metadata.gz: 60350bd80921cabf33d2b7407b89c9f42cf141df15089549f4a7d088a78be6fbf6393506c4ca0d65b497558eb41c3e93407d130430b493834853244386b55b05
|
7
|
+
data.tar.gz: 6a135e36f46733b84ccfae834a7e1c4ac69734bc69735ff9ee81ac2af72225df823651e05655d6836993afc48ab42377f5f91c3c0357b186795dc777e4dd5c8a
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
@@ -54,3 +54,25 @@
|
|
54
54
|
* update gemspec
|
55
55
|
* update test to point to project gh-pages
|
56
56
|
|
57
|
+
== Version 1.3.2
|
58
|
+
* relax constraint on json gem to >=1.8 instead of ~>2.0
|
59
|
+
* add test of ruby 2.4.0 + drop test of ruby 2.0.0
|
60
|
+
|
61
|
+
== Version 1.3.3
|
62
|
+
* add deprecation warning for class MarkupValidator
|
63
|
+
* raise ValidatorUnavailable when connection to uri is refused
|
64
|
+
* Change the Nu Validator URL to "https://validator.w3.org/nu/" (https://validator.nu is returning 502)
|
65
|
+
|
66
|
+
== Version 1.3.4
|
67
|
+
* migrate css validator to https (instead of http)
|
68
|
+
* add test of ruby 2.5
|
69
|
+
* remove unused variable in nu validator code
|
70
|
+
|
71
|
+
== Version 1.3.5
|
72
|
+
* replace Net::HTTPServerException (deprecated) by Net::HTTPClientException
|
73
|
+
* fix bad indentation of rescue in validators classes
|
74
|
+
* add test for ruby 2.6, update 2.5, 2.4, 2.3 tested version and remove 2.2 and 2.1 versions
|
75
|
+
|
76
|
+
== Version 1.3.6
|
77
|
+
* update README to clarify usage with Ruby frameworks
|
78
|
+
* update dependencies to be ready for ruby 3.0
|
data/README.md
CHANGED
@@ -148,6 +148,36 @@ You can use a proxy server by passing in its information in the contructor.
|
|
148
148
|
puts "#{key}: #{value}"
|
149
149
|
end
|
150
150
|
```
|
151
|
+
|
152
|
+
### Examples with Ruby Frameworks
|
153
|
+
|
154
|
+
```
|
155
|
+
# you can easily incorporate this in your ruby based frameworks:
|
156
|
+
|
157
|
+
# Gemfile
|
158
|
+
group :test do
|
159
|
+
gem 'w3c_validators'
|
160
|
+
end
|
161
|
+
|
162
|
+
# And in your relevant test file:
|
163
|
+
|
164
|
+
require 'w3c_validators'
|
165
|
+
|
166
|
+
class FoosControllerTest < ActionDispatch::IntegrationTest
|
167
|
+
setup do
|
168
|
+
@validator = W3CValidators::NuValidator.new
|
169
|
+
end
|
170
|
+
|
171
|
+
test "index" do
|
172
|
+
get foos_url
|
173
|
+
assert_equal 0, @validator.validate_text(response.body).errors.length
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
# granted it's not perfect, but hopefully that will at least get you going
|
178
|
+
# you might want to customise things so that it delivers a particular output in case an error shows up.
|
179
|
+
```
|
180
|
+
|
151
181
|
### Tests
|
152
182
|
|
153
183
|
Run unit tests using <tt>rake test</tt>. Note that there is a one second delay
|
@@ -14,6 +14,7 @@ module W3CValidators
|
|
14
14
|
#
|
15
15
|
# See Validator#new for proxy server options.
|
16
16
|
def initialize(options = {})
|
17
|
+
puts "The MarkupValidator class is deprecated (cf. https://validator.w3.org/docs/obsolete-api.html) as it cannot process HTML5 documents.\nPlease prefer the NuValidator class instead."
|
17
18
|
if options[:validator_uri]
|
18
19
|
@validator_uri = URI.parse(options[:validator_uri])
|
19
20
|
options.delete(options[:validator_uri])
|
@@ -153,7 +154,7 @@ protected
|
|
153
154
|
|
154
155
|
# Convert booleans to integers
|
155
156
|
[:fbc, :fbd, :verbose, :debug, :ss, :outline].each do |k|
|
156
|
-
if options.has_key?(k) and not options[k].kind_of?(
|
157
|
+
if options.has_key?(k) and not options[k].kind_of?(Integer)
|
157
158
|
options[k] = options[k] ? 1 : 0
|
158
159
|
end
|
159
160
|
end
|
@@ -201,8 +202,8 @@ protected
|
|
201
202
|
end
|
202
203
|
return results
|
203
204
|
|
204
|
-
|
205
|
-
|
205
|
+
rescue Exception => e
|
206
|
+
handle_exception e
|
206
207
|
end
|
207
208
|
|
208
209
|
# Parse the HEAD response into HTMLValidator::Results.
|
@@ -2,7 +2,7 @@ require 'json'
|
|
2
2
|
|
3
3
|
module W3CValidators
|
4
4
|
class NuValidator < Validator
|
5
|
-
MARKUP_VALIDATOR_URI = 'https://validator.nu/'
|
5
|
+
MARKUP_VALIDATOR_URI = 'https://validator.w3.org/nu/'
|
6
6
|
|
7
7
|
# Create a new instance of the NuValidator.
|
8
8
|
#
|
@@ -44,17 +44,15 @@ module W3CValidators
|
|
44
44
|
|
45
45
|
# Validate the markup of a local file.
|
46
46
|
#
|
47
|
-
# +
|
47
|
+
# +file+ may be either the fully-expanded path to the file or
|
48
48
|
# an IO object (like File).
|
49
49
|
#
|
50
50
|
# Returns W3CValidators::Results.
|
51
51
|
def validate_file(file)
|
52
52
|
if file.respond_to? :read
|
53
53
|
src = file.read
|
54
|
-
file_path = file.path ||= nil
|
55
54
|
else
|
56
55
|
src = read_local_file(file)
|
57
|
-
file_path = file
|
58
56
|
end
|
59
57
|
|
60
58
|
return validate_text(src)
|
@@ -142,8 +140,8 @@ protected
|
|
142
140
|
|
143
141
|
return results
|
144
142
|
|
145
|
-
|
146
|
-
|
143
|
+
rescue Exception => e
|
144
|
+
handle_exception e
|
147
145
|
end
|
148
146
|
end
|
149
147
|
end
|
@@ -16,6 +16,7 @@ module W3CValidators
|
|
16
16
|
HEAD_STATUS_HEADER = 'X-W3C-Validator-Status'
|
17
17
|
HEAD_ERROR_COUNT_HEADER = 'X-W3C-Validator-Errors'
|
18
18
|
SOAP_OUTPUT_PARAM = 'soap12'
|
19
|
+
USE_NEW_EXCEPTION = Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.6')
|
19
20
|
|
20
21
|
attr_reader :results, :validator_uri
|
21
22
|
|
@@ -112,8 +113,8 @@ module W3CValidators
|
|
112
113
|
response.value
|
113
114
|
return response
|
114
115
|
|
115
|
-
|
116
|
-
|
116
|
+
rescue Exception => e
|
117
|
+
handle_exception e
|
117
118
|
end
|
118
119
|
|
119
120
|
def create_multipart_data(options) # :nodoc:
|
@@ -173,8 +174,13 @@ module W3CValidators
|
|
173
174
|
# Big thanks to ara.t.howard and Joel VanderWerf on Ruby-Talk for the exception handling help.
|
174
175
|
#++
|
175
176
|
def handle_exception(e, msg = '') # :nodoc:
|
177
|
+
if USE_NEW_EXCEPTION
|
178
|
+
http_exception = Net::HTTPClientException
|
179
|
+
else
|
180
|
+
http_exception = Net::HTTPServerException
|
181
|
+
end
|
176
182
|
case e
|
177
|
-
when
|
183
|
+
when http_exception, SocketError, Errno::ECONNREFUSED
|
178
184
|
msg = "unable to connect to the validator at #{@validator_uri} (response was #{e.message})."
|
179
185
|
raise ValidatorUnavailable, msg, caller
|
180
186
|
when JSON::ParserError, Nokogiri::XML::SyntaxError
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri:
|
5
|
+
uri: https://jigsaw.w3.org/css-validator/validator
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: "--349832898984244898448024464570528145\r\nContent-Disposition: form-data;
|
@@ -27,7 +27,7 @@ http_interactions:
|
|
27
27
|
Cache-Control:
|
28
28
|
- no-cache
|
29
29
|
Date:
|
30
|
-
-
|
30
|
+
- Fri, 10 Aug 2018 19:59:10 GMT
|
31
31
|
Pragma:
|
32
32
|
- no-cache
|
33
33
|
Transfer-Encoding:
|
@@ -37,20 +37,37 @@ http_interactions:
|
|
37
37
|
Content-Type:
|
38
38
|
- application/soap+xml;charset=utf-8
|
39
39
|
Server:
|
40
|
-
- Jigsaw/2.3.0-
|
40
|
+
- Jigsaw/2.3.0-beta3
|
41
41
|
Vary:
|
42
42
|
- Accept-Language
|
43
|
+
Access-Control-Allow-Origin:
|
44
|
+
- "*"
|
45
|
+
Access-Control-Allow-Headers:
|
46
|
+
- content-type,accept-charset
|
47
|
+
Access-Control-Allow-Methods:
|
48
|
+
- GET, HEAD, POST, OPTIONS
|
49
|
+
Access-Control-Max-Age:
|
50
|
+
- '600'
|
43
51
|
X-W3c-Validator-Errors:
|
44
52
|
- '1'
|
45
53
|
X-W3c-Validator-Status:
|
46
54
|
- Invalid
|
55
|
+
Strict-Transport-Security:
|
56
|
+
- max-age=15552015; includeSubDomains; preload
|
57
|
+
Public-Key-Pins:
|
58
|
+
- pin-sha256="cN0QSpPIkuwpT6iP2YjEo1bEwGpH/yiUn6yhdy+HNto="; pin-sha256="WGJkyYjx1QMdMe0UqlyOKXtydPDVrk7sl2fV+nNm1r4=";
|
59
|
+
pin-sha256="LrKdTxZLRTvyHM4/atX2nquX9BeHRZMCxg3cf4rhc2I="; max-age=864000
|
60
|
+
X-Frame-Options:
|
61
|
+
- deny
|
62
|
+
X-Xss-Protection:
|
63
|
+
- 1; mode=block
|
47
64
|
body:
|
48
65
|
encoding: UTF-8
|
49
66
|
string: "<?xml version='1.0' encoding=\"utf-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n
|
50
67
|
\ <env:Body>\n <m:cssvalidationresponse\n env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\"\n
|
51
68
|
\ xmlns:m=\"http://www.w3.org/2005/07/css-validator\">\n <m:uri>TextArea</m:uri>\n
|
52
69
|
\ <m:checkedby>http://jigsaw.w3.org/css-validator/</m:checkedby>\n
|
53
|
-
\ <m:csslevel>css3</m:csslevel>\n <m:date>
|
70
|
+
\ <m:csslevel>css3</m:csslevel>\n <m:date>2018-08-10T07:59:10Z</m:date>\n
|
54
71
|
\ <m:validity>false</m:validity>\n <m:result>\n <m:errors
|
55
72
|
xml:lang=\"en\">\n <m:errorcount>1</m:errorcount>\n \n
|
56
73
|
\ <m:errorlist>\n <m:uri>file://localhost/TextArea</m:uri>\n
|
@@ -61,12 +78,12 @@ http_interactions:
|
|
61
78
|
\ blue\n </m:skippedstring>\n
|
62
79
|
\ <m:type>value</m:type>\n \n <m:message>\n
|
63
80
|
\ \n Value Error : margin (nullbox.html#propdef-margin)\n
|
64
|
-
\ \n blue is not a margin
|
65
|
-
\
|
81
|
+
\ \n “blue” is not a “margin”
|
82
|
+
value : \n </m:message>\n </m:error>\n
|
66
83
|
\ \n </m:errorlist>\n \n </m:errors>\n
|
67
84
|
\ <m:warnings xml:lang=\"en\">\n <m:warningcount>0</m:warningcount>\n
|
68
85
|
\ </m:warnings>\n </m:result>\n </m:cssvalidationresponse>\n
|
69
86
|
\ </env:Body>\n</env:Envelope>\n\n"
|
70
87
|
http_version:
|
71
|
-
recorded_at:
|
88
|
+
recorded_at: Fri, 10 Aug 2018 19:59:10 GMT
|
72
89
|
recorded_with: VCR 3.0.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri:
|
5
|
+
uri: https://jigsaw.w3.org/css-validator/validator?output=soap12&profile=css21&text=%20%20%20%20a%20%7B%20color:%20white%3B%20%7D%0A%20%20%20%20body%20%7B%20margin:%20blue%3B%20%7D%0A%20%20%20%20%0A
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -10,7 +10,7 @@ http_interactions:
|
|
10
10
|
Accept-Encoding:
|
11
11
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
12
|
Accept:
|
13
|
-
-
|
13
|
+
- "*/*"
|
14
14
|
User-Agent:
|
15
15
|
- Ruby
|
16
16
|
response:
|
@@ -21,7 +21,7 @@ http_interactions:
|
|
21
21
|
Cache-Control:
|
22
22
|
- no-cache
|
23
23
|
Date:
|
24
|
-
-
|
24
|
+
- Fri, 10 Aug 2018 19:59:11 GMT
|
25
25
|
Pragma:
|
26
26
|
- no-cache
|
27
27
|
Transfer-Encoding:
|
@@ -34,17 +34,34 @@ http_interactions:
|
|
34
34
|
- Jigsaw/2.3.0-beta3
|
35
35
|
Vary:
|
36
36
|
- Accept-Language
|
37
|
+
Access-Control-Allow-Origin:
|
38
|
+
- "*"
|
39
|
+
Access-Control-Allow-Headers:
|
40
|
+
- content-type,accept-charset
|
41
|
+
Access-Control-Allow-Methods:
|
42
|
+
- GET, HEAD, POST, OPTIONS
|
43
|
+
Access-Control-Max-Age:
|
44
|
+
- '600'
|
37
45
|
X-W3c-Validator-Errors:
|
38
46
|
- '1'
|
39
47
|
X-W3c-Validator-Status:
|
40
48
|
- Invalid
|
49
|
+
Strict-Transport-Security:
|
50
|
+
- max-age=15552015; includeSubDomains; preload
|
51
|
+
Public-Key-Pins:
|
52
|
+
- pin-sha256="cN0QSpPIkuwpT6iP2YjEo1bEwGpH/yiUn6yhdy+HNto="; pin-sha256="WGJkyYjx1QMdMe0UqlyOKXtydPDVrk7sl2fV+nNm1r4=";
|
53
|
+
pin-sha256="LrKdTxZLRTvyHM4/atX2nquX9BeHRZMCxg3cf4rhc2I="; max-age=864000
|
54
|
+
X-Frame-Options:
|
55
|
+
- deny
|
56
|
+
X-Xss-Protection:
|
57
|
+
- 1; mode=block
|
41
58
|
body:
|
42
|
-
encoding:
|
43
|
-
string:
|
59
|
+
encoding: UTF-8
|
60
|
+
string: "<?xml version='1.0' encoding=\"utf-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n
|
44
61
|
\ <env:Body>\n <m:cssvalidationresponse\n env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\"\n
|
45
62
|
\ xmlns:m=\"http://www.w3.org/2005/07/css-validator\">\n <m:uri>file://localhost/TextArea</m:uri>\n
|
46
63
|
\ <m:checkedby>http://jigsaw.w3.org/css-validator/</m:checkedby>\n
|
47
|
-
\ <m:csslevel>css21</m:csslevel>\n <m:date>
|
64
|
+
\ <m:csslevel>css21</m:csslevel>\n <m:date>2018-08-10T07:59:11Z</m:date>\n
|
48
65
|
\ <m:validity>false</m:validity>\n <m:result>\n <m:errors
|
49
66
|
xml:lang=\"en\">\n <m:errorcount>1</m:errorcount>\n \n
|
50
67
|
\ <m:errorlist>\n <m:uri>file://localhost/TextArea</m:uri>\n
|
@@ -54,13 +71,13 @@ http_interactions:
|
|
54
71
|
\ </m:errorsubtype>\n <m:skippedstring>\n
|
55
72
|
\ blue\n </m:skippedstring>\n
|
56
73
|
\ <m:type>value</m:type>\n \n <m:message>\n
|
57
|
-
\ \n Value Error : margin (
|
58
|
-
\ \n blue is not a margin
|
59
|
-
\
|
74
|
+
\ \n Value Error : margin ([error]box.html#propdef-margin)\n
|
75
|
+
\ \n “blue” is not a “margin”
|
76
|
+
value : \n </m:message>\n </m:error>\n
|
60
77
|
\ \n </m:errorlist>\n \n </m:errors>\n
|
61
78
|
\ <m:warnings xml:lang=\"en\">\n <m:warningcount>0</m:warningcount>\n
|
62
79
|
\ </m:warnings>\n </m:result>\n </m:cssvalidationresponse>\n
|
63
80
|
\ </env:Body>\n</env:Envelope>\n\n"
|
64
81
|
http_version:
|
65
|
-
recorded_at:
|
82
|
+
recorded_at: Fri, 10 Aug 2018 19:59:11 GMT
|
66
83
|
recorded_with: VCR 3.0.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri:
|
5
|
+
uri: https://jigsaw.w3.org/css-validator/validator
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: "--349832898984244898448024464570528145\r\nContent-Disposition: form-data;
|
@@ -27,7 +27,7 @@ http_interactions:
|
|
27
27
|
Cache-Control:
|
28
28
|
- no-cache
|
29
29
|
Date:
|
30
|
-
-
|
30
|
+
- Fri, 10 Aug 2018 19:59:12 GMT
|
31
31
|
Pragma:
|
32
32
|
- no-cache
|
33
33
|
Transfer-Encoding:
|
@@ -37,20 +37,37 @@ http_interactions:
|
|
37
37
|
Content-Type:
|
38
38
|
- application/soap+xml;charset=utf-8
|
39
39
|
Server:
|
40
|
-
- Jigsaw/2.3.0-
|
40
|
+
- Jigsaw/2.3.0-beta4
|
41
41
|
Vary:
|
42
42
|
- Accept-Language
|
43
|
+
Access-Control-Allow-Origin:
|
44
|
+
- "*"
|
45
|
+
Access-Control-Allow-Headers:
|
46
|
+
- content-type,accept-charset
|
47
|
+
Access-Control-Allow-Methods:
|
48
|
+
- GET, HEAD, POST, OPTIONS
|
49
|
+
Access-Control-Max-Age:
|
50
|
+
- '600'
|
43
51
|
X-W3c-Validator-Errors:
|
44
52
|
- '1'
|
45
53
|
X-W3c-Validator-Status:
|
46
54
|
- Invalid
|
55
|
+
Strict-Transport-Security:
|
56
|
+
- max-age=15552015; includeSubDomains; preload
|
57
|
+
Public-Key-Pins:
|
58
|
+
- pin-sha256="cN0QSpPIkuwpT6iP2YjEo1bEwGpH/yiUn6yhdy+HNto="; pin-sha256="WGJkyYjx1QMdMe0UqlyOKXtydPDVrk7sl2fV+nNm1r4=";
|
59
|
+
pin-sha256="LrKdTxZLRTvyHM4/atX2nquX9BeHRZMCxg3cf4rhc2I="; max-age=864000
|
60
|
+
X-Frame-Options:
|
61
|
+
- deny
|
62
|
+
X-Xss-Protection:
|
63
|
+
- 1; mode=block
|
47
64
|
body:
|
48
65
|
encoding: UTF-8
|
49
66
|
string: "<?xml version='1.0' encoding=\"utf-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n
|
50
67
|
\ <env:Body>\n <m:cssvalidationresponse\n env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\"\n
|
51
68
|
\ xmlns:m=\"http://www.w3.org/2005/07/css-validator\">\n <m:uri>TextArea</m:uri>\n
|
52
69
|
\ <m:checkedby>http://jigsaw.w3.org/css-validator/</m:checkedby>\n
|
53
|
-
\ <m:csslevel>css3</m:csslevel>\n <m:date>
|
70
|
+
\ <m:csslevel>css3</m:csslevel>\n <m:date>2018-08-10T07:59:12Z</m:date>\n
|
54
71
|
\ <m:validity>false</m:validity>\n <m:result>\n <m:errors
|
55
72
|
xml:lang=\"en\">\n <m:errorcount>1</m:errorcount>\n \n
|
56
73
|
\ <m:errorlist>\n <m:uri>file://localhost/TextArea</m:uri>\n
|
@@ -61,12 +78,12 @@ http_interactions:
|
|
61
78
|
\ blue\n </m:skippedstring>\n
|
62
79
|
\ <m:type>value</m:type>\n \n <m:message>\n
|
63
80
|
\ \n Value Error : margin (nullbox.html#propdef-margin)\n
|
64
|
-
\ \n blue is not a margin
|
65
|
-
\
|
81
|
+
\ \n “blue” is not a “margin”
|
82
|
+
value : \n </m:message>\n </m:error>\n
|
66
83
|
\ \n </m:errorlist>\n \n </m:errors>\n
|
67
84
|
\ <m:warnings xml:lang=\"en\">\n <m:warningcount>0</m:warningcount>\n
|
68
85
|
\ </m:warnings>\n </m:result>\n </m:cssvalidationresponse>\n
|
69
86
|
\ </env:Body>\n</env:Envelope>\n\n"
|
70
87
|
http_version:
|
71
|
-
recorded_at:
|
88
|
+
recorded_at: Fri, 10 Aug 2018 19:59:12 GMT
|
72
89
|
recorded_with: VCR 3.0.3
|