# How to test for a correct header?

**URL:** <https://www.ruby-forum.com/t/how-to-test-for-a-correct-header/87729>\
**Category:** Rails\
**Created:** [March 5, 2007, 4:49pm UTC](https://www.ruby-forum.com/t/how-to-test-for-a-correct-header/87729 "2007-03-05T16:49:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![threeeyedfish](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/a587f6/32.png) [@threeeyedfish](https://www.ruby-forum.com/u/threeeyedfish)\
**Post date:** [March 5, 2007, 4:49pm UTC](https://www.ruby-forum.com/t/how-to-test-for-a-correct-header/87729/1 "2007-03-05T16:49:56Z")

</div>

Hi, all!  
I’m writing a functional test and I would like to test if my controller  
gives out right content type for an AJAX Request.

Firstly I do

xhr :post, :my\_controller, my\_params, {‘Accept’ =\> ‘text/javascript’}

to simulate the request, but I don’t know how to write an assertion. I  
hoped it would be

assert\_equal headers[‘Content-Type’], ‘text/javascript’

but that turned out to give an error.

Could you please give me a hint for correct syntax?

---

<div class="post-metadata">

**Author:** ![threeeyedfish](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/a587f6/32.png) [@threeeyedfish](https://www.ruby-forum.com/u/threeeyedfish)\
**Post date:** [March 5, 2007, 6:53pm UTC](https://www.ruby-forum.com/t/how-to-test-for-a-correct-header/87729/2 "2007-03-05T18:53:24Z")

</div>

Do a puts and check the value of header[‘Content-Type’]

---

<div class="post-metadata">

**Author:** ![threeeyedfish](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/a587f6/32.png) [@threeeyedfish](https://www.ruby-forum.com/u/threeeyedfish)\
**Post date:** [March 8, 2007, 2:55pm UTC](https://www.ruby-forum.com/t/how-to-test-for-a-correct-header/87729/3 "2007-03-08T14:55:03Z")

</div>

I did it in controller and was very surprised that request.headers are  
empty, though I supply them in the test:

xhr :post, :login, my\_params, {‘Accept’ =\> ‘text/javascript’}

But my original point was to check them from within the test. And the  
test doesn’t have a request or response variable, nor header or  
headers. I wished to know how I can access that information from the  
test.

---

<div class="post-metadata">

**Author:** ![threeeyedfish](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/a587f6/32.png) [@threeeyedfish](https://www.ruby-forum.com/u/threeeyedfish)\
**Post date:** [March 9, 2007, 4:18pm UTC](https://www.ruby-forum.com/t/how-to-test-for-a-correct-header/87729/4 "2007-03-09T16:18:37Z")

</div>

On Mar 8, 2007, at 18:40, eden li wrote:

> If you use the default test that gets generated with your controller,  
> you should be able to access the response headers via the  
> @response.headers hash.

Many thanks!

Assigning values to @request hash solved my another problem!

I am so happy!

Yours sincerely,  
Damian/Three-eyed Fish

---

<div class="post-metadata">

**Author:** ![threeeyedfish](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/a587f6/32.png) [@threeeyedfish](https://www.ruby-forum.com/u/threeeyedfish)\
**Post date:** [March 8, 2007, 4:42pm UTC](https://www.ruby-forum.com/t/how-to-test-for-a-correct-header/87729/5 "2007-03-08T16:42:21Z")

</div>

If you use the default test that gets generated with your controller,  
you should be able to access the response headers via the  
@response.headers hash.
