describe DesignsController, "#index project sort" do
before(:each) do
login_with(:view_own_designs)
end
describe "with project sort parameter" do
before(:each) do
@cookies = {}
controller.stub!(:cookies).and_return(@cookies)
end
def get_index
get :index, :project_sort => "name"
end
it "sets a cookie with the value and new expiration date" do
get_index
@cookies[:project_sort][:value].should == "name"
@cookies[:project_sort][:expires].beginning_of_day.should == 1.year.from_now.beginning_of_day
end
it "captures the value for the view" do
get_index
assigns[:project_sort].should == "name"
end
end
describe "without project sort parameter" do
def get_index
get :index
end
describe "without existing cookie" do
before(:each) do
@cookies = {}
controller.stub!(:cookies).and_return(@cookies)
end
it "sets a cookie with the default value and new expiration date" do
get_index
@cookies[:project_sort][:value].should == "created_at"
@cookies[:project_sort][:expires].beginning_of_day.should == 1.year.from_now.beginning_of_day
end
it "captures the value for the view" do
get_index
assigns[:project_sort].should == "created_at"
end
end
describe "with existing cookie" do
before(:each) do
@cookies = { :project_sort => "name" }
controller.stub!(:cookies).and_return(@cookies)
end
it "resets the cookie with the value and new expiration date" do
get_index
@cookies[:project_sort][:value].should == "name"
@cookies[:project_sort][:expires].beginning_of_day.should == 1.year.from_now.beginning_of_day
end
it "captures the value for the view" do
get_index
assigns[:project_sort].should == "name"
end
end
end
end