Sha256: 68d37fed83acdc1931fb8e9a51ef0931eb8b2b0da68ac38b8d83eee5eb0c7313

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

$:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')

$NITRO_NO_ENVIRONMENT = true

require 'test/unit'
require 'ostruct'

require 'glue'
require 'glue/logger'
require 'nitro'

class TC_Controller < Test::Unit::TestCase # :nodoc: all
  include Nitro
  
  class Blog2Controller < Controller
    attr_reader :aqflag, :tflag

    def self.setup_template_root(path)
      @template_root << File.expand_path(File.join(Nitro::LibPath, "../test/public/#{path}"))
    end   

    def list
      @aqflag = true 
    end
  end
  
  def setup
    @disp = Dispatcher.new({
      '/blog' => Blog2Controller,
    })
    @conf = OpenStruct.new
    @conf.dispatcher = @disp
  end
  
  def test_render
    ctx = Context.new(@conf)
    ctx.headers = {}
    ctx.params = {}
    ctx.headers['REQUEST_URI'] = '/blog/list'
    ctx.instance_eval '@session = {}'
    klass, action = ctx.dispatcher.dispatch(ctx.path, ctx)
    c = klass.new(ctx)
    
    begin
      c.send(action)
    rescue RenderExit
      # drink
    end

    assert_equal true, c.aqflag
    assert_equal true, $include1
    assert_equal true, $include2

    # the template is compiled
    assert_equal true, c.tflag
  end

  def test_action_methods
    # aflag/tflag are counted too!
#    p Blog2Controller.action_methods
    # FIXME: the next 5 should be 3!!
#    assert_equal 5, Blog2Controller.action_methods.size
    assert Blog2Controller.action_methods.include?('list')
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nitro-0.29.0 test/nitro/tc_controller.rb