nanoc3 3.1.7 → 3.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gemtest +0 -0
- data/LICENSE +1 -1
- data/NEWS.md +9 -0
- data/doc/yardoc_templates/default/layout/html/footer.erb +10 -0
- data/lib/nanoc3/base/item.rb +1 -1
- data/lib/nanoc3/base/item_rep.rb +1 -0
- data/lib/nanoc3/base/layout.rb +1 -1
- data/lib/nanoc3/cli/base.rb +4 -2
- data/lib/nanoc3/cli/commands/view.rb +1 -0
- data/lib/nanoc3/data_sources/filesystem.rb +25 -6
- data/lib/nanoc3/data_sources/filesystem_unified.rb +5 -5
- data/lib/nanoc3/extra/validators/links.rb +1 -1
- data/lib/nanoc3/filters/rdiscount.rb +2 -1
- data/lib/nanoc3/filters/sass.rb +20 -8
- data/lib/nanoc3/filters/sass.rb.orig +75 -0
- data/lib/nanoc3.rb +1 -1
- data/nanoc3.gemspec +41 -0
- data/tasks/clean.rake +11 -0
- data/tasks/doc.rake +14 -0
- data/tasks/gem.rake +13 -0
- data/tasks/test.rake +38 -0
- data/test/base/core_ext/array_spec.rb +23 -0
- data/test/base/core_ext/hash_spec.rb +41 -0
- data/test/base/core_ext/string_spec.rb +27 -0
- data/test/base/test_code_snippet.rb +33 -0
- data/test/base/test_compiler.rb +410 -0
- data/test/base/test_compiler_dsl.rb +121 -0
- data/test/base/test_context.rb +33 -0
- data/test/base/test_data_source.rb +48 -0
- data/test/base/test_dependency_tracker.rb +510 -0
- data/test/base/test_directed_graph.rb +91 -0
- data/test/base/test_filter.rb +85 -0
- data/test/base/test_item.rb +141 -0
- data/test/base/test_item_rep.rb +953 -0
- data/test/base/test_layout.rb +44 -0
- data/test/base/test_notification_center.rb +36 -0
- data/test/base/test_plugin.rb +32 -0
- data/test/base/test_rule.rb +21 -0
- data/test/base/test_rule_context.rb +63 -0
- data/test/base/test_site.rb +366 -0
- data/test/cli/commands/test_compile.rb +12 -0
- data/test/cli/commands/test_create_item.rb +12 -0
- data/test/cli/commands/test_create_layout.rb +28 -0
- data/test/cli/commands/test_create_site.rb +24 -0
- data/test/cli/commands/test_help.rb +12 -0
- data/test/cli/commands/test_info.rb +12 -0
- data/test/cli/commands/test_update.rb +12 -0
- data/test/cli/test_logger.rb +12 -0
- data/test/data_sources/test_filesystem.rb +420 -0
- data/test/data_sources/test_filesystem_unified.rb +538 -0
- data/test/data_sources/test_filesystem_verbose.rb +359 -0
- data/test/extra/core_ext/test_enumerable.rb +32 -0
- data/test/extra/core_ext/test_time.rb +17 -0
- data/test/extra/deployers/test_rsync.rb +234 -0
- data/test/extra/test_auto_compiler.rb +482 -0
- data/test/extra/test_file_proxy.rb +21 -0
- data/test/extra/test_vcs.rb +24 -0
- data/test/extra/validators/test_links.rb +53 -0
- data/test/extra/validators/test_w3c.rb +49 -0
- data/test/filters/test_bluecloth.rb +20 -0
- data/test/filters/test_coderay.rb +46 -0
- data/test/filters/test_colorize_syntax.rb +56 -0
- data/test/filters/test_erb.rb +72 -0
- data/test/filters/test_erubis.rb +72 -0
- data/test/filters/test_haml.rb +98 -0
- data/test/filters/test_kramdown.rb +20 -0
- data/test/filters/test_less.rb +59 -0
- data/test/filters/test_markaby.rb +26 -0
- data/test/filters/test_maruku.rb +20 -0
- data/test/filters/test_rainpress.rb +31 -0
- data/test/filters/test_rdiscount.rb +33 -0
- data/test/filters/test_rdoc.rb +18 -0
- data/test/filters/test_redcloth.rb +20 -0
- data/test/filters/test_relativize_paths.rb +231 -0
- data/test/filters/test_rubypants.rb +20 -0
- data/test/filters/test_sass.rb +170 -0
- data/test/filters/test_sass.rb.orig +103 -0
- data/test/gem_loader.rb +11 -0
- data/test/helper.rb +99 -0
- data/test/helpers/test_blogging.rb +808 -0
- data/test/helpers/test_breadcrumbs.rb +83 -0
- data/test/helpers/test_capturing.rb +42 -0
- data/test/helpers/test_filtering.rb +108 -0
- data/test/helpers/test_html_escape.rb +18 -0
- data/test/helpers/test_link_to.rb +251 -0
- data/test/helpers/test_rendering.rb +109 -0
- data/test/helpers/test_tagging.rb +89 -0
- data/test/helpers/test_text.rb +26 -0
- data/test/helpers/test_xml_sitemap.rb +69 -0
- data/test/tasks/test_clean.rb +71 -0
- metadata +83 -8
@@ -0,0 +1,56 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::ColorizeSyntaxTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_coderay_simple
|
10
|
+
if_have 'coderay' do
|
11
|
+
# Create filter
|
12
|
+
filter = ::Nanoc3::Filters::ColorizeSyntax.new
|
13
|
+
|
14
|
+
# Get input and expected output
|
15
|
+
input = '<pre title="moo"><code class="language-ruby"># comment</code></pre>'
|
16
|
+
expected_output = '<pre title="moo"><code class="language-ruby"><span class="c"># comment</span></code></pre>'
|
17
|
+
|
18
|
+
# Run filter
|
19
|
+
actual_output = filter.run(input)
|
20
|
+
assert_equal(expected_output, actual_output)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_coderay_with_more_classes
|
25
|
+
if_have 'coderay' do
|
26
|
+
# Create filter
|
27
|
+
filter = ::Nanoc3::Filters::ColorizeSyntax.new
|
28
|
+
|
29
|
+
# Get input and expected output
|
30
|
+
input = '<pre title="moo"><code class="abc language-ruby xyz"># comment</code></pre>'
|
31
|
+
expected_output = '<pre title="moo"><code class="abc language-ruby xyz"><span class="c"># comment</span></code></pre>'
|
32
|
+
|
33
|
+
# Run filter
|
34
|
+
actual_output = filter.run(input)
|
35
|
+
assert_equal(expected_output, actual_output)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_pygmentize
|
40
|
+
if `which pygmentize`.strip.empty?
|
41
|
+
skip "could not find pygmentize"
|
42
|
+
end
|
43
|
+
|
44
|
+
# Create filter
|
45
|
+
filter = ::Nanoc3::Filters::ColorizeSyntax.new
|
46
|
+
|
47
|
+
# Get input and expected output
|
48
|
+
input = '<pre title="moo"><code class="language-ruby"># comment</code></pre>'
|
49
|
+
expected_output = %r{^<pre title="moo"><code class="language-ruby"><span class="c1"># comment</span>\n?</code></pre>$}
|
50
|
+
|
51
|
+
# Run filter
|
52
|
+
actual_output = filter.run(input, :colorizers => { :ruby => :pygmentize })
|
53
|
+
assert_match(expected_output, actual_output)
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::ERBTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter_with_instance_variable
|
10
|
+
# Create filter
|
11
|
+
filter = ::Nanoc3::Filters::ERB.new({ :location => 'a cheap motel' })
|
12
|
+
|
13
|
+
# Run filter
|
14
|
+
result = filter.run('<%= "I was hiding in #{@location}." %>')
|
15
|
+
assert_equal('I was hiding in a cheap motel.', result)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_filter_with_instance_method
|
19
|
+
# Create filter
|
20
|
+
filter = ::Nanoc3::Filters::ERB.new({ :location => 'a cheap motel' })
|
21
|
+
|
22
|
+
# Run filter
|
23
|
+
result = filter.run('<%= "I was hiding in #{location}." %>')
|
24
|
+
assert_equal('I was hiding in a cheap motel.', result)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_filter_error_item
|
28
|
+
# Create item and item rep
|
29
|
+
item = MiniTest::Mock.new
|
30
|
+
item.expect(:identifier, '/foo/bar/baz/')
|
31
|
+
item_rep = MiniTest::Mock.new
|
32
|
+
item_rep.expect(:name, :quux)
|
33
|
+
|
34
|
+
# Create filter
|
35
|
+
filter = ::Nanoc3::Filters::ERB.new({
|
36
|
+
:item => item,
|
37
|
+
:item_rep => item_rep,
|
38
|
+
:location => 'a cheap motel'
|
39
|
+
})
|
40
|
+
|
41
|
+
# Run filter
|
42
|
+
raised = false
|
43
|
+
begin
|
44
|
+
filter.run('<%= this isn\'t really ruby so it\'ll break, muahaha %>')
|
45
|
+
rescue SyntaxError => e
|
46
|
+
e.message =~ /(.+?):\d+: /
|
47
|
+
assert_match 'item /foo/bar/baz/ (rep quux)', $1
|
48
|
+
raised = true
|
49
|
+
end
|
50
|
+
assert raised
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_filter_with_yield
|
54
|
+
# Create filter
|
55
|
+
filter = ::Nanoc3::Filters::ERB.new({ :content => 'a cheap motel' })
|
56
|
+
|
57
|
+
# Run filter
|
58
|
+
result = filter.run('<%= "I was hiding in #{yield}." %>')
|
59
|
+
assert_equal('I was hiding in a cheap motel.', result)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_filter_with_yield_without_content
|
63
|
+
# Create filter
|
64
|
+
filter = ::Nanoc3::Filters::ERB.new({ :location => 'a cheap motel' })
|
65
|
+
|
66
|
+
# Run filter
|
67
|
+
assert_raises LocalJumpError do
|
68
|
+
filter.run('<%= "I was hiding in #{yield}." %>')
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::ErubisTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter_with_instance_variable
|
10
|
+
if_have 'erubis' do
|
11
|
+
# Create filter
|
12
|
+
filter = ::Nanoc3::Filters::Erubis.new({ :location => 'a cheap motel' })
|
13
|
+
|
14
|
+
# Run filter
|
15
|
+
result = filter.run('<%= "I was hiding in #{@location}." %>')
|
16
|
+
assert_equal('I was hiding in a cheap motel.', result)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_filter_with_instance_method
|
21
|
+
if_have 'erubis' do
|
22
|
+
# Create filter
|
23
|
+
filter = ::Nanoc3::Filters::Erubis.new({ :location => 'a cheap motel' })
|
24
|
+
|
25
|
+
# Run filter
|
26
|
+
result = filter.run('<%= "I was hiding in #{location}." %>')
|
27
|
+
assert_equal('I was hiding in a cheap motel.', result)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_filter_error
|
32
|
+
if_have 'erubis' do
|
33
|
+
# Create filter
|
34
|
+
filter = ::Nanoc3::Filters::Erubis.new
|
35
|
+
|
36
|
+
# Run filter
|
37
|
+
raised = false
|
38
|
+
begin
|
39
|
+
filter.run('<%= this isn\'t really ruby so it\'ll break, muahaha %>')
|
40
|
+
rescue SyntaxError => e
|
41
|
+
e.message =~ /(.+?):\d+: /
|
42
|
+
assert_match '?', $1
|
43
|
+
raised = true
|
44
|
+
end
|
45
|
+
assert raised
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_filter_with_yield
|
50
|
+
if_have 'erubis' do
|
51
|
+
# Create filter
|
52
|
+
filter = ::Nanoc3::Filters::Erubis.new({ :content => 'a cheap motel' })
|
53
|
+
|
54
|
+
# Run filter
|
55
|
+
result = filter.run('<%= "I was hiding in #{yield}." %>')
|
56
|
+
assert_equal('I was hiding in a cheap motel.', result)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_filter_with_yield_without_content
|
61
|
+
if_have 'erubis' do
|
62
|
+
# Create filter
|
63
|
+
filter = ::Nanoc3::Filters::Erubis.new({ :location => 'a cheap motel' })
|
64
|
+
|
65
|
+
# Run filter
|
66
|
+
assert_raises LocalJumpError do
|
67
|
+
filter.run('<%= "I was hiding in #{yield}." %>')
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::HamlTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
if_have 'haml' do
|
11
|
+
# Create filter
|
12
|
+
filter = ::Nanoc3::Filters::Haml.new({ :question => 'Is this the Payne residence?' })
|
13
|
+
|
14
|
+
# Run filter (no assigns)
|
15
|
+
result = filter.run('%html')
|
16
|
+
assert_match(/<html>.*<\/html>/, result)
|
17
|
+
|
18
|
+
# Run filter (assigns without @)
|
19
|
+
result = filter.run('%p= question')
|
20
|
+
assert_equal("<p>Is this the Payne residence?</p>\n", result)
|
21
|
+
|
22
|
+
# Run filter (assigns with @)
|
23
|
+
result = filter.run('%p= @question')
|
24
|
+
assert_equal("<p>Is this the Payne residence?</p>\n", result)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_filter_with_params
|
29
|
+
if_have 'haml' do
|
30
|
+
# Create filter
|
31
|
+
filter = ::Nanoc3::Filters::Haml.new({ :foo => 'bar' })
|
32
|
+
|
33
|
+
# Check with HTML5
|
34
|
+
result = filter.run('%img', :format => :html5)
|
35
|
+
assert_match(/<img>/, result)
|
36
|
+
|
37
|
+
# Check with XHTML
|
38
|
+
result = filter.run('%img', :format => :xhtml)
|
39
|
+
assert_match(/<img\s*\/>/, result)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_filter_error
|
44
|
+
if_have 'haml' do
|
45
|
+
# Create filter
|
46
|
+
filter = ::Nanoc3::Filters::Haml.new({ :foo => 'bar' })
|
47
|
+
|
48
|
+
# Run filter
|
49
|
+
raised = false
|
50
|
+
begin
|
51
|
+
filter.run('%p= this isn\'t really ruby so it\'ll break, muahaha')
|
52
|
+
rescue SyntaxError => e
|
53
|
+
e.message =~ /(.+?):\d+: /
|
54
|
+
assert_match '?', $1
|
55
|
+
raised = true
|
56
|
+
end
|
57
|
+
assert raised
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_filter_with_yield
|
62
|
+
if_have 'haml' do
|
63
|
+
# Create filter
|
64
|
+
filter = ::Nanoc3::Filters::Haml.new({ :content => 'Is this the Payne residence?' })
|
65
|
+
|
66
|
+
# Run filter
|
67
|
+
result = filter.run('%p= yield')
|
68
|
+
assert_equal("<p>Is this the Payne residence?</p>\n", result)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_filter_with_yield_without_content
|
73
|
+
if_have 'haml' do
|
74
|
+
# Create filter
|
75
|
+
filter = ::Nanoc3::Filters::Haml.new({ :location => 'Is this the Payne residence?' })
|
76
|
+
|
77
|
+
# Run filter
|
78
|
+
assert_raises LocalJumpError do
|
79
|
+
filter.run('%p= yield')
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_filter_with_proper_indentation
|
85
|
+
if_have 'haml' do
|
86
|
+
# Create file to include
|
87
|
+
File.open('stuff', 'w') do |io|
|
88
|
+
io.write("<pre>Max Payne\nMona Sax</pre>")
|
89
|
+
end
|
90
|
+
|
91
|
+
# Run filter
|
92
|
+
filter = ::Nanoc3::Filters::Haml.new
|
93
|
+
result = filter.run("%body\n ~ File.read('stuff')")
|
94
|
+
assert_match(/Max Payne
Mona Sax/, result)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::KramdownTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
if_have 'kramdown' do
|
11
|
+
# Create filter
|
12
|
+
filter = ::Nanoc3::Filters::Kramdown.new
|
13
|
+
|
14
|
+
# Run filter
|
15
|
+
result = filter.run("This is _so_ **cool**!")
|
16
|
+
assert_equal("<p>This is <em>so</em> <strong>cool</strong>!</p>\n", result)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::LessTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
if_have 'less' do
|
11
|
+
# Create item
|
12
|
+
@item = Nanoc3::Item.new("blah", { :content_filename => 'content/foo/bar.txt' }, '/foo/bar/')
|
13
|
+
|
14
|
+
# Create filter
|
15
|
+
filter = ::Nanoc3::Filters::Less.new(:item => @item)
|
16
|
+
|
17
|
+
# Run filter
|
18
|
+
result = filter.run('.foo { bar: 1 + 1 }')
|
19
|
+
assert_match /\.foo\s*\{\s*bar:\s*2;?\s*\}/, result
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_filter_with_paths_relative_to_site_directory
|
24
|
+
if_have 'less' do
|
25
|
+
# Create file to import
|
26
|
+
FileUtils.mkdir_p('content/foo/bar')
|
27
|
+
File.open('content/foo/bar/imported_file.less', 'w') { |io| io.write('p { color: red; }') }
|
28
|
+
|
29
|
+
# Create item
|
30
|
+
@item = Nanoc3::Item.new("blah", { :content_filename => 'content/foo/bar.txt' }, '/foo/bar/')
|
31
|
+
|
32
|
+
# Create filter
|
33
|
+
filter = ::Nanoc3::Filters::Less.new(:item => @item)
|
34
|
+
|
35
|
+
# Run filter
|
36
|
+
result = filter.run('@import "content/foo/bar/imported_file.less";')
|
37
|
+
assert_match /p\s*\{\s*color:\s*red;?\s*\}/, result
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_filter_with_paths_relative_to_current_file
|
42
|
+
if_have 'less' do
|
43
|
+
# Create file to import
|
44
|
+
FileUtils.mkdir_p('content/foo/bar')
|
45
|
+
File.open('content/foo/bar/imported_file.less', 'w') { |io| io.write('p { color: red; }') }
|
46
|
+
|
47
|
+
# Create item
|
48
|
+
@item = Nanoc3::Item.new("blah", { :content_filename => 'content/foo/bar.txt' }, '/foo/bar/')
|
49
|
+
|
50
|
+
# Create filter
|
51
|
+
filter = ::Nanoc3::Filters::Less.new(:item => @item)
|
52
|
+
|
53
|
+
# Run filter
|
54
|
+
result = filter.run('@import "bar/imported_file.less";')
|
55
|
+
assert_match /p\s*\{\s*color:\s*red;?\s*\}/, result
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::MarkabyTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
# Don’t run this test on 1.9.x, because it breaks and it annoys me
|
11
|
+
if RUBY_VERSION >= '1.9'
|
12
|
+
skip "Markaby is not compatible with 1.9.x"
|
13
|
+
return
|
14
|
+
end
|
15
|
+
|
16
|
+
if_have 'markaby' do
|
17
|
+
# Create filter
|
18
|
+
filter = ::Nanoc3::Filters::Markaby.new
|
19
|
+
|
20
|
+
# Run filter
|
21
|
+
result = filter.run("html do\nend")
|
22
|
+
assert_equal("<html></html>", result)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::MarukuTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
if_have 'maruku' do
|
11
|
+
# Create filter
|
12
|
+
filter = ::Nanoc3::Filters::Maruku.new
|
13
|
+
|
14
|
+
# Run filter
|
15
|
+
result = filter.run("This is _so_ *cool*!")
|
16
|
+
assert_equal("<p>This is <em>so</em> <em>cool</em>!</p>", result)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::RainpressTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
if_have 'rainpress' do
|
11
|
+
# Create filter
|
12
|
+
filter = ::Nanoc3::Filters::Rainpress.new
|
13
|
+
|
14
|
+
# Run filter
|
15
|
+
result = filter.run("body { color: black; }")
|
16
|
+
assert_equal("body{color:#000}", result)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_filter_with_options
|
21
|
+
if_have 'rainpress' do
|
22
|
+
# Create filter
|
23
|
+
filter = ::Nanoc3::Filters::Rainpress.new
|
24
|
+
|
25
|
+
# Run filter
|
26
|
+
result = filter.run("body { color: #aabbcc; }", :colors => false)
|
27
|
+
assert_equal("body{color:#aabbcc}", result)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::RDiscountTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
if_have 'rdiscount' do
|
11
|
+
# Create filter
|
12
|
+
filter = ::Nanoc3::Filters::RDiscount.new
|
13
|
+
|
14
|
+
# Run filter
|
15
|
+
result = filter.run("> Quote")
|
16
|
+
assert_match(/<blockquote>\s*<p>Quote<\/p>\s*<\/blockquote>/, result)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_with_extensions
|
21
|
+
if_have 'rdiscount' do
|
22
|
+
# Create filter
|
23
|
+
filter = ::Nanoc3::Filters::RDiscount.new
|
24
|
+
|
25
|
+
# Run filter
|
26
|
+
input = "The quotation 'marks' sure make this look sarcastic!"
|
27
|
+
output_expected = /The quotation ‘marks’ sure make this look sarcastic!/
|
28
|
+
output_actual = filter.run(input, :extensions => [ :smart ])
|
29
|
+
assert_match(output_expected, output_actual)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::RDocTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
# Get filter
|
11
|
+
filter = ::Nanoc3::Filters::RDoc.new
|
12
|
+
|
13
|
+
# Run filter
|
14
|
+
result = filter.run("= Foo")
|
15
|
+
assert_equal("<h1>Foo</h1>\n", result)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test/helper'
|
4
|
+
|
5
|
+
class Nanoc3::Filters::RedClothTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
include Nanoc3::TestHelpers
|
8
|
+
|
9
|
+
def test_filter
|
10
|
+
if_have 'redcloth' do
|
11
|
+
# Get filter
|
12
|
+
filter = ::Nanoc3::Filters::RedCloth.new
|
13
|
+
|
14
|
+
# Run filter
|
15
|
+
result = filter.run("h1. Foo")
|
16
|
+
assert_equal("<h1>Foo</h1>", result)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|