a big hairy fuzzy spider that crawls your site, wreaking havoc
Ruby JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 234 commits behind relevance:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
laf
lib/relevance
tasks
template
test
vendor/xss-shield
.gitignore
MIT-LICENSE
README
Rakefile
init.rb
install.rb
uninstall.rb

README

== tarantula ==

== Description ==

Tarantula is a big fuzzy spider. It crawls your Rails application, fuzzing data to see what breaks.

== Install ==

{{{
#!sh
script/plugin install http://opensource.thinkrelevance.com/svn/rubygems/tarantula/trunk tarantula
}}}

== Dependencies ==

{{{
gem install htmlentities
gem install facets
}}}

== Usage ==

Create a Rails integration test that looks like this, filling in your own auth params. You will probably want to include all fixtures.

{{{
# somewhere
require 'relevance/tarantula'

# in your test
def test_with_login
  post '/sessions/create', :password => 'your-pass'
  assert_response :redirect
  assert_redirected_to '/'
  follow_redirect!
  tarantula_crawl(self)
end
}}}

If you want to set custom options, you can get access to the crawler and set properties before running it. For example, this would turn on HTMLTidy.

{{{
def test_with_login
  post '/sessions/create', :password => 'your-pass'
  assert_response :redirect
  assert_redirected_to '/'
  follow_redirect!
  t = tarantula_crawler(self)
  t.handlers << Relevance::Tarantula::TidyHandler.new
  t.crawl '/'
end
}}}

Assuming your project is at /work/project/:

{{{
#!sh
cd /work/project
rake tarantula:test
}}}

== Verbose Mode ==

If you run the test you will get a report in tmp/tarantula. You can also set VERBOSE=true to see more detail as the test runs.

For more options see the test suite.

== Allowed Errors ==

If, for example, a 404 is an appropriate response for some URLs, you can
tell Tarantula to allow 404s for URLs matching a regexp:

{{{
t = tarantula_crawler(self)
t.allow_404_for %r{/users/\d+/}
}}}


== Bugs/Requests ==

Please submit your bug reports, patches or feature requests as a ticket under the component "tarantula".  You'll have to create an account (Sorry!  Otherwise we'd get way too much spam).

== License and Copyright ==

Copyright (c) 2008 Relevance, Inc., released under the MIT license