https://github.com/jekyll/jekyll
Raw File
Tip revision: f1c8e388e406e2cc022354562d8bd683d1262072 authored by Nick Quaranto on 24 June 2009, 21:51:09 UTC
Updating history and bumping version to 0.5.2
Tip revision: f1c8e38
test_pager.rb
require File.dirname(__FILE__) + '/helper'

class TestPager < Test::Unit::TestCase
  context "pagination enabled" do
    setup do
      stub(Jekyll).configuration do
        Jekyll::DEFAULTS.merge({
          'source'      => source_dir, 
          'destination' => dest_dir,
          'paginate'    => 2
        })
      end

      @config = Jekyll.configuration
      @site = Site.new(@config)
      @posts = @site.read_posts('')
    end

    should "calculate number of pages" do
      assert_equal(2, Pager.calculate_pages(@posts, @config['paginate']))
    end

    should "create first pager" do
      pager = Pager.new(@config, 1, @posts)
      assert_equal(@config['paginate'].to_i, pager.posts.size)
      assert_equal(2, pager.total_pages)
      assert_nil(pager.previous_page)
      assert_equal(2, pager.next_page)
    end
  
    should "create second pager" do
      pager = Pager.new(@config, 2, @posts)
      assert_equal(@posts.size - @config['paginate'].to_i, pager.posts.size)
      assert_equal(2, pager.total_pages)
      assert_equal(1, pager.previous_page)
      assert_nil(pager.next_page)
    end
    
    should "not create third pager" do
      assert_raise(RuntimeError) { Pager.new(@config, 3, @posts) }
    end
    
    should "report that pagination is enabled" do
      assert Pager.pagination_enabled?(@config, 'index.html')
    end
  end
end
back to top