public
Fork of relevance/tarantula
Description: a big hairy fuzzy spider that crawls your site, wreaking havoc
Homepage: http://opensource.thinkrelevance.com/wiki/tarantula
Clone URL: git://github.com/thechrisoshow/tarantula.git
Chris O'Sullivan (author)
Thu May 29 15:42:14 -0700 2008
commit  0c7e541a7a2fa4510da67050f82bda7e5a9d69ca
tree    e71c8666d939b53f8d5375010f8574107bfec2e0
parent  4864481583c5a144e83cd6bca27b73a4e327bdd0
name age message
file .gitignore Thu May 29 14:59:04 -0700 2008 Added tmp and rcov_tmp to gitignore. [spicycode]
file MIT-LICENSE Mon Feb 04 10:20:09 -0800 2008 initial tarantula [stu]
file README Tue Feb 26 18:37:35 -0800 2008 regression bug in README -- Rob keeps hiding th... [stu]
file Rakefile Thu May 29 14:59:04 -0700 2008 Added tmp and rcov_tmp to gitignore. [spicycode]
file init.rb Mon Feb 04 10:20:09 -0800 2008 initial tarantula [stu]
file install.rb Mon Feb 04 10:20:09 -0800 2008 initial tarantula [stu]
directory laf/ Mon Apr 07 06:46:20 -0700 2008 partial implementation of EY's new look-and-feel [stu]
directory lib/ Fri May 09 06:43:10 -0700 2008 applying patches from someone23 [justin]
directory tasks/ Tue May 27 11:33:04 -0700 2008 adding setup task [abedra]
directory template/ Tue May 27 11:33:04 -0700 2008 adding setup task [abedra]
directory test/ Thu May 29 15:42:14 -0700 2008 Added tests for generate_reports error messages... [Chris O'Sullivan]
file uninstall.rb Mon Feb 04 10:20:09 -0800 2008 initial tarantula [stu]
directory vendor/ Thu Feb 28 08:37:09 -0800 2008 turn off parts of xss_shield that are blowing u... [stu]
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