public
Description: Ruby on Rails plugin providing methods for simple and DRY integration testing of conventions-compliant RESTful Rails applications.
Homepage: http://5valleys.com
Clone URL: git://github.com/jsgarvin/arid.git
jsgarvin (author)
Sat Jan 10 13:58:03 -0800 2009
commit  550212bee73167d1a2e70b329114e5e87128fcf2
tree    abc7b3eb1e0c20246e7049e30da1a1b37b591d4c
parent  b51892d749158cf68dfa566b992b9994a93b711a
arid /
README
= ActiveResourceIntegrationDsl (ARID)

Provides a framework of common integration tests for RESTful CRUD interactions.

== Installation
script/plugin install git://github.com/jsgarvin/arid.git

== Sample Usage

  class ArticleTest < ActionController::IntegrationTest
    include ActiveResourceIntegrationDsl
    
    def test_some_article_functionality
      new_session_as('jonnyg','testing123') do |jon|
        params = {:article => {
            :title => 'Foo Bites Bar',
            :content => 'Bar was bitten by Foo yesterday.' 
        }}
        jon.builds_story(:params => params)
        params = {:article => {:title => 'Bar Bitten Badly'}}
        jon.edits_story(1,:params => params)
        jon.lists_stories
        jon.shows_story(1)
        jon.destroys_story(1)
      end
    end
  end

== API
Complete API Documentation @
* Session Instantiation -- ActiveResourceIntegrationDsl  
* Session Methods -- ActiveResourceIntegrationDsl::SessionMethods


== License

Released under the MIT license.

== Author

* Jonathan Garvin ( http://www.5valleys.com )

== Assumptions
The plugin makes certain assumptions about your application.
Some of these can be bypassed or overridden if your app does
not conform.

* You have appropriate map.resources lines in your routes.rb
  for any controllers you intend to test with these methods.
* sessions_path helper method returns the path to a controller
  that controls user logins. (Provided automatically by
  Rails if you have a sessions_controller and routes.rb
  includes "map.resources :sessions".) 
* Your sessions controller accepts parameters in the form of...
  {:user => {:username => 'xxx', :password => 'yyy'}} Override
  by providing your own new_session_as method that generates
  an appropriate session for your app with the user provided.