No commit activity in last 3 years
No release in over 3 years
Also contains some conveniences such as a flag to clear w3c cache at runtime, and some other cleanups
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 0
 Project Readme

assert_valid_markup plugin for Rails¶ ↑

Validate your (X)HTML from within your functional tests. If anything changes to invalidate your markup, you’ll know pronto.

If xmllint/xmlcatalog are available in your PATH, this plugin will use them to validate your xml. When doing so, it will automatically fetch and cache all DTDs locally so that you don’t incur a network hit on future runs.

Otherwise, validations will be done using the W3C Validator web service (validator.w3.org/). Responses from the web service are cached, so your tests aren’t slowed down unless something has changed.

Installation¶ ↑

Install as a gem:

gem install assert_valid_markup

and edit config/environments/test.rb:

config.gem 'assert_valid_markup'

or install as a plugin:

./script/plugin install http://github.com/wr0ngway/assert_valid_markup

Usage¶ ↑

Calling the assertion with no parameters validates whatever is in @request.body, which is automatically set by the existing get/post/etc helpers. For example:

class FooControllerTest < Test::Unit::TestCase
  def test_bar_markup
    get :bar
    assert_valid_markup
  end
end

Add a string parameter to the assertion to validate any random fragment. Por ejemplo:

class FooControllerTest < Test::Unit::TestCase
  def test_bar_markup
    assert_valid_markup "<div>Hello, world.</div>"
  end
end

For the ultimate in convenience, use the class-level methods to validate a slew of actions in one line. Par exemple:

class FooControllerTest < Test::Unit::TestCase
  assert_valid_markup :bar, :baz, :qux
end

# automatically validate all GETs in BarControllerTest
class BarControllerTest < Test::Unit::TestCase
  assert_all_valid_markup
end

# Add this to test_helper to automatically validate the responses for ALL GETs in ALL controllers
class ActionController::TestCase < ActiveSupport::TestCase
  assert_all_valid_markup
end

Credits¶ ↑

Scott Raymond <sco@scottraymond.net>. Released under the MIT license. Matt Conway <matt@conwaysplace.com> (xmllint additions) Latest version: github.com/wr0ngway/assert_valid_markup