File: test_plist_renderer.rb

package info (click to toggle)
ruby-rabl-rails 0.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 268 kB
  • ctags: 179
  • sloc: ruby: 1,480; makefile: 2
file content (42 lines) | stat: -rw-r--r-- 1,360 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
require 'helper'

class TestPListRenderer < MINITEST_TEST_CLASS
  INDENT_REGEXP = /\n(\s)*/
  HEADER_REGEXP = /<\?[^>]+><![^>]+>/

   describe 'PList renderer' do
    def render
      output = RablRails::Renderers::PLIST.render(@template, @context).to_s.gsub!(INDENT_REGEXP, '')
      output.sub!(HEADER_REGEXP, '').gsub!(%r(</?plist[^>]*>), '').sub!(%r(<dict/?>), '').sub(%r(</dict>), '')
    end

    before do
      @resource = User.new(1, 'Marty')
      @context  = Context.new
      @context.assigns['user'] = @resource
      @template = RablRails::CompiledTemplate.new
      @template.data = :@user
      @template.add_node RablRails::Nodes::Attribute.new(name: :name)
    end

    it 'extends hash renderer' do
      RablRails::Renderers::PLIST.ancestors.include?(RablRails::Renderers::Hash)
    end

    it 'renders PList' do
      assert_equal %q(<key>name</key><string>Marty</string>), render
    end

    it 'uses template root_name option if include_plist_root is set' do
      @template.root_name = :user
      with_configuration :include_plist_root, true do
        assert_equal %q(<key>user</key><dict><key>name</key><string>Marty</string></dict>), render
      end
    end

    it 'ignores template root_name by default' do
      @template.root_name = :user
      assert_equal %q(<key>name</key><string>Marty</string>), render
    end
  end
end