# RSpec 2, Rails 3, and SSL routes

**URL:** <https://www.ruby-forum.com/t/rspec-2-rails-3-and-ssl-routes/200362>\
**Category:** RSpec\
**Created:** [December 9, 2010, 9:38pm UTC](https://www.ruby-forum.com/t/rspec-2-rails-3-and-ssl-routes/200362 "2010-12-09T21:38:54Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/77aa72/32.png) [@Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/u/Dobai-Pataky_BSSSSl)\
**Post date:** [December 9, 2010, 9:38pm UTC](https://www.ruby-forum.com/t/rspec-2-rails-3-and-ssl-routes/200362/1 "2010-12-09T21:38:54Z")

</div>

Hi all,

This is probably a stupid question, but I can’t figure out how to do  
this…

If I have some routes which require SSL, how do I test that with  
RSpec? For example:

# routes.rb

scope :constraints =\> { :protocol =\> “https” } do  
match ‘/foos.(:format)’ =\> ‘foos#index’, :via =\> :get, :constraints  
=\> { :format =\> /(json|xml)/ }  
end

In my routing spec, I’ve tried the following variants with no luck:

describe “routing to foos” do  
it “routes /foos.json to foos#index” do  
{ :get =\> “/foos.json”, :protocol =\> “https” }.should route\_to(  
:controller =\> “foos”,  
:action =\> “index”,  
:format =\> “json”  
)  
end

describe “routing to foos” do  
it “routes /foos.json to foos#index” do  
{ :get =\> “/foos.json” }.should route\_to(  
:controller =\> “foos”,  
:action =\> “index”,  
:format =\> “json”,  
:protocol =\> “https”  
)  
end

Thanks in advance for any help.  
BP

---

<div class="post-metadata">

**Author:** ![parki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b782af/32.png) [@parki](https://www.ruby-forum.com/u/parki)\
**Post date:** [December 13, 2010, 3:06pm UTC](https://www.ruby-forum.com/t/rspec-2-rails-3-and-ssl-routes/200362/2 "2010-12-13T15:06:11Z")

</div>

Anybody?

---

<div class="post-metadata">

**Author:** ![parki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b782af/32.png) [@parki](https://www.ruby-forum.com/u/parki)\
**Post date:** [December 13, 2010, 3:41pm UTC](https://www.ruby-forum.com/t/rspec-2-rails-3-and-ssl-routes/200362/3 "2010-12-13T15:41:19Z")

</div>

On Dec 13, 2010, at 7:55 AM, Brian P. wrote:

> > ```
> > { :get => "/foos.json", :protocol => "https" }.should route_to(
> > :action => "index",
> > :format => "json",
> > :protocol => "https"
> > )
> > 
> > ```
> > 
> > end
> > 
> > Thanks in advance for any help.

There is an open issue in the Rails tracker about this [1].  
assert\_recognizes, to which “should route\_to” delegates, does not yet  
support constraints. Sadly, this means there is no good way to do this  
at the moment.

[1]

> **[\#5805 \[PATCH\] assert\_recognizes does not support constraints - Ruby on Rails...](https://rails.lighthouseapp.com/projects/8994/tickets/5805-assert_recognizes-does-not-support-constraints)**

for more info.

---

<div class="post-metadata">

**Author:** ![parki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b782af/32.png) [@parki](https://www.ruby-forum.com/u/parki)\
**Post date:** [December 13, 2010, 4:31pm UTC](https://www.ruby-forum.com/t/rspec-2-rails-3-and-ssl-routes/200362/4 "2010-12-13T16:31:40Z")

</div>

OK, cool. I’ll avoid banging my head against the wall in the mean  
time. 🙂

Thanks alot David.  
BP

---

<div class="post-metadata">

**Author:** ![parki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b782af/32.png) [@parki](https://www.ruby-forum.com/u/parki)\
**Post date:** [December 13, 2010, 6:22pm UTC](https://www.ruby-forum.com/t/rspec-2-rails-3-and-ssl-routes/200362/5 "2010-12-13T18:22:48Z")

</div>

Actually, Rails seems to correctly support _some_ routing constraints  
in tests (:format being one), but not others (:protocol being one).  
I’m coming up with a failing test which I’ll attach to that Rails  
ticket, but just noting it here as an FYI to others…

---

<div class="post-metadata">

**Author:** ![parki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b782af/32.png) [@parki](https://www.ruby-forum.com/u/parki)\
**Post date:** [June 4, 2013, 1:01pm UTC](https://www.ruby-forum.com/t/rspec-2-rails-3-and-ssl-routes/200362/6 "2013-06-04T13:01:48Z")

</div>

I too came across same situation (i.e., testing ssl request in rails  
with specs).  
Thinking there should be a solution.

Thanks,  
Aashish
