./test/jbuilder_template_test.rb in jbuilder-0.5.0 vs ./test/jbuilder_template_test.rb in jbuilder-0.6.0

- old
+ new

@@ -1,39 +1,56 @@ require 'test/unit' -require 'active_support/test_case' -require 'active_support/inflector' -require 'action_dispatch' require 'action_view' +require 'action_view/testing/resolvers' require 'jbuilder' -require 'jbuilder_template' -class JbuilderTemplateTest < ActiveSupport::TestCase +class JbuilderTemplateTest < ActionView::TestCase + def partials + { "_partial.json.jbuilder" => 'json.content "hello"' } + end + + def render_jbuilder(source) + @rendered = [] + lookup_context.view_paths = [ActionView::FixtureResolver.new(partials.merge("test.json.jbuilder" => source))] + ActionView::Template.new(source, "test", JbuilderHandler, :virtual_path => "test").render(self, {}).strip + end + test "rendering" do - json = JbuilderTemplate.encode(binding) do |json| + json = render_jbuilder <<-JBUILDER json.content "hello" - end - - assert_equal "hello", JSON.parse(json)["content"] + JBUILDER + + assert_equal "hello", MultiJson.load(json)["content"] end test "key_format! with parameter" do - json = JbuilderTemplate.new(binding) - json.key_format! :camelize => [:lower] - json.camel_style "for JS" + json = render_jbuilder <<-JBUILDER + json.key_format! :camelize => [:lower] + json.camel_style "for JS" + JBUILDER - assert_equal ['camelStyle'], json.attributes!.keys + assert_equal ['camelStyle'], MultiJson.load(json).keys end test "key_format! propagates to child elements" do - json = JbuilderTemplate.new(binding) - json.key_format! :upcase - json.level1 "one" - json.level2 do |json| - json.value "two" - end + json = render_jbuilder <<-JBUILDER + json.key_format! :upcase + json.level1 "one" + json.level2 do |json| + json.value "two" + end + JBUILDER - result = json.attributes! + result = MultiJson.load(json) assert_equal "one", result["LEVEL1"] assert_equal "two", result["LEVEL2"]["VALUE"] + end + + test "partial! renders partial" do + json = render_jbuilder <<-JBUILDER + json.partial! 'partial' + JBUILDER + + assert_equal "hello", MultiJson.load(json)["content"] end end