webgen 0.5.8 → 0.5.9
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +4 -0
- data/ChangeLog +1037 -0
- data/Rakefile +5 -6
- data/THANKS +1 -0
- data/VERSION +1 -1
- data/bin/webgen +1 -1
- data/data/webgen/passive_sources/images/generated_by_webgen.png +0 -0
- data/data/webgen/passive_sources/images/webgen_logo.png +0 -0
- data/data/webgen/passive_sources/stylesheets/coderay-default.css +129 -0
- data/data/webgen/passive_sources/templates/atom_feed.template +38 -0
- data/data/webgen/passive_sources/templates/rss_feed.template +28 -0
- data/data/webgen/passive_sources/templates/sitemap.template +21 -0
- data/data/webgen/resources.yaml +2 -1
- data/data/webgen/website_skeleton/Rakefile +5 -1
- data/doc/contentprocessor/builder.page +2 -2
- data/doc/contentprocessor/erb.page +5 -2
- data/doc/contentprocessor/erubis.page +2 -2
- data/doc/contentprocessor/head.page +21 -0
- data/doc/contentprocessor/tidy.page +14 -0
- data/doc/extensions.page +1 -1
- data/doc/faq.page +2 -2
- data/doc/manual.page +108 -43
- data/doc/reference_configuration.page +83 -5
- data/doc/reference_metainfo.page +24 -4
- data/doc/reference_website_styles.page +2 -2
- data/doc/sourcehandler/feed.page +11 -13
- data/doc/sourcehandler/metainfo.page +10 -3
- data/doc/sourcehandler/page.page +4 -4
- data/doc/sourcehandler/sitemap.page +8 -7
- data/doc/tag/coderay.page +6 -2
- data/doc/tag/includefile.page +1 -1
- data/doc/tag/menu.page +3 -0
- data/lib/webgen/cli/apply_command.rb +1 -1
- data/lib/webgen/cli/utils.rb +2 -2
- data/lib/webgen/common.rb +0 -9
- data/lib/webgen/contentprocessor.rb +18 -3
- data/lib/webgen/contentprocessor/blocks.rb +67 -36
- data/lib/webgen/contentprocessor/builder.rb +5 -2
- data/lib/webgen/contentprocessor/erb.rb +4 -2
- data/lib/webgen/contentprocessor/erubis.rb +5 -2
- data/lib/webgen/contentprocessor/haml.rb +6 -2
- data/lib/webgen/contentprocessor/head.rb +64 -0
- data/lib/webgen/contentprocessor/maruku.rb +3 -1
- data/lib/webgen/contentprocessor/rdiscount.rb +2 -0
- data/lib/webgen/contentprocessor/rdoc.rb +2 -0
- data/lib/webgen/contentprocessor/redcloth.rb +2 -0
- data/lib/webgen/contentprocessor/sass.rb +5 -3
- data/lib/webgen/contentprocessor/tags.rb +40 -24
- data/lib/webgen/contentprocessor/tidy.rb +38 -0
- data/lib/webgen/context.rb +13 -4
- data/lib/webgen/context/render.rb +32 -0
- data/lib/webgen/context/tags.rb +20 -0
- data/lib/webgen/default_config.rb +15 -4
- data/lib/webgen/deprecated.rb +38 -4
- data/lib/webgen/error.rb +135 -0
- data/lib/webgen/node.rb +48 -40
- data/lib/webgen/output.rb +5 -3
- data/lib/webgen/output/filesystem.rb +4 -4
- data/lib/webgen/page.rb +4 -4
- data/lib/webgen/path.rb +161 -58
- data/lib/webgen/source.rb +9 -6
- data/lib/webgen/source/filesystem.rb +1 -1
- data/lib/webgen/source/stacked.rb +13 -5
- data/lib/webgen/source/tararchive.rb +6 -2
- data/lib/webgen/sourcehandler.rb +100 -54
- data/lib/webgen/sourcehandler/base.rb +58 -24
- data/lib/webgen/sourcehandler/copy.rb +6 -5
- data/lib/webgen/sourcehandler/directory.rb +3 -9
- data/lib/webgen/sourcehandler/feed.rb +25 -50
- data/lib/webgen/sourcehandler/fragment.rb +10 -8
- data/lib/webgen/sourcehandler/memory.rb +9 -10
- data/lib/webgen/sourcehandler/metainfo.rb +9 -9
- data/lib/webgen/sourcehandler/page.rb +6 -5
- data/lib/webgen/sourcehandler/sitemap.rb +22 -22
- data/lib/webgen/sourcehandler/template.rb +6 -6
- data/lib/webgen/sourcehandler/virtual.rb +19 -17
- data/lib/webgen/tag/base.rb +27 -27
- data/lib/webgen/tag/breadcrumbtrail.rb +3 -3
- data/lib/webgen/tag/coderay.rb +19 -8
- data/lib/webgen/tag/executecommand.rb +4 -3
- data/lib/webgen/tag/langbar.rb +2 -2
- data/lib/webgen/tag/link.rb +8 -7
- data/lib/webgen/tag/menu.rb +2 -2
- data/lib/webgen/tag/metainfo.rb +1 -1
- data/lib/webgen/tag/relocatable.rb +17 -21
- data/lib/webgen/tag/tikz.rb +7 -10
- data/lib/webgen/tree.rb +7 -7
- data/lib/webgen/version.rb +1 -1
- data/lib/webgen/website.rb +32 -2
- data/misc/default.css +8 -2
- data/misc/default.template +2 -2
- data/misc/logo.svg +313 -0
- data/misc/style.page +1 -1
- data/test/helper.rb +18 -2
- data/test/test_cli.rb +104 -0
- data/test/test_common_sitemap.rb +1 -1
- data/test/test_contentprocessor.rb +8 -2
- data/test/test_contentprocessor_blocks.rb +17 -8
- data/test/test_contentprocessor_builder.rb +13 -2
- data/test/test_contentprocessor_erb.rb +9 -3
- data/test/test_contentprocessor_erubis.rb +9 -3
- data/test/test_contentprocessor_fragments.rb +12 -11
- data/test/test_contentprocessor_haml.rb +11 -2
- data/test/test_contentprocessor_head.rb +44 -0
- data/test/test_contentprocessor_maruku.rb +5 -1
- data/test/test_contentprocessor_rdiscount.rb +4 -0
- data/test/test_contentprocessor_rdoc.rb +4 -0
- data/test/test_contentprocessor_redcloth.rb +5 -1
- data/test/test_contentprocessor_sass.rb +8 -2
- data/test/test_contentprocessor_tags.rb +22 -7
- data/test/test_contentprocessor_tidy.rb +34 -0
- data/test/test_context.rb +39 -0
- data/test/test_error.rb +85 -0
- data/test/test_node.rb +57 -21
- data/test/test_page.rb +23 -5
- data/test/test_path.rb +120 -64
- data/test/test_source_filesystem.rb +1 -1
- data/test/test_source_stacked.rb +19 -6
- data/test/test_sourcehandler_base.rb +63 -50
- data/test/test_sourcehandler_copy.rb +6 -6
- data/test/test_sourcehandler_directory.rb +8 -12
- data/test/test_sourcehandler_feed.rb +15 -7
- data/test/test_sourcehandler_fragment.rb +6 -5
- data/test/test_sourcehandler_main.rb +39 -0
- data/test/test_sourcehandler_memory.rb +4 -4
- data/test/test_sourcehandler_metainfo.rb +20 -11
- data/test/test_sourcehandler_page.rb +10 -10
- data/test/test_sourcehandler_sitemap.rb +24 -5
- data/test/test_sourcehandler_template.rb +18 -15
- data/test/test_sourcehandler_virtual.rb +9 -5
- data/test/test_tag_base.rb +6 -29
- data/test/test_tag_coderay.rb +16 -3
- data/test/test_tag_executecommand.rb +2 -2
- data/test/test_tag_link.rb +5 -4
- data/test/test_tag_menu.rb +15 -15
- data/test/test_tag_metainfo.rb +1 -0
- data/test/test_tag_relocatable.rb +3 -2
- data/test/test_tag_tikz.rb +5 -5
- data/test/test_tree.rb +8 -8
- data/test/test_website.rb +15 -0
- metadata +21 -14
- data/test/test_common.rb +0 -18
data/test/test_common_sitemap.rb
CHANGED
@@ -17,7 +17,7 @@ class TestCommonSitemap < Test::Unit::TestCase
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def do_assert(node, lang, honor_in_menu, any_lang, used_kinds, result)
|
20
|
-
assert_equal(result.map {|name| @nodes[name].
|
20
|
+
assert_equal(result.map {|name| @nodes[name].alcn },
|
21
21
|
@obj.create_sitemap(node, lang, {
|
22
22
|
'common.sitemap.honor_in_menu' => honor_in_menu,
|
23
23
|
'common.sitemap.any_lang' => any_lang,
|
@@ -10,7 +10,7 @@ class TestContentProcessor < Test::Unit::TestCase
|
|
10
10
|
|
11
11
|
def setup
|
12
12
|
super
|
13
|
-
@website.config.data['contentprocessor.map'] = {'test' => Hash}
|
13
|
+
@website.config.data['contentprocessor.map'] = {'test' => Hash, 'binary' => [Hash, :binary]}
|
14
14
|
end
|
15
15
|
|
16
16
|
def test_access_hash
|
@@ -22,12 +22,18 @@ class TestContentProcessor < Test::Unit::TestCase
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def test_list
|
25
|
-
assert_equal(['test'], Webgen::ContentProcessor.list)
|
25
|
+
assert_equal(['binary', 'test'], Webgen::ContentProcessor.list.sort)
|
26
26
|
end
|
27
27
|
|
28
28
|
def test_for_name
|
29
29
|
assert_kind_of(Hash, Webgen::ContentProcessor.for_name('test'))
|
30
|
+
assert_kind_of(Hash, Webgen::ContentProcessor.for_name('binary'))
|
30
31
|
assert_nil(Webgen::ContentProcessor.for_name('other'))
|
31
32
|
end
|
32
33
|
|
34
|
+
def test_is_binary
|
35
|
+
assert(!Webgen::ContentProcessor.is_binary?('test'))
|
36
|
+
assert(Webgen::ContentProcessor.is_binary?('binary'))
|
37
|
+
end
|
38
|
+
|
33
39
|
end
|
@@ -1,13 +1,16 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'helper'
|
4
5
|
require 'webgen/tree'
|
5
6
|
require 'webgen/page'
|
6
7
|
require 'webgen/contentprocessor'
|
7
8
|
|
8
9
|
class TestContentProcessorBlocks < Test::Unit::TestCase
|
9
10
|
|
10
|
-
|
11
|
+
include Test::WebsiteHelper
|
12
|
+
|
13
|
+
def test_call_and_render_node
|
11
14
|
obj = Webgen::ContentProcessor::Blocks.new
|
12
15
|
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
13
16
|
node = Webgen::Node.new(root, 'test', 'test')
|
@@ -20,28 +23,31 @@ class TestContentProcessorBlocks < Test::Unit::TestCase
|
|
20
23
|
context.content = '<webgen:block name="content" /><webgen:block name="content" chain="template;test" />'
|
21
24
|
obj.call(context)
|
22
25
|
assert_equal('databeforedataafter', context.content)
|
23
|
-
assert_equal(Set.new([node.
|
26
|
+
assert_equal(Set.new([node.alcn, template.alcn]), node.node_info[:used_nodes])
|
24
27
|
|
25
28
|
context.content = '<webgen:block name="content" node="next" /><webgen:block name="content" chain="template;test" />'
|
26
29
|
obj.call(context)
|
27
30
|
assert_equal('databeforedataafter', context.content)
|
28
31
|
|
29
|
-
context.content =
|
30
|
-
|
32
|
+
context.content = "\nsadfasdf<webgen:block name='nothing'/>"
|
33
|
+
assert_error_on_line(Webgen::RenderError, 2) { obj.call(context) }
|
34
|
+
|
35
|
+
context.content = '<webgen:block name="content" chain="invalid" />'
|
36
|
+
assert_error_on_line(Webgen::RenderError, 1) { obj.call(context) }
|
31
37
|
|
32
|
-
context.content = '<webgen:block name="content"
|
38
|
+
context.content = '<webgen:block name="content" />'
|
33
39
|
node.node_info[:used_nodes] = Set.new
|
34
40
|
context[:chain] = [node, template, node]
|
35
41
|
obj.call(context)
|
36
|
-
assert_equal('
|
37
|
-
assert_equal(Set.new([template.
|
42
|
+
assert_equal('beforedataafter', context.content)
|
43
|
+
assert_equal(Set.new([template.alcn, node.alcn]), node.node_info[:used_nodes])
|
38
44
|
|
39
45
|
context.content = 'bef<webgen:block name="other" chain="template;test" notfound="ignore" />aft'
|
40
46
|
obj.call(context)
|
41
47
|
assert_equal('befaft', context.content)
|
42
48
|
|
43
49
|
context.content = '<webgen:block name="other" chain="template" node="first" />'
|
44
|
-
|
50
|
+
assert_error_on_line(Webgen::RenderError, 1) { obj.call(context) }
|
45
51
|
|
46
52
|
context.content = '<webgen:block name="other" chain="template;test" node="first" />'
|
47
53
|
obj.call(context)
|
@@ -63,6 +69,9 @@ class TestContentProcessorBlocks < Test::Unit::TestCase
|
|
63
69
|
context.content = '<webgen:block name="other" node="current" chain="template"/>'
|
64
70
|
obj.call(context)
|
65
71
|
assert_equal('other', context.content)
|
72
|
+
|
73
|
+
assert_equal('other', obj.render_block(context, :chain => [template], :name => 'other', :node => 'current'))
|
74
|
+
assert_equal('beforedataafter', obj.render_block(context, :chain => [template, node], :name => 'content', :node => 'first'))
|
66
75
|
end
|
67
76
|
|
68
77
|
end
|
@@ -1,23 +1,34 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'helper'
|
4
5
|
require 'webgen/tree'
|
5
6
|
require 'webgen/contentprocessor'
|
6
7
|
|
7
8
|
class TestContentProcessorBuilder < Test::Unit::TestCase
|
8
9
|
|
10
|
+
include Test::WebgenAssertions
|
11
|
+
|
9
12
|
def test_call
|
10
13
|
obj = Webgen::ContentProcessor::Builder.new
|
11
14
|
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
12
15
|
node = Webgen::Node.new(root, 'test', 'test')
|
13
|
-
content = "xml.div(:path => context.node.
|
16
|
+
content = "xml.div(:path => context.node.alcn) { xml.strong('test'); " +
|
14
17
|
"context.website; context; context.ref_node; context.dest_node }"
|
15
18
|
context = Webgen::Context.new(:content => content,
|
16
19
|
:chain => [node])
|
17
20
|
assert_equal("<div path=\"/test\">\n <strong>test</strong>\n</div>\n", obj.call(context).content)
|
18
21
|
|
19
22
|
context.content = 'raise "bla"'
|
20
|
-
|
23
|
+
|
24
|
+
context.content = "xml.div do \n5+5\n+=+6\nend"
|
25
|
+
assert_error_on_line(Webgen::RenderError, 3) { obj.call(context) }
|
26
|
+
|
27
|
+
context.content = "xml.div do \n5+5\nunknown\n++6\nend"
|
28
|
+
assert_error_on_line(Webgen::RenderError, 3) { obj.call(context) }
|
29
|
+
|
30
|
+
def obj.require(lib); raise LoadError; end
|
31
|
+
assert_raise(Webgen::LoadError) { obj.call(context) }
|
21
32
|
end
|
22
33
|
|
23
34
|
end
|
@@ -1,23 +1,29 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'helper'
|
4
5
|
require 'webgen/tree'
|
5
6
|
require 'webgen/contentprocessor'
|
6
7
|
|
7
8
|
class TestContentProcessorErb < Test::Unit::TestCase
|
8
9
|
|
10
|
+
include Test::WebgenAssertions
|
11
|
+
|
9
12
|
def test_call
|
10
13
|
obj = Webgen::ContentProcessor::Erb.new
|
11
14
|
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
12
15
|
node = Webgen::Node.new(root, 'test', 'test')
|
13
|
-
content = "<%= context[:doit] %>6\n<%= context.ref_node.
|
16
|
+
content = "<%= context[:doit] %>6\n<%= context.ref_node.alcn %>\n<%= context.node.alcn %>\n<%= context.dest_node.alcn %><% website %>"
|
14
17
|
context = Webgen::Context.new(:content => content, :doit => 'hallo',
|
15
18
|
:chain => [node])
|
16
19
|
obj.call(context)
|
17
20
|
assert_equal("hallo6\n/test\n/test\n/test", context.content)
|
18
21
|
|
19
|
-
context.content =
|
20
|
-
|
22
|
+
context.content = "\n<%= 5* %>"
|
23
|
+
assert_error_on_line(Webgen::RenderError, 2) { obj.call(context) }
|
24
|
+
|
25
|
+
context.content = "\n\n<% unknown %>"
|
26
|
+
assert_error_on_line(Webgen::RenderError, 3) { obj.call(context) }
|
21
27
|
end
|
22
28
|
|
23
29
|
end
|
@@ -17,11 +17,14 @@ class TestContentProcessorErubis < Test::Unit::TestCase
|
|
17
17
|
node = Webgen::Node.new(root, 'test', 'test')
|
18
18
|
context = Webgen::Context.new(:doit => 'hallo', :chain => [node])
|
19
19
|
|
20
|
-
context.content = "<%= context[:doit] %>6\n<%= context.ref_node.
|
20
|
+
context.content = "<%= context[:doit] %>6\n<%= context.ref_node.alcn %>\n<%= context.node.alcn %>\n<%= context.dest_node.alcn %><% context.website %>"
|
21
21
|
assert_equal("hallo6\n/test\n/test\n/test", obj.call(context).content)
|
22
22
|
|
23
|
-
context.content =
|
24
|
-
|
23
|
+
context.content = "\n<%= 5* %>"
|
24
|
+
assert_error_on_line(Webgen::RenderError, 2) { obj.call(context) }
|
25
|
+
|
26
|
+
context.content = "\n\n<% unknown %>"
|
27
|
+
assert_error_on_line(Webgen::RenderError, 3) { obj.call(context) }
|
25
28
|
|
26
29
|
context.content = "<% for i in [1] %>\n<%= i %>\n<% end %>"
|
27
30
|
assert_equal("1\n", obj.call(context).content)
|
@@ -44,6 +47,9 @@ class TestContentProcessorErubis < Test::Unit::TestCase
|
|
44
47
|
|
45
48
|
page = Webgen::Page.from_data("--- pipeline:erubis erubis_trim:false erubis_use_pi:false\n<% for i in [1] %>\n<%== i %>\n<% end %>")
|
46
49
|
assert_equal("\n1\n", page.blocks['content'].render(context).content)
|
50
|
+
|
51
|
+
def obj.require(lib); raise LoadError; end
|
52
|
+
assert_raise(Webgen::LoadError) { obj.call(context) }
|
47
53
|
end
|
48
54
|
|
49
55
|
end
|
@@ -13,30 +13,31 @@ class TestContentProcessorFragments < Test::Unit::TestCase
|
|
13
13
|
def test_process
|
14
14
|
Webgen::SourceHandler::Main.new
|
15
15
|
@website.blackboard.del_service(:source_paths)
|
16
|
-
@website.blackboard.add_service(:source_paths) { Hash.new(path_with_meta_info('/')) }
|
16
|
+
@website.blackboard.add_service(:source_paths) { Hash.new(path_with_meta_info('/test.html')) }
|
17
17
|
|
18
18
|
obj = Webgen::ContentProcessor::Fragments.new
|
19
19
|
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
20
|
-
|
20
|
+
node = Webgen::Node.new(root, '/test.html', 'test.html')
|
21
|
+
node.node_info[:src] = '/test.html'
|
21
22
|
processors = { 'fragments' => obj }
|
22
23
|
|
23
|
-
context = Webgen::Context.new(:chain => [
|
24
|
+
context = Webgen::Context.new(:chain => [node], :processors => processors)
|
24
25
|
context.content = '<h1 id="test">Test</h1><h1>Test2</h1>'
|
25
26
|
obj.call(context)
|
26
|
-
assert(root.tree['
|
27
|
-
assert_equal(
|
28
|
-
root.tree.delete_node('
|
27
|
+
assert(root.tree['/test.html#test'])
|
28
|
+
assert_equal(4, root.tree.node_access[:alcn].length)
|
29
|
+
root.tree.delete_node('/test.html#test')
|
29
30
|
|
30
31
|
context[:block] = Webgen::Page::Block.new('content', '', {})
|
31
32
|
obj.call(context)
|
32
|
-
assert(root.tree['
|
33
|
-
assert_equal(
|
34
|
-
root.tree.delete_node('
|
33
|
+
assert(root.tree['/test.html#test'])
|
34
|
+
assert_equal(4, root.tree.node_access[:alcn].length)
|
35
|
+
root.tree.delete_node('/test.html#test')
|
35
36
|
|
36
37
|
context[:block] = Webgen::Page::Block.new('other', '', {})
|
37
38
|
obj.call(context)
|
38
|
-
assert(!root.tree['
|
39
|
-
assert_equal(
|
39
|
+
assert(!root.tree['/test.html#test'])
|
40
|
+
assert_equal(3, root.tree.node_access[:alcn].length)
|
40
41
|
end
|
41
42
|
|
42
43
|
end
|
@@ -1,23 +1,32 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'helper'
|
4
5
|
require 'webgen/tree'
|
5
6
|
require 'webgen/contentprocessor'
|
6
7
|
|
7
8
|
class TestContentProcessorHaml < Test::Unit::TestCase
|
8
9
|
|
10
|
+
include Test::WebgenAssertions
|
11
|
+
|
9
12
|
def test_call
|
10
13
|
obj = Webgen::ContentProcessor::Haml.new
|
11
14
|
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
12
15
|
node = Webgen::Node.new(root, 'test', 'test')
|
13
|
-
content = "#content\n %h1 Hallo\n = [context.node.
|
16
|
+
content = "#content\n %h1 Hallo\n = [context.node.alcn, context.ref_node.alcn, context.dest_node.alcn, context.website, context.dest_node.alcn].join"
|
14
17
|
context = Webgen::Context.new(:content => content,
|
15
18
|
:chain => [node])
|
16
19
|
obj.call(context)
|
17
20
|
assert_equal("<div id='content'>\n <h1>Hallo</h1>\n /test/test/test/test\n</div>\n", context.content)
|
18
21
|
|
22
|
+
context.content = "#cont\n %unknown"
|
23
|
+
assert_error_on_line(Webgen::RenderError, 2) { obj.call(context) }
|
24
|
+
|
19
25
|
context.content = "#cont\n = unknown"
|
20
|
-
assert_raise(
|
26
|
+
assert_raise(Webgen::RenderError) { obj.call(context) }
|
27
|
+
|
28
|
+
def obj.require(lib); raise LoadError; end
|
29
|
+
assert_raise(Webgen::LoadError) { obj.call(context) }
|
21
30
|
end
|
22
31
|
|
23
32
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'helper'
|
5
|
+
require 'webgen/tree'
|
6
|
+
require 'webgen/page'
|
7
|
+
require 'webgen/contentprocessor'
|
8
|
+
|
9
|
+
class TestContentProcessorHead < Test::Unit::TestCase
|
10
|
+
|
11
|
+
include Test::WebsiteHelper
|
12
|
+
|
13
|
+
def test_call
|
14
|
+
obj = Webgen::ContentProcessor::Head.new
|
15
|
+
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
16
|
+
node = Webgen::Node.new(root, 'test', 'test', {'meta' => {'other' => 'me'}})
|
17
|
+
|
18
|
+
context = Webgen::Context.new(:chain => [node])
|
19
|
+
context.content = '</head>'
|
20
|
+
obj.call(context)
|
21
|
+
assert_equal("\n<meta name=\"other\" content=\"me\" /></head>", context.content)
|
22
|
+
|
23
|
+
context.content = '</head>'
|
24
|
+
context.clone.persistent[:cp_head] = {
|
25
|
+
:js_file => ['hallo.js', 'hallo2.js', 'hallo.js'],
|
26
|
+
:js_inline => ["somescript", "anotherscript"],
|
27
|
+
:css_file => ['hallo.css', 'hallo2.css', 'hallo.css'],
|
28
|
+
:css_inline => ["somestyle", "anotherstyle"],
|
29
|
+
:meta => {:lucky => 'me<"'}
|
30
|
+
}
|
31
|
+
node['meta'].clear
|
32
|
+
obj.call(context)
|
33
|
+
assert_equal("\n<script type=\"text/javascript\" src=\"hallo.js\"></script>" +
|
34
|
+
"\n<script type=\"text/javascript\" src=\"hallo2.js\"></script>" +
|
35
|
+
"\n<script type=\"text/javascript\">\nsomescript\n</script>" +
|
36
|
+
"\n<script type=\"text/javascript\">\nanotherscript\n</script>" +
|
37
|
+
"\n<link rel=\"stylesheet\" href=\"hallo.css\" type=\"text/css\"/>" +
|
38
|
+
"\n<link rel=\"stylesheet\" href=\"hallo2.css\" type=\"text/css\"/>" +
|
39
|
+
"\n<style type=\"text/css\"><![CDATA[/\nsomestyle\n]]></style>" +
|
40
|
+
"\n<style type=\"text/css\"><![CDATA[/\nanotherstyle\n]]></style>" +
|
41
|
+
"\n<meta name=\"lucky\" content=\"me<"\" /></head>", context.content)
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'helper'
|
4
5
|
require 'webgen/node'
|
5
6
|
require 'webgen/tree'
|
6
7
|
require 'webgen/contentprocessor'
|
@@ -14,7 +15,10 @@ class TestContentProcessorMaruku < Test::Unit::TestCase
|
|
14
15
|
assert_equal('<h1 id=\'header\'>header</h1>', @obj.call(context).content)
|
15
16
|
|
16
17
|
context.content = "# head*d* {#das .dsaf "
|
17
|
-
assert_raise(
|
18
|
+
assert_raise(Webgen::RenderError) { @obj.call(context)}
|
19
|
+
|
20
|
+
def @obj.require(lib); raise LoadError; end
|
21
|
+
assert_raise(Webgen::LoadError) { @obj.call(context) }
|
18
22
|
end
|
19
23
|
|
20
24
|
def test_call_fix_for_invalid_id
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'helper'
|
4
5
|
require 'webgen/node'
|
5
6
|
require 'webgen/tree'
|
6
7
|
require 'webgen/contentprocessor'
|
@@ -12,6 +13,9 @@ class TestContentProcessorRDiscount < Test::Unit::TestCase
|
|
12
13
|
node = Webgen::Node.new(Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/'), 'test', 'test')
|
13
14
|
context = Webgen::Context.new(:content => '# header', :chain => [node])
|
14
15
|
assert_equal("<h1>header</h1>\n", @obj.call(context).content)
|
16
|
+
|
17
|
+
def @obj.require(lib); raise LoadError; end
|
18
|
+
assert_raise(Webgen::LoadError) { @obj.call(context) }
|
15
19
|
end
|
16
20
|
|
17
21
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'helper'
|
4
5
|
require 'webgen/tree'
|
5
6
|
require 'webgen/contentprocessor'
|
6
7
|
|
@@ -13,6 +14,9 @@ class TestContentProcessorRDoc < Test::Unit::TestCase
|
|
13
14
|
context = Webgen::Context.new(:content => "* hello",
|
14
15
|
:chain => [node])
|
15
16
|
assert_equal("<ul>\n<li>hello\n\n</li>\n</ul>\n", obj.call(context).content)
|
17
|
+
|
18
|
+
def obj.require(lib); raise LoadError; end
|
19
|
+
assert_raise(Webgen::LoadError) { obj.call(context) }
|
16
20
|
end
|
17
21
|
|
18
22
|
end
|
@@ -11,12 +11,16 @@ class TestContentProcessorRedCloth < Test::Unit::TestCase
|
|
11
11
|
|
12
12
|
def test_call
|
13
13
|
@obj = Webgen::ContentProcessor::RedCloth.new
|
14
|
-
|
14
|
+
node = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
15
|
+
context = Webgen::Context.new(:content => "h1. header\n\nthis\nis\nsome\ntext", :chain => [node])
|
15
16
|
assert_equal("<h1>header</h1>\n<p>this\nis\nsome\ntext</p>", @obj.call(context).content)
|
16
17
|
|
17
18
|
context.content = "h1. header\n\nthis\nis\nsome\ntext"
|
18
19
|
@website.config['contentprocessor.redcloth.hard_breaks'] = true
|
19
20
|
assert_equal("<h1>header</h1>\n<p>this<br />\nis<br />\nsome<br />\ntext</p>", @obj.call(context).content)
|
21
|
+
|
22
|
+
def @obj.require(lib); raise LoadError; end
|
23
|
+
assert_raise(Webgen::LoadError) { @obj.call(context) }
|
20
24
|
end
|
21
25
|
|
22
26
|
end
|
@@ -1,11 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'helper'
|
4
5
|
require 'webgen/tree'
|
5
6
|
require 'webgen/contentprocessor'
|
6
7
|
|
7
8
|
class TestContentProcessorSass < Test::Unit::TestCase
|
8
9
|
|
10
|
+
include Test::WebgenAssertions
|
11
|
+
|
9
12
|
def test_call
|
10
13
|
obj = Webgen::ContentProcessor::Sass.new
|
11
14
|
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
@@ -15,8 +18,11 @@ class TestContentProcessorSass < Test::Unit::TestCase
|
|
15
18
|
obj.call(context)
|
16
19
|
assert_equal("#main {\n background-color: #000; }\n", context.content)
|
17
20
|
|
18
|
-
context.content = "#cont
|
19
|
-
|
21
|
+
context.content = "#cont\n = 5"
|
22
|
+
assert_error_on_line(Webgen::RenderError, 2) { obj.call(context) }
|
23
|
+
|
24
|
+
def obj.require(lib); raise LoadError; end
|
25
|
+
assert_raise(Webgen::LoadError) { obj.call(context) }
|
20
26
|
end
|
21
27
|
|
22
28
|
end
|
@@ -15,6 +15,8 @@ class TestContentProcessorTags < Test::Unit::TestCase
|
|
15
15
|
|
16
16
|
def create_tag_params(*args); end
|
17
17
|
|
18
|
+
def create_params_hash(*args); end
|
19
|
+
|
18
20
|
def call(tag, body, context)
|
19
21
|
case tag
|
20
22
|
when 'body'
|
@@ -36,9 +38,6 @@ class TestContentProcessorTags < Test::Unit::TestCase
|
|
36
38
|
|
37
39
|
def test_call
|
38
40
|
context = Webgen::Context.new(:chain => [Webgen::Tree.new.dummy_root])
|
39
|
-
context.content = "{test: }"
|
40
|
-
assert_equal('', @obj.call(context).content)
|
41
|
-
|
42
41
|
add_test_tag
|
43
42
|
assert_equal('test', @obj.call(context.clone(:content => "{test: }")).content)
|
44
43
|
assert_equal('thebody', @obj.call(context.clone(:content => "{body::}thebody{body}")).content)
|
@@ -46,13 +45,24 @@ class TestContentProcessorTags < Test::Unit::TestCase
|
|
46
45
|
@obj.call(context.clone(:content => "test{bodyproc::} \\{other:}{other:} {bodyproc}test")).content)
|
47
46
|
end
|
48
47
|
|
48
|
+
def test_process_tag
|
49
|
+
context = Webgen::Context.new(:chain => [Webgen::Tree.new.dummy_root])
|
50
|
+
context.content = "\n{test: }"
|
51
|
+
assert_error_on_line(Webgen::RenderError, 2) { @obj.call(context) }
|
52
|
+
|
53
|
+
add_test_tag
|
54
|
+
assert_equal('test', @obj.process_tag('test', {'something' => 'new'}, '', context))
|
55
|
+
assert_equal('test', @obj.process_tag('test', '{something: new}', '', context))
|
56
|
+
assert_equal('thebody', @obj.process_tag('body', '{something: new}', 'thebody', context))
|
57
|
+
end
|
58
|
+
|
49
59
|
def test_replace_tags
|
50
60
|
check_returned_tags('sdfsdf{asd', [])
|
51
61
|
check_returned_tags('sdfsdf}asd', [])
|
52
62
|
check_returned_tags('sdfsdf{asd}', [])
|
53
|
-
check_returned_tags('sdfsdf{asd: {}as', [])
|
63
|
+
check_returned_tags('sdfsdf{asd: {}as', [], true)
|
54
64
|
check_returned_tags('sdfsdf{test: {test1: }}', [['test', ' {test1: }', '']], 'sdfsdftest1')
|
55
|
-
check_returned_tags('sdfsdf{test: {test1: {}}', [
|
65
|
+
check_returned_tags('sdfsdf{test: {test1: {}}', [], true)
|
56
66
|
check_returned_tags('sdfsdf{test:}{test1: }', [['test', '', ''], ['test1', ' ', '']], 'sdfsdftest1test2')
|
57
67
|
check_returned_tags('sdfsdf{test:}\\{test1: }', [['test', '', '']], "sdfsdftest1{test1: }")
|
58
68
|
check_returned_tags('sdfsdf\\{test:}{test1:}', [['test1', '', '']], "sdfsdf{test:}test1")
|
@@ -62,7 +72,7 @@ class TestContentProcessorTags < Test::Unit::TestCase
|
|
62
72
|
check_returned_tags('sdfsdf\\\\\\{test: asdf}sdf', [['test', ' asdf', '']], "sdfsdf\\{test: asdf}sdf")
|
63
73
|
|
64
74
|
check_returned_tags('before{test::}body{test}', [['test', '', 'body']], "beforetest1")
|
65
|
-
check_returned_tags('before{test::}body{testno}', [],
|
75
|
+
check_returned_tags('before{test::}body{testno}', [], true)
|
66
76
|
check_returned_tags('before{test::}body\\{test}other{test}', [['test', '', 'body{test}other']], "beforetest1")
|
67
77
|
check_returned_tags('before{test::}body\\{test}{test}', [['test', '', 'body{test}']], "beforetest1")
|
68
78
|
check_returned_tags('before{test::}body\\{test}\\\\{test}after', [['test', '', 'body{test}\\']], "beforetest1after")
|
@@ -92,7 +102,12 @@ class TestContentProcessorTags < Test::Unit::TestCase
|
|
92
102
|
i += 1
|
93
103
|
'test' + i.to_s
|
94
104
|
end
|
95
|
-
|
105
|
+
context = Webgen::Context.new(:chain => [Webgen::Tree.new.dummy_root], :content => content)
|
106
|
+
if result.kind_of?(TrueClass)
|
107
|
+
assert_error_on_line(Webgen::RenderError, 1) { @obj.send(:replace_tags, context, &check_proc) }
|
108
|
+
else
|
109
|
+
assert_equal(result, @obj.instance_eval { replace_tags(context, &check_proc) })
|
110
|
+
end
|
96
111
|
assert(i, data.length)
|
97
112
|
end
|
98
113
|
|