From ded9e66973d96d88d85106a1b27cb66868692f92 Mon Sep 17 00:00:00 2001 From: ccocchi Date: Wed, 14 Nov 2012 12:40:11 +0100 Subject: [PATCH] Add test for keywords used as variable names --- test/keyword_test.rb | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/keyword_test.rb diff --git a/test/keyword_test.rb b/test/keyword_test.rb new file mode 100644 index 0000000..903ffc5 --- /dev/null +++ b/test/keyword_test.rb @@ -0,0 +1,47 @@ +require 'test_helper' + +class KeywordTest < ActiveSupport::TestCase + class Collection + attr_accessor :id, :name + + def initialize(id, name) + @id = id + @name = name + end + + def cover(size) + "foo_#{size}" + end + end + + setup do + RablRails::Library.reset_instance + @context = Context.new + @user = User.new(1, 'Marty') + @collections = [Collection.new(1, 'first'), Collection.new(2, 'last')] + @context.assigns['user'] = @user + @context.assigns['collections'] = @collections + @context.virtual_path = 'user/show' + @context.stub(lookup_context: nil) + end + + test "collections model should render correctly" do + source = %{ + object :@user + child(:@collections => :collections) do + attributes :id, :name + node(:cover_url) { |c| + c.cover(:medium) + } + end + } + + assert_equal(MultiJson.encode( + user: { collections: [{ + id: 1, name: 'first', cover_url: "foo_medium" + }, { + id: 2, name: 'last', cover_url: "foo_medium" + }] } + ), RablRails::Library.instance.get_rendered_template(source, @context)) + end +end \ No newline at end of file