1
0
Fork 0
mirror of https://github.com/kaminari/kaminari.git synced 2022-11-09 13:44:37 -05:00
kaminari--kaminari/spec/helpers/helpers_spec.rb
2016-06-22 19:17:20 +09:00

160 lines
5.6 KiB
Ruby

require 'spec_helper'
include Kaminari::Helpers
describe 'Kaminari::Helpers::Paginator' do
let :template do
stub(r = Object.new) do
render.with_any_args
params { {} }
options { {} }
url_for {|h| "/foo?page=#{h[:page]}"}
link_to { "<a href='#'>link</a>" }
output_buffer { defined?(ActionView) ? ::ActionView::OutputBuffer.new : ::ActiveSupport::SafeBuffer.new }
end
r
end
describe "view helper methods delegated to template" do
before do
@paginator = Paginator.new(template, :params => {})
end
subject { @paginator.link_to("link", "#") }
it { should == "<a href='#'>link</a>" }
end
describe '#params' do
before do
@paginator = Paginator.new(template, :params => {:controller => 'foo', :action => 'bar'})
end
subject { @paginator.page_tag(template).instance_variable_get('@params') }
it { should == {'controller' => 'foo', 'action' => 'bar'} }
context "when params has form params" do
before do
stub(template).params do
{
:authenticity_token => "token",
:commit => "submit",
:utf8 => "true",
:_method => "patch"
}
end
end
it { should == {'controller' => 'foo', 'action' => 'bar'} }
end
end
describe '#param_name' do
before do
@paginator = Paginator.new(template, :param_name => :pagina)
end
subject { @paginator.page_tag(template).instance_variable_get('@param_name') }
it { should == :pagina }
end
#TODO test somehow...
# describe '#tagify_links' do
# def tags_with(options)
# PaginationRenderer.new(template, options).tagify_links
# end
# context '1 page in total' do
# subject { tags_with :total_pages => 1, :current_page => 1 }
# it { should have(0).tags }
# end
# context '10 pages in total' do
# context 'first page' do
# subject { tags_with :total_pages => 10, :current_page => 1 }
# it { should_not contain_tag PrevLink }
# it { should contain_tag PrevSpan }
# it { should contain_tag CurrentPage }
# it { should_not contain_tag FirstPageLink }
# it { should contain_tag LastPageLink }
# it { should contain_tag PageLink }
# it { should contain_tag NextLink }
# it { should_not contain_tag NextSpan }
# it { should contain_tag TruncatedSpan }
# end
# context 'second page' do
# subject { tags_with :total_pages => 10, :current_page => 2 }
# it { should contain_tag PrevLink }
# it { should_not contain_tag PrevSpan }
# it { should contain_tag CurrentPage }
# it { should contain_tag FirstPageLink }
# it { should contain_tag LastPageLink }
# it { should contain_tag PageLink }
# it { should contain_tag NextLink }
# it { should_not contain_tag NextSpan }
# it { should contain_tag TruncatedSpan }
# end
# context 'third page' do
# subject { tags_with :total_pages => 10, :current_page => 3 }
# it { should contain_tag PrevLink }
# it { should_not contain_tag PrevSpan }
# it { should contain_tag CurrentPage }
# it { should contain_tag FirstPageLink }
# it { should contain_tag LastPageLink }
# it { should contain_tag PageLink }
# it { should contain_tag NextLink }
# it { should_not contain_tag NextSpan }
# it { should contain_tag TruncatedSpan }
# end
# context 'fourth page(no truncation)' do
# subject { tags_with :total_pages => 10, :current_page => 4 }
# it { should contain_tag PrevLink }
# it { should_not contain_tag PrevSpan }
# it { should contain_tag CurrentPage }
# it { should contain_tag FirstPageLink }
# it { should contain_tag LastPageLink }
# it { should contain_tag PageLink }
# it { should contain_tag NextLink }
# it { should_not contain_tag NextSpan }
# it { should_not contain_tag TruncatedSpan }
# end
# context 'seventh page(no truncation)' do
# subject { tags_with :total_pages => 10, :current_page => 7 }
# it { should contain_tag PrevLink }
# it { should_not contain_tag PrevSpan }
# it { should contain_tag CurrentPage }
# it { should contain_tag FirstPageLink }
# it { should contain_tag LastPageLink }
# it { should contain_tag PageLink }
# it { should contain_tag NextLink }
# it { should_not contain_tag NextSpan }
# it { should_not contain_tag TruncatedSpan }
# end
# context 'eighth page' do
# subject { tags_with :total_pages => 10, :current_page => 8 }
# it { should contain_tag PrevLink }
# it { should_not contain_tag PrevSpan }
# it { should contain_tag CurrentPage }
# it { should contain_tag FirstPageLink }
# it { should contain_tag LastPageLink }
# it { should contain_tag PageLink }
# it { should contain_tag NextLink }
# it { should_not contain_tag NextSpan }
# it { should contain_tag TruncatedSpan }
# end
# context 'last page' do
# subject { tags_with :total_pages => 10, :current_page => 10 }
# it { should contain_tag PrevLink }
# it { should_not contain_tag PrevSpan }
# it { should contain_tag CurrentPage }
# it { should contain_tag FirstPageLink }
# it { should_not contain_tag LastPageLink }
# it { should contain_tag PageLink }
# it { should_not contain_tag NextLink }
# it { should contain_tag NextSpan }
# it { should contain_tag TruncatedSpan }
# end
# end
# end
end