views:

332

answers:

1

Hi,

Is it possible to cover my controller, that is highly depeinding on Etags with unit tests?

Here's what i'm trying to do: in case if page is not stale (meaning that it's fresh), i'm adding some header to response.

When i'm trying to test it all (rspec), no matter how many similar requests i have, i still receive 200 OK instead of 304, and my header doesn't get modified. Furthermore, if i track request.fresh?(response), it's ALWAYS false.

However, it perfectly works in browser. I've already tried to state ActionController::Base.perform_caching = true, it doesn't change the overall situation.

Thank you

A: 

Ok, here's a point:

Before hitting the request, read up everything that's related to ETags in Rails code and Don't forget to set:

request.env["HTTP_IF_MODIFIED_SINCE"] request.env["HTTP_IF_NONE_MATCH"]

Since they're required for ETag testing.

ifesdjeen