Sha256: 4b4245196bc105733c79d767d6e45ef00131e95bfc13cf733d4033784ad7fcbb

Contents?: true

Size: 1.97 KB

Versions: 53

Compression:

Stored size: 1.97 KB

Contents

require 'helper'

describe Temple::Filters::ControlFlow do
  before do
    @filter = Temple::Filters::ControlFlow.new
  end

  it 'should process blocks' do
    @filter.call([:block, 'loop do',
      [:static, 'Hello']
    ]).should.equal [:multi,
                     [:code, 'loop do'],
                     [:static, 'Hello'],
                     [:code, 'end']]
  end

  it 'should process if' do
    @filter.call([:if, 'condition',
      [:static, 'Hello']
    ]).should.equal [:multi,
      [:code, 'if condition'],
      [:static, 'Hello'],
      [:code, 'end']
    ]
  end

  it 'should process if with else' do
    @filter.call([:if, 'condition',
      [:static, 'True'],
      [:static, 'False']
    ]).should.equal [:multi,
      [:code, 'if condition'],
      [:static, 'True'],
      [:code, 'else'],
      [:static, 'False'],
      [:code, 'end']
    ]
  end

  it 'should create elsif' do
    @filter.call([:if, 'condition1',
      [:static, '1'],
      [:if, 'condition2',
       [:static, '2'],
       [:static, '3']]
    ]).should.equal [:multi,
      [:code, 'if condition1'],
      [:static, '1'],
      [:code, 'elsif condition2'],
      [:static, '2'],
      [:code, 'else'],
      [:static, '3'],
      [:code, 'end']
    ]
  end

  it 'should process cond' do
    @filter.call([:cond,
      ['cond1', [:exp11], [:exp12]],
      ['cond2', [:exp2]],
      [:else,   [:exp3]],
    ]).should.equal [:multi,
      [:code, 'case'],
      [:code, 'when cond1'],
      [:exp11],
      [:exp12],
      [:code, 'when cond2'],
      [:exp2],
      [:code, 'else'],
      [:exp3],
      [:code, 'end']
    ]
  end

  it 'should process case' do
    @filter.call([:case, 'var',
      ['Array',  [:exp11], [:exp12]],
      ['String', [:exp2]],
      [:else,    [:exp3]],
    ]).should.equal [:multi,
      [:code, 'case (var)'],
      [:code, 'when Array'],
      [:exp11],
      [:exp12],
      [:code, 'when String'],
      [:exp2],
      [:code, 'else'],
      [:exp3],
      [:code, 'end']
    ]
  end
end

Version data entries

53 entries across 53 versions & 2 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.7.4 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.7.3 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.7.2 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.7.1 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.7.0 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.9 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.8 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.7 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.6 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.5 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.4 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.3 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.2 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.1 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.6.0 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.5.17 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.5.16 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.5.15 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb
classiccms-0.5.14 vendor/bundle/gems/temple-0.4.0/test/filters/test_control_flow.rb