Sha256: f269f937a023e5f56feb0c95de9968660186f91921e74cdde2263c342298df8b

Contents?: true

Size: 1.85 KB

Versions: 4

Compression:

Stored size: 1.85 KB

Contents

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

describe Rtml::Widgets::ScreenVariableProcessing do
  before :each do
    @doc = Rtml::Document.new
  end

  it "should convert true and false into integers" do
    @doc.boolean :is_sale
    @doc.boolean :initialized

    @doc.screen :idle do
      set :is_sale => false
      set :initialized => true
    end

    assert_nil @doc.to_tml =~ /=(['"]|)true(['"]|)/, "Found a reference to 'true'"
    assert_nil @doc.to_tml =~ /=(['"]|)false(['"]|)/, "Found a reference to 'false'"
  end

  it "should not create format if not specified" do
    @doc.string :some_value
    @doc.screen :idle do
      set :some_value => 'Colin'
    end

    assert_nil @doc.screens.first.to_tml =~ /format=\"\"/, 'Format should not have been generated'
  end

  it "should raise if variable is not defined" do
    assert_raises Rtml::Errors::InvalidOptionError do
      @doc.string :first_name
      @doc.screen :main do
        set :first_name => 'Colin', :last_name => 'MacKenzie'
      end
    end
  end

  it "should set value of variables from screens" do
    assert_nothing_raised do
      @doc.string :first_name, :last_name, :full_name
      @doc.screen :main do
        set :first_name => 'Colin', :last_name => 'MacKenzie'
        set :full_name => 'tmlvar:first_name + tmlvar:last_name'
      end
    end

    assert_not_nil(t = @doc.screens.first / "setvar[lo=MacKenzie]")
    assert_equal "MacKenzie", t.first.property('lo')
    assert_not_nil(t = @doc.screens.first / "setvar[lo=tmlvar:first_name]")
    assert_equal "tmlvar:first_name", t.first.property('lo')
    assert_not_nil(t = @doc.screens.first / "setvar[op=plus]")
    assert_equal "plus", t.first.property('op')
    assert_not_nil(t = @doc.screens.first / "setvar[ro=tmlvar:last_name]")
    assert_equal "tmlvar:last_name", t.first.property('ro')
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rtml-2.0.3 spec/widgets/screen_variable_processing_spec.rb
rtml-2.0.2 spec/widgets/screen_variable_processing_spec.rb
rtml-2.0.1 spec/widgets/screen_variable_processing_spec.rb
rtml-2.0.0.alpha.1 spec/widgets/screen_variable_processing_spec.rb