Sha256: b81e0685d3471d1ac6914b7e66ad87f24aec7c8f91c9f470a7d80d277cac298c

Contents?: true

Size: 1.72 KB

Versions: 2

Compression:

Stored size: 1.72 KB

Contents

require 'test/unit'
require 'helper'
require 'webgen/sourcehandler/fragment'
require 'stringio'

class TestSourceHandlerFragment < Test::Unit::TestCase

  include Test::WebsiteHelper

  TEST_CONTENT=<<EOF
- data: |
    <h1 id="test">Test</h1>
    <h2 id="other">test</h2>
    <h1>nothing</h1>
    <h1 id="third">test</h1>
  sections:
    - [1, test, Test]
    - [2, other, test]
    - [1, third, test]

- data: |
    <h1 id="test">Test</h1>
    <h2 id="other">test</h2>
    <h3 id='non'>other</h3>
    <h1 id="third">test</h1>
    <h3 id='four'>fourth</h3>
  sections:
    - [1, test, Test]
    - [2, other, test]
    - [3, non, other]
    - [1, third, test]
    - [3, four, fourth]
EOF

  def test_parse_html_headers
    @obj = Webgen::SourceHandler::Fragment.new
    YAML::load(TEST_CONTENT).each do |data|
      sections = @obj.parse_html_headers(data['data'])
      check_sections(sections, data['sections'])
    end
  end

  def test_create_fragment_nodes
    @obj = Webgen::SourceHandler::Fragment.new
    root = Webgen::Node.new(Webgen::Tree.new.dummy_root, 'test/', 'test')
    node = @obj.create_node(root, path_with_meta_info('hallo.html') {StringIO.new('')})
    @website.blackboard.add_service(:create_nodes) {|tree, alcn, path, sh| [sh.create_node(tree[alcn], path_with_meta_info(path.path))]}

    section = @obj.parse_html_headers(YAML::load(TEST_CONTENT).first['data'])
    @obj.create_fragment_nodes(section, node, 'true')
    assert_equal(node, node.resolve('#test').parent)
    assert_equal(node.resolve('#test'), node.resolve('#other').parent)
  end

  def check_sections(sections, valid)
    sections.each do |level, id, title, subsecs|
      assert_equal(valid.shift, [level, id, title])
      check_sections(subsecs, valid)
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webgen-0.5.0 test/test_sourcehandler_fragment.rb
webgen-0.5.1 test/test_sourcehandler_fragment.rb