Skip to content

Instantly share code, notes, and snippets.

@michaelklishin
Created August 3, 2008 05:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michaelklishin/3797 to your computer and use it in GitHub Desktop.
Save michaelklishin/3797 to your computer and use it in GitHub Desktop.
Pending:
Merb::Controller#set_cookie respects cookie domain set in Merb::Config (hey, take care of me)
Merb::Controller#set_cookie overrides configured cookie domain with explicitly passed option (Not Yet Implemented)
Merb::Controller#set_cookie respects controller wide session cookie domain (Not Yet Implemented)
1)
'Merb::Controller._session_cookie_domain is set to Merb::Config[:session_cookie_domain] by default' FAILED
expected: "specs.merbivore.com",
got: nil (using ==)
/Users/antares/dev/opensource/merb/merb-core/spec/public/controller/cookies_spec.rb:9:
2)
'Merb::Controller._session_cookie_domain is inherited by subclasses unless overriden' FAILED
expected: "specs.merbivore.com",
got: nil (using ==)
/Users/antares/dev/opensource/merb/merb-core/spec/public/controller/cookies_spec.rb:18:
Finished in 0.108458 seconds
105 examples, 2 failures, 3 pending
module Merb::Test::Fixtures::Controllers
class Testing < Merb::Controller
self._template_root = File.dirname(__FILE__) / "views"
end
class CookiesController < Testing
def sets_cookie
"sets_cookie"
end
def sets_cookie_explicitly
"sets_cookie_explicitly"
end
def deletes_cookie
"deletes_cookie"
end
def deletes_cookie_explicitly
"deletes_cookie_explicitly"
end
end
class SubclassOfCookiesController < CookiesController
end
class OverridingSubclassOfCookiesController < CookiesController
self._session_cookie_domain = "subclassed.merbivore.com"
end
end
class Merb::Controller < Merb::AbstractController
class_inheritable_accessor :_hidden_actions, :_shown_actions
self._hidden_actions ||= []
self._shown_actions ||= []
class_inheritable_accessor :_subclasses, :_session_id_key, :_session_secret_key, :_session_expiry, :_session_cookie_domain
self._subclasses = Set.new
def self.subclasses_list() _subclasses end
self._session_secret_key = nil
self._session_id_key = Merb::Config[:session_id_key] || '_session_id'
self._session_expiry = Merb::Config[:session_expiry] || Merb::Const::WEEK * 2
self._session_cookie_domain = Merb::Config[:session_cookie_domain]
include Merb::ResponderMixin
include Merb::ControllerMixin
include Merb::AuthenticationMixin
attr_accessor :route
class << self
# ==== Parameters
# klass<Merb::Controller>::
# The Merb::Controller inheriting from the base class.
def inherited(klass)
_subclasses << klass.to_s
super
klass._template_root = Merb.dir_for(:view) unless self._template_root
end
require File.join(File.dirname(__FILE__), "spec_helper")
describe Merb::Controller, "._session_cookie_domain" do
before(:each) do
Merb::Config[:session_cookie_domain] = "specs.merbivore.com"
end
it 'is set to Merb::Config[:session_cookie_domain] by default' do
Merb::Controller._session_cookie_domain.should == "specs.merbivore.com"
Merb::Test::Fixtures::Controllers::CookiesController._session_cookie_domain.should == "specs.merbivore.com"
end
it "can be overriden for particular controller" do
Merb::Test::Fixtures::Controllers::OverridingSubclassOfCookiesController._session_cookie_domain.should == "subclassed.merbivore.com"
end
it 'is inherited by subclasses unless overriden' do
Merb::Test::Fixtures::Controllers::SubclassOfCookiesController._session_cookie_domain.should == "specs.merbivore.com"
end
end
describe Merb::Controller, "#set_cookie" do
before(:each) do
Merb::Config[:session_cookie_domain] = "specs.merbivore.com"
end
it 'respects cookie domain set in Merb::Config' do
pending "hey, take care of me"
controller = dispatch_to(CookiesController, :sets_cookie)
end
it 'overrides configured cookie domain with explicitly passed option'
it "respects controller wide session cookie domain"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment