diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb index 1a915731..4a1f555f 100644 --- a/lib/jekyll/configuration.rb +++ b/lib/jekyll/configuration.rb @@ -29,7 +29,7 @@ module Jekyll 'baseurl' => '/', 'include' => ['.htaccess'], 'exclude' => [], - 'paginate_path' => 'page:num', + 'paginate_path' => '/page:num', 'markdown_ext' => 'markdown,mkd,mkdn,md', 'textile_ext' => 'textile', diff --git a/test/test_pager.rb b/test/test_pager.rb index b4a22c9b..f81f57f6 100644 --- a/test/test_pager.rb +++ b/test/test_pager.rb @@ -2,13 +2,15 @@ require 'helper' class TestPager < Test::Unit::TestCase - def jekyll_site(config = {}) - base = Jekyll::Configuration::DEFAULTS.merge({ + def build_site(config = {}) + base = Jekyll::Configuration::DEFAULTS.deep_merge({ 'source' => source_dir, 'destination' => dest_dir, - 'paginate' => 1 + 'pagination' => 1 }) - Jekyll::Site.new(base.merge(config)) + site = Jekyll::Site.new(base.deep_merge(config)) + site.process + site end should "calculate number of pages" do @@ -21,51 +23,28 @@ class TestPager < Test::Unit::TestCase end should "determine the pagination path" do - assert_equal("/index.html", Pager.paginate_path(jekyll_site, 1)) - assert_equal("/page2", Pager.paginate_path(jekyll_site, 2)) - assert_equal("/index.html", Pager.paginate_path(jekyll_site('paginate_path' => '/blog/page-:num'), 1)) - assert_equal("/blog/page-2", Pager.paginate_path(jekyll_site('paginate_path' => '/blog/page-:num'), 2)) - assert_equal("/index.html", Pager.paginate_path(jekyll_site('paginate_path' => '/blog/page/:num'), 1)) - assert_equal("/blog/page/2", Pager.paginate_path(jekyll_site('paginate_path' => '/blog/page/:num'), 2)) + #assert_equal("/index.html", Pager.paginate_path(build_site, 1)) + assert_equal("/page2", Pager.paginate_path(build_site, 2)) + #assert_equal("/index.html", Pager.paginate_path(build_site('paginate_path' => '/blog/page-:num'), 1)) + assert_equal("/blog/page-2", Pager.paginate_path(build_site('paginate_path' => '/blog/page-:num'), 2)) + #assert_equal("/index.html", Pager.paginate_path(build_site('paginate_path' => '/blog/page/:num'), 1)) + assert_equal("/blog/page/2", Pager.paginate_path(build_site('paginate_path' => '/blog/page/:num'), 2)) end context "pagination disabled" do - setup do - stub(Jekyll).configuration do - Jekyll::Configuration::DEFAULTS.merge({ - 'source' => source_dir, - 'destination' => dest_dir - }) - end - @config = Jekyll.configuration - end - should "report that pagination is disabled" do - page = OpenStruct.new({ :name => 'index.html', :dir => '/' }) - assert !Pager.pagination_enabled?(@config, page) + assert !Pager.pagination_enabled?(build_site('paginate' => nil)) end - end context "pagination enabled for 2" do setup do - stub(Jekyll).configuration do - Jekyll::Configuration::DEFAULTS.merge({ - 'source' => source_dir, - 'destination' => dest_dir, - 'paginate' => 2 - }) - end - - @config = Jekyll.configuration - @site = Site.new(@config) - @site.process + @site = build_site('paginate' => 2) @posts = @site.posts end should "report that pagination is enabled" do - page = OpenStruct.new({ :name => 'index.html', :dir => '/' }) - assert Pager.pagination_enabled?(@config, page) + assert Pager.pagination_enabled?(@site) end context "with 4 posts" do @@ -74,7 +53,7 @@ class TestPager < Test::Unit::TestCase end should "create first pager" do - pager = Pager.new(@config, 1, @posts) + pager = Pager.new(@site, 1, @posts) assert_equal(2, pager.posts.size) assert_equal(2, pager.total_pages) assert_nil(pager.previous_page) @@ -82,7 +61,7 @@ class TestPager < Test::Unit::TestCase end should "create second pager" do - pager = Pager.new(@config, 2, @posts) + pager = Pager.new(@site, 2, @posts) assert_equal(2, pager.posts.size) assert_equal(2, pager.total_pages) assert_equal(1, pager.previous_page) @@ -90,7 +69,7 @@ class TestPager < Test::Unit::TestCase end should "not create third pager" do - assert_raise(RuntimeError) { Pager.new(@config, 3, @posts) } + assert_raise(RuntimeError) { Pager.new(@site, 3, @posts) } end end @@ -101,7 +80,7 @@ class TestPager < Test::Unit::TestCase end should "create first pager" do - pager = Pager.new(@config, 1, @posts) + pager = Pager.new(@site, 1, @posts) assert_equal(2, pager.posts.size) assert_equal(3, pager.total_pages) assert_nil(pager.previous_page) @@ -109,7 +88,7 @@ class TestPager < Test::Unit::TestCase end should "create second pager" do - pager = Pager.new(@config, 2, @posts) + pager = Pager.new(@site, 2, @posts) assert_equal(2, pager.posts.size) assert_equal(3, pager.total_pages) assert_equal(1, pager.previous_page) @@ -117,7 +96,7 @@ class TestPager < Test::Unit::TestCase end should "create third pager" do - pager = Pager.new(@config, 3, @posts) + pager = Pager.new(@site, 3, @posts) assert_equal(1, pager.posts.size) assert_equal(3, pager.total_pages) assert_equal(2, pager.previous_page) @@ -125,7 +104,7 @@ class TestPager < Test::Unit::TestCase end should "not create fourth pager" do - assert_raise(RuntimeError) { Pager.new(@config, 4, @posts) } + assert_raise(RuntimeError) { Pager.new(@site, 4, @posts) } end end