#!/usr/bin/env ruby require File.join(File.dirname(__FILE__), "..", "spec_helper") describe "Macro:" do before do create_web_project Glyph['document.output'] = 'web' Glyph.run! 'load:all' end after do Glyph.lite_mode = false reset_quiet delete_project end it "section (topic)" do lambda { output_for("section[@src[test]]") }.should raise_error(Glyph::MacroError, "Macro 'section' requires a 'title' attribute") interpret("section[@src[a/web1.glyph]@title[Test]]") topic = @p.document.topics[0] topic.blank?.should == false topic[:id].should == :t_0 topic[:title].should == "Test" topic[:src].should == "a/web1.glyph" topic[:contents].match(/id="w1_3"/).blank?.should == false Glyph['document.output'] = 'html' Glyph.run! 'load:macros' output_for("contents[section[@src[a/web1.glyph]@title[Test]]]").match(/id="w1_3"/).blank?.should == false end it "navigation" do Glyph.run! 'generate:web' web1 = Glyph.file_load(Glyph::PROJECT/'output/web/a/web1.html') web2 = Glyph.file_load(Glyph::PROJECT/'output/web/a/b/web2.html') web1.match(%{
}).blank?.should == false web2.match(%{ }).blank?.should == false end it "toc should only list topics" do Glyph.run! 'generate:web' index = Glyph.file_load(Glyph::PROJECT/'output/web/index.html') index.match(%{