Sha256: ae7486ee4597cd3bea0327f91985b28a339c846993386feef54da401c92330af

Contents?: true

Size: 1.12 KB

Versions: 12

Compression:

Stored size: 1.12 KB

Contents

require "minitest_helper"
require 'alula/theme'
require 'ostruct'

describe "Themes" do
  before do
    context = Object.new
    context.class.class_eval do
      def initialize; @vars = {}; end
      def [](key); @vars[key]; end
      def []=(key, val); @vars[key] = val; end
      def method_missing(meth, *args, &blk); return @vars[meth] if @vars; super; end
    end

    @site = MiniTest::Mock.new
    @site.expect :config, OpenStruct.new({theme: 'test'})
    @site.expect :context, context

    # Register our theme
    Alula::Theme.register(:test, "test/fixtures/theme")
  end
  
  it "doesn't load nonexisting theme" do
    @site.config.theme = "unknown"
    theme = Alula::Theme.load(site: @site)
    theme.must_be_nil
  end
  
  it "has working theme" do
    @site.config.theme = "test"
    theme = Alula::Theme.load(site: @site)
    theme.wont_be_nil
    
    # Find layout
    layout = theme.layout("default")
    layout.wont_be_nil
    
    # Find view
    view = theme.view("post")
    view.wont_be_nil
    
    # Test rendering
    view.render(content: "Theme Test").must_equal "<html><body><p>Theme Test</p></body></html>"
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
alula-0.4.10 test/test_theme.rb
alula-0.4.9 test/test_theme.rb
alula-0.4.8 test/test_theme.rb
alula-0.4.7 test/test_theme.rb
alula-0.4.6 test/test_theme.rb
alula-0.4.5 test/test_theme.rb
alula-0.4.4 test/test_theme.rb
alula-0.4.3 test/test_theme.rb
alula-0.4.2 test/test_theme.rb
alula-0.4.1 test/test_theme.rb
alula-0.4.0 test/test_theme.rb
alula-0.4.0b test/test_theme.rb