# -*- encoding: utf-8 -*- require 'webgen/test_helper' require 'webgen/content_processor' require 'webgen/tag/breadcrumb_trail' class TestTagBreadcrumbTrail < Minitest::Test include Webgen::TestHelper def test_call context = setup_context @website.ext.content_processor = Webgen::ContentProcessor.new @website.ext.content_processor.register('Blocks') @website.ext.content_processor.register('Ruby') @obj = Webgen::Tag::BreadcrumbTrail root = Webgen::Node.new(@website.tree.dummy_root, '/', '/', {'proxy_path' => 'index.html'}) dir1 = Webgen::Node.new(root, 'dir1/', '/dir1/', {'title' => 'Dir1'}) dir11 = Webgen::Node.new(dir1, 'dir11/', '/dir1/dir11/', {'proxy_path' => 'index.html'}) index11_en = Webgen::Node.new(dir11, 'index.html', '/dir1/dir11/index.html', {'lang' => 'en', 'routed_title' => 'Dir11', 'title' => 'Index'}) file11_en = Webgen::Node.new(dir11, 'file111.html', '/dir1/dir11/file111.html', {'lang' => 'en', 'title' => 'File111'}) index_en = Webgen::Node.new(root, 'index.html', '/index.html', {'lang' => 'en'}) setup_tag_template(root) context[:chain] = [file11_en] assert_tag_result(context, ' / Dir1 / Dir11 / File111', false, 0, -1) assert_tag_result(context, ' / Dir1 / Dir11 / File111', true, 0, -1) assert_tag_result(context, 'Dir1 / Dir11', true, 1, -2) assert_tag_result(context, 'Dir1 / Dir11', false, 1, -2) context[:chain] = [index11_en] assert_tag_result(context, ' / Dir1 / Dir11 / Index', false, 0, -1) assert_tag_result(context, ' / Dir1 / Dir11', true, 0, -1) assert_tag_result(context, ' / Dir1 / Dir11', false, 0, -2) assert_tag_result(context, ' / Dir1', true, 0, -2) index11_en.meta_info['omit_dir_index'] = false assert_tag_result(context, ' / Dir1 / Dir11 / Index', true, 0, -1) index11_en.meta_info['omit_dir_index'] = true assert_tag_result(context, ' / Dir1 / Dir11', false, 0, -1) end def assert_tag_result(context, result, omit_dir_index, start_level, end_level) context[:config] = {'tag.breadcrumb_trail.omit_dir_index' => omit_dir_index, 'tag.breadcrumb_trail.start_level' => start_level, 'tag.breadcrumb_trail.end_level' => end_level, 'tag.breadcrumb_trail.template' => '/tag.template', 'tag.breadcrumb_trail.separator' => ' / '} assert_equal(result, Webgen::Tag::BreadcrumbTrail.call('breadcrumb_trail', '', context)) end end