Sha256: 90a9a57f39ae24fc319087d6422074a1dd43831edb6f6c4519ade97472970c5e

Contents?: true

Size: 1.83 KB

Versions: 5

Compression:

Stored size: 1.83 KB

Contents

require File.join(__FILE__.gsub(/(.*)?\/spec\/.*$/, '\1'), 'spec/spec_helper')

describe Rtml::Rules::DomRuleset do
  before :each do
    @rules = Rtml::Rules::DomRuleset.new
  end

  it "should allow tree structure to be defined with children" do
    @rules.children do
      head :base, :link, :defaults, :error
      logdcl :vardcl, :layout
    end
    @rules.tags(:head).children.should == %w(base link defaults error)
    @rules.tags(:logdcl).children.should == %w(vardcl layout)
  end

  it "should allow tag order to be constrained" do
    @rules.order do
       head   :base, :link, :defaults, :error
       logdcl :vardcl, :layout
    end
    @rules.order(:head).should == %w(base link defaults error)
    @rules.order(:logdcl).should == %w(vardcl layout)
  end

  it "should define a list of tags for usage" do
    @rules.tag :a, :baddata, :base, :br, :call_func
    @rules.tags.should have(5).items
  end

  it "should allow one root tag and raise an error if a second is specified" do
    @rules.root.should be_nil
    @rules.root :tml
    @rules.root.should == 'tml'
    lambda { @rules.root :second_root }.should raise_error(Rtml::Errors::MultipleRootsError)
  end

  it "should create a ruleset out of the default seed" do
    @rules.parse(Rtml::Document.ruleset_file)
    @rules.tags.should have(62).rules
    
    # FIXME: Need more assertions here to really verify everything loaded properly.
  end

  it "should remember maximum and minimum count for children" do
    @rules.children :screen, %W{setvar strtemplate logrec}
    @rules.children :screen, %W{next error call_func display print submit tform}, :maximum => 1, :minimum => 1

    @rules.tag(:screen).maximum('setvar').should == 0
    @rules.tag(:screen).maximum('next').should == 1
    @rules.tag(:screen).minimum('setvar').should == 0
    @rules.tag(:screen).minimum('next').should == 1
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rtml-2.0.4 spec/lib/rtml/rules/dom_ruleset_spec.rb
rtml-2.0.3 spec/lib/rtml/rules/dom_ruleset_spec.rb
rtml-2.0.2 spec/lib/rtml/rules/dom_ruleset_spec.rb
rtml-2.0.1 spec/lib/rtml/rules/dom_ruleset_spec.rb
rtml-2.0.0.alpha.1 spec/lib/rtml/rules/dom_ruleset_spec.rb