Sha256: fa782e3c704a202891c1b789e27fb972d78360b22c7ffa2ce455b0d037581e0a

Contents?: true

Size: 1.72 KB

Versions: 3

Compression:

Stored size: 1.72 KB

Contents

#!/usr/bin/env ruby
require File.join(File.dirname(__FILE__), "..", "spec_helper")

describe "Glyph Language" do

	before do
		create_project
	end

	after do
		reset_quiet
		language('glyph')
		delete_project
	end

	it "should support XML fallback by default" do
		Glyph.run 'load:all'
		output_for(%{
			i[test]
			code[
			test
			]
		}).gsub(/\s+/, '').should == %{
		<i>test</i>
				<code>
					test
				</code>}.gsub(/\s+/, '')
	end

	it "should support XML macros" do
		language('xml')
		output_for("pre[code[test]]").should == "<pre>\n<code>test</code>\n</pre>"
	end

	it "should support XML attributes" do
		language('xml')
		output_for("span[@class[test] @style[color:red;] test...]").should == %{
			<span class="test" style="color:red;">test...</span>
		}.strip
	end

	it "should detect invalid characters for XML elements and attributes" do
		language('xml')
		lambda  { interpret("!&test[test]").document }.should raise_error
		output_for("span[@class[test]@.[test]test]").should == %{<span class="test">test</span>}
	end

	it "should notify the user that a macro is not found for invalid elements if xml_fallback is enabled" do
		# Assuming options.xml_fallback = true
		language('glyph')
		lambda { interpret("*a[test]").document }.should raise_error(Glyph::MacroError, "Unknown macro '*a'")
	end	

	it "should not render blacklisted tags" do
		language('xml')
		text = %{
			object[test]
			applet[test]
      base[test]
      basefont[test]
      embed[test]
      frame[test]
      frameset[test]
      iframe[test]
      isindex[test]
			test[test]
      meta[test]
      noframes[test]
      noscript[test]
      object[test]
      param[test]
      title[tesy]
		}
		output_for(text).gsub(/\s/, '').should == "<test>test</test>"
	end

end	

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
glyph-0.4.2 spec/macros/xml_spec.rb
glyph-0.4.1 spec/macros/xml_spec.rb
glyph-0.4.0 spec/macros/xml_spec.rb