page_spec.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:2k
源码类别:

Ajax

开发平台:

Others

  1. require File.dirname(__FILE__) + '/../spec_helper'
  2. describe 'Given the fixture :first_page' do
  3.   before(:each) do
  4.     @page = contents(:first_page)
  5.   end
  6.   it '#permalink_url should be: http://myblog.net/pages/page_one' do
  7.     @page.permalink_url.should == 'http://myblog.net/pages/page_one'
  8.   end
  9.   it '#edit_url should be: http://myblog.net/admin/pages/edit/<page_id>' do
  10.     @page.edit_url.should == "http://myblog.net/admin/pages/edit/#{@page.id}"
  11.   end
  12.   it '#delete_url should work too' do
  13.     @page.delete_url.should == "http://myblog.net/admin/pages/destroy/#{@page.id}"
  14.   end
  15.   it 'Pages cannot have the same name' do
  16.     Page.new(:name => @page.name, :body => @page.body, :title => @page.title).should_not be_valid
  17.     Page.new(:name => @page.name, :body => 'body', :title => 'title').should_not be_valid
  18.   end
  19. end
  20. class Hash
  21.   def except(*keys)
  22.     self.reject { |k,v| keys.include? k.to_sym }
  23.   end
  24.   def only(*keys)
  25.     self.dup.reject { |k, v| !keys.include? k.to_sym }
  26.   end
  27. end
  28. describe "ValidPageHelper", :shared => true do
  29.   def valid_attributes
  30.     { :name => 'name', :title => 'title', :body => 'body'}
  31.   end
  32. end
  33. describe 'Given no pages' do
  34.   it_should_behave_like "ValidPageHelper"
  35.   before(:each) do
  36.     Page.delete_all
  37.     @page = Page.new
  38.   end
  39.   it 'An empty page is invalid' do
  40.     @page.should_not be_valid
  41.   end
  42.   it 'A page is valid with name, title and body' do
  43.     @page.attributes = valid_attributes
  44.     @page.should be_valid
  45.   end
  46.   it 'A page is invalid without a name' do
  47.     @page.attributes = valid_attributes.except(:name)
  48.     @page.should_not be_valid
  49.     @page.errors.on(:name).should == "can't be blank"
  50.     @page.name = 'somename'
  51.     @page.should be_valid
  52.   end
  53.   it 'A page is invalid without a title' do
  54.     @page.attributes = valid_attributes.except(:title)
  55.     @page.should_not be_valid
  56.     @page.errors.on(:title).should == "can't be blank"
  57.     @page.title = 'sometitle'
  58.     @page.should be_valid
  59.   end
  60.   it 'A page is invalid without a body' do
  61.     @page.attributes = valid_attributes.except(:body)
  62.     @page.should_not be_valid
  63.     @page.errors.on(:body).should == "can't be blank"
  64.     @page.body = 'somebody'
  65.     @page.should be_valid
  66.   end
  67. end
  68. describe 'Given a valid page' do
  69.   it_should_behave_like "ValidPageHelper"
  70.   it 'default filter should be fetched from the blog' do
  71.     @page = Page.new()
  72.     @page.default_text_filter.name.should == Blog.default.text_filter
  73.   end
  74. end