0
@@ -3,7 +3,9 @@ require File.dirname(__FILE__) + "/../spec_helper"
0
Page.create(:title => "hee haw", :body => "moop", :site_id => 1)
0
+ Page.create(:title => "to be delete", :body => "moop", :site_id => 1)
0
describe PagesController, " with site that requires login, a user not logged in" do
0
fixtures :sites, :pages, :page_versions, :users
0
@@ -12,16 +14,68 @@ describe PagesController, " with site that requires login, a user not logged in"
0
controller.stub!(:current_user).and_return :false
0
+ it "show all pages" do
0
+ response.should be_success
0
+ response.should render_template("index")
0
+ it "shows page if it exists" do
0
+ get :show, :id => page.permalink
0
+ response.should be_success
0
+ response.should render_template("show")
0
+ it "redirect to session/new if page is a private page" do
0
+ page.private_page = true
0
+ get :show, :id => page.permalink
0
+ response.should_not be_success
0
+ response.should redirect_to("session/new")
0
+ it "redirect to page/new (and it will in turn redirect to session/new) if showing a page that does not exist" do
0
+ get :show, :id => "unavailable"
0
+ response.should redirect_to("pages/new")
0
it "does not render 'new'" do
0
response.should redirect_to('session/new')
0
- it "
renders 'revision'" do
0
+ it "
does not render 'diff'" do
0
+ get :diff, :id => page.permalink, :v1 => page.version, :v2 => page.version - 1
0
+ response.should redirect_to('session/new')
0
+ it "does not render 'revisions'" do
0
+ get :revisions, :id => page.permalink
0
+ response.should redirect_to('session/new')
0
+ it "does not render 'edit'" do
0
+ get :edit, :id => page.permalink
0
+ response.should redirect_to('session/new')
0
+ it "renders 'revision'" do
0
+ page.body = "moep MEEPp"
0
get :revision, :id => page.permalink, :version => page.version - 1
0
response.should be_success
0
response.should render_template("show")
0
@@ -65,6 +119,15 @@ describe PagesController, " with site that requires login, a user not logged in"
0
response.should redirect_to('session/new')
0
end.should_not change(Page, :count)
0
+ it "can not delete a page" do
0
+ page = create_delete_page
0
+ delete :destroy, :id => page.permalink
0
+ response.should_not be_success
0
+ response.should redirect_to('session/new')
0
+ end.should_not change(Page, :count)
0
describe PagesController, " with site that does not require login, a user not logged in" do
0
@@ -79,11 +142,60 @@ describe PagesController, " with site that does not require login, a user not lo
0
controller.stub!(:current_user).and_return :false
0
+ it "show all pages" do
0
+ response.should be_success
0
+ response.should render_template("index")
0
+ it "shows page if it exists" do
0
+ get :show, :id => page.permalink
0
+ response.should be_success
0
+ response.should render_template("show")
0
+ it "shows new page if it does not exist" do
0
+ get :show, :id => "unavailable"
0
+ response.should redirect_to("pages/new")
0
response.should be_success
0
+ get :diff, :id => page.permalink, :v1 => page.version, :v2 => page.version - 1
0
+ assigns(:v1).should == page.versions.find_by_version(params[:v1])
0
+ assigns(:v2).should == page.versions.find_by_version(params[:v2])
0
+ response.should be_success
0
+ response.should render_template("diff")
0
+ it "shows 'revisions'" do
0
+ get :revisions, :id => page.permalink
0
+ assigns(:revisions).should == page.versions
0
+ response.should be_success
0
+ response.should render_template("revisions")
0
+ get :edit, :id => page.permalink
0
+ assigns(:page).should == page
0
+ response.should be_success
0
+ response.should render_template("edit")
0
it "can rollback a page" do
0
@@ -113,6 +225,16 @@ describe PagesController, " with site that does not require login, a user not lo
0
response.should redirect_to('o-hai')
0
end.should change(Page, :count)
0
+ it "cannot delete a page" do
0
+ page = create_delete_page
0
+ delete :destroy, :id => page.permalink
0
+ response.should_not be_success
0
+ response.should redirect_to('session/new')
0
+ end.should_not change(Page, :count)
0
describe PagesController, "a user logged in as normal user" do
0
@@ -125,12 +247,40 @@ describe PagesController, "a user logged in as normal user" do
0
controller.stub!(:current_user).and_return users(:jeremy)
0
+ it "show all pages" do
0
+ response.should be_success
0
+ response.should render_template("index")
0
+ it "shows page if it exists" do
0
+ get :show, :id => page.permalink
0
+ response.should be_success
0
+ response.should render_template("show")
0
+ it "shows new page if it does not exist" do
0
+ get :show, :id => "unavailable"
0
+ response.should redirect_to("pages/new")
0
response.should be_success
0
response.should render_template("new")
0
+ it "shows 'revisions'" do
0
+ get :revisions, :id => page.permalink
0
+ assigns(:revisions).should == page.versions
0
+ response.should be_success
0
+ response.should render_template("revisions")
0
it "renders 'revision'" do
0
@@ -141,6 +291,25 @@ describe PagesController, "a user logged in as normal user" do
0
response.should be_success
0
response.should render_template("show")
0
+ get :edit, :id => page.permalink
0
+ assigns(:page).should == page
0
+ response.should be_success
0
+ response.should render_template("edit")
0
+ get :diff, :id => page.permalink, :v1 => page.version, :v2 => page.version - 1
0
+ assigns(:v1).should == page.versions.find_by_version(params[:v1])
0
+ assigns(:v2).should == page.versions.find_by_version(params[:v2])
0
+ response.should be_success
0
+ response.should render_template("diff")
0
it "searches for pages" do
0
get :search, :query => "home"
0
@@ -181,6 +350,15 @@ describe PagesController, "a user logged in as normal user" do
0
get :lock, :id => 'hai'
0
response.should redirect_to('pages/home')
0
+ it "can delete a page" do
0
+ page = create_delete_page
0
+ page.title = "to be delete"
0
+ delete :destroy, :id => page.permalink
0
+ response.should redirect_to('pages')
0
+ end.should change(Page, :count)
0
describe PagesController, "a user logged in as admin" do
0
@@ -191,12 +369,48 @@ describe PagesController, "a user logged in as admin" do
0
controller.stub!(:logged_in?).and_return true
0
controller.stub!(:current_user).and_return users(:admin)
0
+ it "show all pages" do
0
+ response.should be_success
0
+ response.should render_template("index")
0
+ it "shows page if it exists" do
0
+ get :show, :id => page.permalink
0
+ response.should be_success
0
+ response.should render_template("show")
0
+ it "shows new page if it does not exist" do
0
+ get :show, :id => "unavailable"
0
+ response.should redirect_to("pages/new")
0
response.should be_success
0
response.should render_template("new")
0
+ it "shows 'revisions'" do
0
+ get :revisions, :id => page.permalink
0
+ assigns(:revisions).should == page.versions
0
+ response.should be_success
0
+ response.should render_template("revisions")
0
+ get :edit, :id => page.permalink
0
+ assigns(:page).should == page
0
+ response.should be_success
0
+ response.should render_template("edit")
0
it "renders 'revision'" do
0
@@ -208,6 +422,17 @@ describe PagesController, "a user logged in as admin" do
0
response.should render_template("show")
0
+ get :diff, :id => page.permalink, :v1 => page.version, :v2 => page.version - 1
0
+ assigns(:v1).should == page.versions.find_by_version(params[:v1])
0
+ assigns(:v2).should == page.versions.find_by_version(params[:v2])
0
+ response.should be_success
0
+ response.should render_template("diff")
0
it "searches for pages" do
0
get :search, :query => "home"
0
response.should be_success
0
@@ -256,5 +481,14 @@ describe PagesController, "a user logged in as admin" do
0
page.should_not be_locked
0
+ it "can delete a page" do
0
+ page = create_delete_page
0
+ page.title = "to be delete"
0
+ delete :destroy, :id => page.permalink
0
+ response.should redirect_to('pages')
0
+ end.should change(Page, :count)