Rubocop: test/test_page.rb
This commit is contained in:
parent
7537b01e74
commit
474fc0a9a8
|
@ -1,15 +1,18 @@
|
|||
require 'helper'
|
||||
require "helper"
|
||||
|
||||
class TestPage < JekyllUnitTest
|
||||
def setup_page(*args)
|
||||
dir, file = args
|
||||
dir, file = ['', dir] if file.nil?
|
||||
if file.nil?
|
||||
file = dir
|
||||
dir = ""
|
||||
end
|
||||
@page = Page.new(@site, source_dir, dir, file)
|
||||
end
|
||||
|
||||
def do_render(page)
|
||||
layouts = {
|
||||
"default" => Layout.new(@site, source_dir('_layouts'), "simple.html")
|
||||
"default" => Layout.new(@site, source_dir("_layouts"), "simple.html")
|
||||
}
|
||||
page.render(layouts, @site.site_payload)
|
||||
end
|
||||
|
@ -18,15 +21,15 @@ class TestPage < JekyllUnitTest
|
|||
setup do
|
||||
clear_dest
|
||||
@site = Site.new(Jekyll.configuration({
|
||||
"source" => source_dir,
|
||||
"destination" => dest_dir,
|
||||
"source" => source_dir,
|
||||
"destination" => dest_dir,
|
||||
"skip_config_files" => true
|
||||
}))
|
||||
end
|
||||
|
||||
context "processing pages" do
|
||||
should "create url based on filename" do
|
||||
@page = setup_page('contacts.html')
|
||||
@page = setup_page("contacts.html")
|
||||
assert_equal "/contacts.html", @page.url
|
||||
end
|
||||
|
||||
|
@ -36,29 +39,29 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "create url with non-alphabetic characters" do
|
||||
@page = setup_page('+', '%# +.md')
|
||||
@page = setup_page("+", '%# +.md')
|
||||
assert_equal "/+/%25%23%20+.html", @page.url
|
||||
end
|
||||
|
||||
context "in a directory hierarchy" do
|
||||
should "create url based on filename" do
|
||||
@page = setup_page('/contacts', 'bar.html')
|
||||
@page = setup_page("/contacts", "bar.html")
|
||||
assert_equal "/contacts/bar.html", @page.url
|
||||
end
|
||||
|
||||
should "create index url based on filename" do
|
||||
@page = setup_page('/contacts', 'index.html')
|
||||
@page = setup_page("/contacts", "index.html")
|
||||
assert_equal "/contacts/", @page.url
|
||||
end
|
||||
end
|
||||
|
||||
should "deal properly with extensions" do
|
||||
@page = setup_page('deal.with.dots.html')
|
||||
@page = setup_page("deal.with.dots.html")
|
||||
assert_equal ".html", @page.ext
|
||||
end
|
||||
|
||||
should "deal properly with non-html extensions" do
|
||||
@page = setup_page('dynamic_page.php')
|
||||
@page = setup_page("dynamic_page.php")
|
||||
@dest_file = dest_dir("dynamic_page.php")
|
||||
assert_equal ".php", @page.ext
|
||||
assert_equal "dynamic_page", @page.basename
|
||||
|
@ -67,7 +70,7 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "deal properly with dots" do
|
||||
@page = setup_page('deal.with.dots.html')
|
||||
@page = setup_page("deal.with.dots.html")
|
||||
@dest_file = dest_dir("deal.with.dots.html")
|
||||
|
||||
assert_equal "deal.with.dots", @page.basename
|
||||
|
@ -75,19 +78,19 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "make properties accessible through #[]" do
|
||||
page = setup_page('properties.html')
|
||||
page = setup_page("properties.html")
|
||||
attrs = {
|
||||
content: "All the properties.\n",
|
||||
dir: "/properties/",
|
||||
excerpt: nil,
|
||||
foo: 'bar',
|
||||
layout: 'default',
|
||||
name: "properties.html",
|
||||
path: "properties.html",
|
||||
permalink: '/properties/',
|
||||
published: nil,
|
||||
title: 'Properties Page',
|
||||
url: "/properties/"
|
||||
:content => "All the properties.\n",
|
||||
:dir => "/properties/",
|
||||
:excerpt => nil,
|
||||
:foo => "bar",
|
||||
:layout => "default",
|
||||
:name => "properties.html",
|
||||
:path => "properties.html",
|
||||
:permalink => "/properties/",
|
||||
:published => nil,
|
||||
:title => "Properties Page",
|
||||
:url => "/properties/"
|
||||
}
|
||||
|
||||
attrs.each do |attr, val|
|
||||
|
@ -103,38 +106,38 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "return dir, url, and destination correctly" do
|
||||
@page = setup_page('contacts.html')
|
||||
@page = setup_page("contacts.html")
|
||||
@dest_file = dest_dir("contacts/index.html")
|
||||
|
||||
assert_equal '/contacts/', @page.dir
|
||||
assert_equal '/contacts/', @page.url
|
||||
assert_equal "/contacts/", @page.dir
|
||||
assert_equal "/contacts/", @page.url
|
||||
assert_equal @dest_file, @page.destination(dest_dir)
|
||||
end
|
||||
|
||||
should "return dir correctly for index page" do
|
||||
@page = setup_page('index.html')
|
||||
assert_equal '/', @page.dir
|
||||
@page = setup_page("index.html")
|
||||
assert_equal "/", @page.dir
|
||||
end
|
||||
|
||||
context "in a directory hierarchy" do
|
||||
should "create url based on filename" do
|
||||
@page = setup_page('/contacts', 'bar.html')
|
||||
@page = setup_page("/contacts", "bar.html")
|
||||
assert_equal "/contacts/bar/", @page.url
|
||||
end
|
||||
|
||||
should "create index url based on filename" do
|
||||
@page = setup_page('/contacts', 'index.html')
|
||||
@page = setup_page("/contacts", "index.html")
|
||||
assert_equal "/contacts/", @page.url
|
||||
end
|
||||
|
||||
should "return dir correctly" do
|
||||
@page = setup_page('/contacts', 'bar.html')
|
||||
assert_equal '/contacts/bar/', @page.dir
|
||||
@page = setup_page("/contacts", "bar.html")
|
||||
assert_equal "/contacts/bar/", @page.dir
|
||||
end
|
||||
|
||||
should "return dir correctly for index page" do
|
||||
@page = setup_page('/contacts', 'index.html')
|
||||
assert_equal '/contacts/', @page.dir
|
||||
@page = setup_page("/contacts", "index.html")
|
||||
assert_equal "/contacts/", @page.dir
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -145,16 +148,16 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "return url and destination correctly" do
|
||||
@page = setup_page('contacts.html')
|
||||
@page = setup_page("contacts.html")
|
||||
@dest_file = dest_dir("contacts.html")
|
||||
assert_equal '/contacts.html', @page.url
|
||||
assert_equal "/contacts.html", @page.url
|
||||
assert_equal @dest_file, @page.destination(dest_dir)
|
||||
end
|
||||
|
||||
should "return dir correctly" do
|
||||
assert_equal '/', setup_page('contacts.html').dir
|
||||
assert_equal '/contacts/', setup_page('contacts/bar.html').dir
|
||||
assert_equal '/contacts/', setup_page('contacts/index.html').dir
|
||||
assert_equal "/", setup_page("contacts.html").dir
|
||||
assert_equal "/contacts/", setup_page("contacts/bar.html").dir
|
||||
assert_equal "/contacts/", setup_page("contacts/index.html").dir
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -164,9 +167,9 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "return url and destination correctly" do
|
||||
@page = setup_page('contacts.html')
|
||||
@page = setup_page("contacts.html")
|
||||
@dest_file = dest_dir("contacts/index.html")
|
||||
assert_equal '/contacts/', @page.url
|
||||
assert_equal "/contacts/", @page.url
|
||||
assert_equal @dest_file, @page.destination(dest_dir)
|
||||
end
|
||||
end
|
||||
|
@ -177,9 +180,9 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "return url and destination correctly" do
|
||||
@page = setup_page('contacts.html')
|
||||
@page = setup_page("contacts.html")
|
||||
@dest_file = dest_dir("contacts.html")
|
||||
assert_equal '/contacts.html', @page.url
|
||||
assert_equal "/contacts.html", @page.url
|
||||
assert_equal @dest_file, @page.destination(dest_dir)
|
||||
end
|
||||
end
|
||||
|
@ -190,9 +193,9 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "return url and destination correctly" do
|
||||
@page = setup_page('contacts.html')
|
||||
@page = setup_page("contacts.html")
|
||||
@dest_file = dest_dir("contacts.html")
|
||||
assert_equal '/contacts', @page.url
|
||||
assert_equal "/contacts", @page.url
|
||||
assert_equal @dest_file, @page.destination(dest_dir)
|
||||
end
|
||||
end
|
||||
|
@ -200,9 +203,9 @@ class TestPage < JekyllUnitTest
|
|||
context "with any other permalink style" do
|
||||
should "return dir correctly" do
|
||||
@site.permalink_style = nil
|
||||
assert_equal '/', setup_page('contacts.html').dir
|
||||
assert_equal '/contacts/', setup_page('contacts/index.html').dir
|
||||
assert_equal '/contacts/', setup_page('contacts/bar.html').dir
|
||||
assert_equal "/", setup_page("contacts.html").dir
|
||||
assert_equal "/contacts/", setup_page("contacts/index.html").dir
|
||||
assert_equal "/contacts/", setup_page("contacts/bar.html").dir
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -216,7 +219,7 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "return nil permalink if no permalink exists" do
|
||||
@page = setup_page('')
|
||||
@page = setup_page("")
|
||||
assert_equal nil, @page.permalink
|
||||
end
|
||||
|
||||
|
@ -233,7 +236,7 @@ class TestPage < JekyllUnitTest
|
|||
|
||||
context "with specified layout of nil" do
|
||||
setup do
|
||||
@page = setup_page('sitemap.xml')
|
||||
@page = setup_page("sitemap.xml")
|
||||
end
|
||||
|
||||
should "layout of nil is respected" do
|
||||
|
@ -247,60 +250,60 @@ class TestPage < JekyllUnitTest
|
|||
end
|
||||
|
||||
should "write properly" do
|
||||
page = setup_page('contacts.html')
|
||||
page = setup_page("contacts.html")
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('contacts.html')
|
||||
assert_exist dest_dir("contacts.html")
|
||||
end
|
||||
|
||||
should "write even when the folder name is plus and permalink has +" do
|
||||
page = setup_page('+', 'foo.md')
|
||||
page = setup_page("+", "foo.md")
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir), "#{dest_dir} should be a directory"
|
||||
assert_exist dest_dir('+', 'plus+in+url.html')
|
||||
assert_exist dest_dir("+", "plus+in+url.html")
|
||||
end
|
||||
|
||||
should "write even when permalink has '%# +'" do
|
||||
page = setup_page('+', '%# +.md')
|
||||
page = setup_page("+", '%# +.md')
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('+', '%# +.html')
|
||||
assert_exist dest_dir("+", '%# +.html')
|
||||
end
|
||||
|
||||
should "write properly without html extension" do
|
||||
page = setup_page('contacts.html')
|
||||
page = setup_page("contacts.html")
|
||||
page.site.permalink_style = :pretty
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('contacts', 'index.html')
|
||||
assert_exist dest_dir("contacts", "index.html")
|
||||
end
|
||||
|
||||
should "support .htm extension and respects that" do
|
||||
page = setup_page('contacts.htm')
|
||||
page = setup_page("contacts.htm")
|
||||
page.site.permalink_style = :pretty
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('contacts', 'index.htm')
|
||||
assert_exist dest_dir("contacts", "index.htm")
|
||||
end
|
||||
|
||||
should "support .xhtml extension and respects that" do
|
||||
page = setup_page('contacts.xhtml')
|
||||
page = setup_page("contacts.xhtml")
|
||||
page.site.permalink_style = :pretty
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('contacts', 'index.xhtml')
|
||||
assert_exist dest_dir("contacts", "index.xhtml")
|
||||
end
|
||||
|
||||
should "write properly with extension different from html" do
|
||||
|
@ -312,48 +315,47 @@ class TestPage < JekyllUnitTest
|
|||
assert_equal "/sitemap.xml", page.url
|
||||
assert_nil page.url[/\.html$/]
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('sitemap.xml')
|
||||
assert_exist dest_dir("sitemap.xml")
|
||||
end
|
||||
|
||||
should "write dotfiles properly" do
|
||||
page = setup_page('.htaccess')
|
||||
page = setup_page(".htaccess")
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('.htaccess')
|
||||
assert_exist dest_dir(".htaccess")
|
||||
end
|
||||
|
||||
context "in a directory hierarchy" do
|
||||
should "write properly the index" do
|
||||
page = setup_page('/contacts', 'index.html')
|
||||
page = setup_page("/contacts", "index.html")
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('contacts', 'index.html')
|
||||
assert_exist dest_dir("contacts", "index.html")
|
||||
end
|
||||
|
||||
should "write properly" do
|
||||
page = setup_page('/contacts', 'bar.html')
|
||||
page = setup_page("/contacts", "bar.html")
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('contacts', 'bar.html')
|
||||
assert_exist dest_dir("contacts", "bar.html")
|
||||
end
|
||||
|
||||
should "write properly without html extension" do
|
||||
page = setup_page('/contacts', 'bar.html')
|
||||
page = setup_page("/contacts", "bar.html")
|
||||
page.site.permalink_style = :pretty
|
||||
do_render(page)
|
||||
page.write(dest_dir)
|
||||
|
||||
assert File.directory?(dest_dir)
|
||||
assert_exist dest_dir('contacts', 'bar', 'index.html')
|
||||
assert_exist dest_dir("contacts", "bar", "index.html")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue