jmuheim/transition — pull request #15 by jmuheim (2014-01-02 22:30:12+00:00)
Title: be_valid_asset gem

Gem: https://github.com/unboxed/be_valid_asset

Seems to work quite well so far, but a bit unsure whether a local utility is used or an online utility?! See https://github.com/unboxed/be_valid_asset/issues/12.

**Advance over the other gems:** also validates CSS and feeds!

Output:

```
1) Valid HTML5 Member is not signed up I do not exist as a member -> I sign in with valid username and password -> I see an invalid login message -> I should be signed out -> the page should be valid HTML5
Screenshot: /Users/josh/Documents/Work/MuheimWebdesign/transition/tmp/capybara/screenshot_2014-01-02-23-26-38.569.png
Failure/Error: And the page should be valid HTML5
expected markup to be valid, but validation produced these errors:
0001 :

Transition

You are not signed in.

Login / register

Invalid login or password.

Sign in

Login

Password

Remember me

Sign up
Forgot your password?
Didn't receive confirmation instructions?
Didn't receive unlock instructions?

Invalid markup: line 1: Bad value asdf for attribute role on element header.
Invalid markup: line 1: Attribute asdf not allowed on element header at this point.
# ./spec/support/steps/global_steps.rb:6:in `block in '
# ./spec/acceptance/members/valid_html.feature:9:in `the page should be valid HTML5'

Saved file /Users/josh/Documents/Work/MuheimWebdesign/transition/tmp/capybara/screenshot_2014-01-02-23-26-38.621.html
Rack::Test capybara driver has no ability to output screen shots. Skipping.
2) Valid HTML5 Member is not signed up2 I do not exist as a member -> I sign in with valid username and password -> I see an invalid login message -> I should be signed out -> the CSS should be valid
Screenshot: /Users/josh/Documents/Work/MuheimWebdesign/transition/tmp/capybara/screenshot_2014-01-02-23-26-38.621.png
Failure/Error: And the CSS should be valid
expected css to be valid, but validation produced these errors:
0001 : html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}q,blockquote{quotes:none}q:before,q:after,blockquote:before,blockquote:after{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary{display:block}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}q,blockquote{quotes:none}q:before,q:after,blockquote:before,blockquote:after{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary{display:block}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}q,blockquote{quotes:none}q:before,q:after,blockquote:before,blockquote:after{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary{display:block}#mini_hub{display:inline;float:right;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;padding:5px;border:1px solid blue;asdf:123;padding:100abc}
Invalid css: line 1: Property asdf doesn't exist :
Invalid css: line 1: Value Error : padding (nullbox.html#propdef-padding)

Unknown dimension
# ./spec/support/steps/global_steps.rb:11:in `block in '
# ./spec/acceptance/members/valid_html.feature:16:in `the CSS should be valid'
```