Rails 2.2 Integration tests cookie store

I’ve upgraded an existing application from 2.1 to 2.2.2. All of the
integration tests failed, complaining about there being no ‘secret’
defined in the session_store configuration options. There isn’t a
secret defined, since we don’t use the cookie session store (it’s a
wap site, and many phone browsers don’t support cookies). Setting the
secret to an appropriate value fixed all the tests.

It looks like the database_manager is hardcoded to be a CookieStore in
rack_process.rb.

Is there any plan on getting integration tests to use the actual
configured cookie store? Or should we be finding a better way to do
higher level integration tests?

Thanks,
Darren

What I ended up doing was overriding the default options in
RackRequest.

In test.rb, I added

class ActionController::RackRequest
DEFAULT_SESSION_OPTIONS = {
:database_manager => CGI::Session::MemoryStore, # store data in
memory
:prefix => “ruby_sess.”, # prefix session file names
:session_path => “/”, # available to all paths in
app
:session_key => “_session_id”,
:cookie_only => false,
:session_http_only=> true
}
end

I get a warning about the constant already being defined, but it’s
better than having the tests fail.

Also see <#1453 'get's in integration test unless you are using cookie sessions - Ruby on Rails - rails
gets-in-integration-test-unless-you-are-using-cookie-sessions>.

Lee

Someone to give me the configuration for
“config.action_controller.session_store = :active_record_store” ?!

Thanks.

Ok the good configuration for Session store une database by
ActiveRecord is :

class ActionController::RackRequest
DEFAULT_SESSION_OPTIONS = {
:database_manager => CGI::Session::ActiveRecordStore,
:cookie_only => false,
:session_http_only=> true
}
end

Add this code in integration test.