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

Ajax

开发平台:

Others

  1. require File.dirname(__FILE__) + '/../spec_helper'
  2. describe CategoriesController, "/index" do
  3.   def do_get
  4.     get 'index'
  5.   end
  6.   it "should be successful" do
  7.     do_get
  8.     response.should be_success
  9.   end
  10.   it "should render :index"
  11.   if false
  12.     controller.stub!(:template_exists?) 
  13.       .and_return(true)
  14.     do_get
  15.     response.should render_template(:index)
  16.   end
  17.   it "should fall back to articles/groupings" do
  18.     controller.should_receive(:template_exists?) 
  19.       .with() 
  20.       .and_return(false)
  21.     do_get
  22.     response.should render_template('articles/groupings')
  23.   end
  24. end
  25. describe CategoriesController, '/articles/category/personal' do
  26.   def do_get
  27.     get 'show', :id => 'personal'
  28.   end
  29.   it 'should be successful' do
  30.     do_get()
  31.     response.should be_success
  32.   end
  33.   it 'should raise ActiveRecord::RecordNotFound' do
  34.     Category.should_receive(:find_by_permalink) 
  35.       .with('personal').and_raise(ActiveRecord::RecordNotFound)
  36.     lambda do
  37.       do_get
  38.     end.should raise_error(ActiveRecord::RecordNotFound)
  39.   end
  40.   it 'should render :show by default'
  41.   if false
  42.     controller.stub!(:template_exists?) 
  43.       .and_return(true)
  44.     do_get
  45.     response.should render_template(:show)
  46.   end
  47.   it 'should fall back to rendering articles/index' do
  48.     controller.should_receive(:template_exists?) 
  49.       .with() 
  50.       .and_raise(ActiveRecord::RecordNotFound)
  51.     lambda do
  52.       do_get
  53.     end.should raise_error(ActiveRecord::RecordNotFound)
  54.   end
  55.   it 'should show only published articles' do
  56.     c = categories(:personal)
  57.     c.articles.size.should == 4
  58.     c.published_articles.size.should == 3
  59.     get 'show', :id => 'personal'
  60.     response.should be_success
  61.     assigns[:articles].size.should == 3
  62.   end
  63.   it 'should set the page title to "Category Personal"' do
  64.     do_get
  65.     assigns[:page_title].should == 'Category Personal, everything about Personal'
  66.   end
  67.   it 'should render the atom feed for /articles/category/personal.atom' do
  68.     get 'show', :id => 'personal', :format => 'atom'
  69.     response.should render_template('articles/_atom_feed')
  70.   end
  71.   it 'should render the rss feed for /articles/category/personal.rss' do
  72.     get 'show', :id => 'personal', :format => 'rss'
  73.     response.should render_template('articles/_rss20_feed')
  74.   end
  75. end
  76. describe CategoriesController, 'empty category life-on-mars' do
  77.   it 'should redirect to home when the category is empty' do
  78.     get 'show', :id => 'life-on-mars'
  79.     response.status.should == "301 Moved Permanently"
  80.     response.should redirect_to(Blog.default.base_url)
  81.   end
  82. end
  83. ## Old tests that still need conversion
  84. #   it "test_autodiscovery_category" do
  85. #     get :category, :id => 'hardware'
  86. #     assert_response :success
  87. #     assert_select 'link[title=RSS]' do
  88. #       assert_select '[rel=alternate]'
  89. #       assert_select '[type=application/rss+xml]'
  90. #       assert_select '[href=http://test.host/articles/category/hardware.rss]'
  91. #     end
  92. #     assert_select 'link[title=Atom]' do
  93. #       assert_select '[rel=alternate]'
  94. #       assert_select '[type=application/atom+xml]'
  95. #       assert_select '[href=http://test.host/articles/category/hardware.atom]'
  96. #     end
  97. #   end