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

Ajax

开发平台:

Others

  1. require File.dirname(__FILE__) + '/../../spec_helper'
  2. with_each_theme do |theme, view_path|
  3.   describe "#{view_path}/articles/index" do
  4.     before(:each) do
  5.       @controller.view_paths.unshift(view_path) if theme
  6.       # we only want to test pagination links
  7.       ActionView::Base.class_eval do
  8.         def article_links(article)
  9.           ""
  10.         end
  11.         alias :category_links :article_links
  12.         alias :tag_links :article_links
  13.       end
  14.     end
  15.     context "normally" do
  16.       before(:each) do
  17.         @controller.action_name = "index"
  18.         assigns[:articles] = Article.paginate(:all, :page => 2, :per_page => 4)
  19.         render "articles/index"
  20.       end
  21.       it "should not have pagination link to page 2 without q param" do
  22.         response.should_not have_tag("a[href=?]", "/page/2")
  23.       end
  24.       it "should have pagination link to page 1 without q param if on page 2" do
  25.         response.should have_tag("a[href=?]", "/page/1")
  26.       end
  27.       it "should not have too many paragraph marks around body" do
  28.         response.should have_tag("p", "body")
  29.         response.should_not have_tag("p>p", "body")
  30.       end
  31.       it "should not have div nested inside p" do
  32. response.should_not have_tag("p>div")
  33.       end
  34.     end
  35.     # *notice
  36.     # this assumptions has "&", i don`t know why, but we want only to test the q= param in link and have separated this test from controller
  37.     context "when search" do
  38.       before(:each) do
  39.         @controller.action_name = "search"
  40.         params[:q]           = "body"
  41.         params[:page]        = 2
  42.         params[:action]      = 'search'
  43.         assigns[:articles] = Blog.default.articles_matching(params[:q], :page => 2, :per_page => 4)
  44.         render "articles/index"
  45.       end
  46.       it "should not have pagination link to page 2 with q param" do
  47.         response.should_not have_tag("a[href=?]", "/search/body?page=2") # *notice
  48.       end
  49.       it "should have pagination link to page 1 with q param if on page 2" do
  50.         response.should have_tag("a[href=?]", "/search/body?page=1") # *notice
  51.       end
  52.     end
  53.   end
  54. end