express_admin 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/express_admin.js +2 -0
  3. data/app/assets/javascripts/express_admin/admin.js +2 -0
  4. data/app/assets/stylesheets/express_admin.css +0 -5
  5. data/app/assets/stylesheets/express_admin/components/_definition.sass +8 -0
  6. data/app/assets/stylesheets/express_admin/components/_pane.sass +2 -2
  7. data/app/assets/stylesheets/express_admin/components/_sub_menu.sass +2 -2
  8. data/app/assets/stylesheets/express_admin/components/_widget_box.sass +4 -4
  9. data/app/assets/stylesheets/express_admin/globals/_foundation_overrides.sass +2 -1
  10. data/app/assets/stylesheets/express_admin/globals/_mixins.sass +0 -2
  11. data/app/assets/stylesheets/express_admin/plugins/_select2.sass +475 -68
  12. data/app/assets/stylesheets/express_admin/plugins/_tinymce.sass +2 -0
  13. data/app/assets/stylesheets/express_admin/screen.sass +6 -1
  14. data/app/assets/stylesheets/express_admin/sections/_header.sass +1 -0
  15. data/app/assets/stylesheets/express_admin/sections/_main_content.sass +6 -2
  16. data/app/assets/stylesheets/express_admin/sections/_main_region.sass +10 -7
  17. data/app/assets/stylesheets/express_admin/sections/_page_body.sass +6 -3
  18. data/app/assets/stylesheets/express_admin/sections/_page_sidebar.sass +6 -2
  19. data/app/assets/stylesheets/express_admin/sections/_sidebar_region.sass +4 -3
  20. data/app/assets/stylesheets/express_admin/shared/_buttons.sass +0 -1
  21. data/app/assets/stylesheets/express_admin/shared/_forms.sass +14 -2
  22. data/app/assets/stylesheets/express_admin/shared/_trees.sass +7 -3
  23. data/app/assets/stylesheets/ionicons/{ionicons.css.sass → ionicons.sass} +0 -0
  24. data/app/components/express_admin/addon_sidebar_component.rb +23 -34
  25. data/app/components/express_admin/definition_list.rb +38 -0
  26. data/app/components/express_admin/definition_table.rb +51 -0
  27. data/app/components/express_admin/flash_message_component.rb +5 -11
  28. data/app/components/express_admin/layout_component.rb +2 -9
  29. data/app/components/express_admin/main_region.rb +4 -4
  30. data/app/components/express_admin/mega_menu_component.rb +40 -34
  31. data/app/components/express_admin/page_header_component.rb +8 -18
  32. data/app/components/express_admin/pane.rb +13 -10
  33. data/app/components/express_admin/setting_form.rb +23 -20
  34. data/app/components/express_admin/sidebar_region.rb +6 -4
  35. data/app/components/express_admin/smart_form.rb +21 -18
  36. data/app/components/express_admin/smart_table.rb +44 -40
  37. data/app/components/express_admin/widget_box.rb +8 -8
  38. data/app/helpers/express_admin/admin_helper.rb +1 -1
  39. data/app/views/devise/sessions/new.html.et +63 -0
  40. data/app/views/layouts/express_admin/admin.html.et +8 -9
  41. data/app/views/shared/express_admin/_navigation_bar.html.et +6 -5
  42. data/config/tinymce.yml +29 -0
  43. data/lib/core_extensions/string_promptify.rb +9 -0
  44. data/lib/express_admin.rb +1 -0
  45. data/lib/express_admin/engine.rb +11 -9
  46. data/lib/express_admin/version.rb +1 -1
  47. data/lib/generators/express_admin/install/install_generator.rb +7 -0
  48. data/lib/generators/express_admin/install/templates/views/devise/sessions/new.html.et +1 -0
  49. data/test/dummy/app/views/demo/sign_in.html.et +6 -6
  50. data/test/dummy/db/test.sqlite3 +0 -0
  51. data/test/dummy/log/test.log +11361 -0
  52. data/test/dummy/test/components/smart_form_test.rb +57 -34
  53. data/test/dummy/test/components/smart_table_test.rb +35 -35
  54. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1EoyfDwFVtgMAOjo7HPkor8TQbVaioOFx9hildx_DTQ.cache +0 -0
  55. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4OPIkynisipUm8vKo57HUhBMWFSHBno_IH6OdpK29IA.cache +1 -0
  56. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4hK1AdPGHbXGkebvk-nSvhxtCdOSlMYNWvA43CvQKhI.cache +0 -0
  57. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6c0H20s6oHf45XogeDELaojxa0PX1NmirTTWV1ClcRw.cache +0 -0
  58. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9QvwPXfTSVmgQX6tdK9GuCn0--MZ8Z8eJJbHpUEq1p8.cache +1 -0
  59. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BoKdGhgi5NHfGTc42p9nltpEIYj_BBUxVdv7YhpBmmA.cache +0 -0
  60. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GJGMlSyTg1AvPCV_6PaLOTVEKbHeVKY1jhCoaKuRlxM.cache +1 -0
  61. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/H0aD5KRj-4fhORkqWcWZfKPOQfu_ggvt4OmYOl4S5mw.cache +0 -0
  62. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IBLgVNsKBbJxN8NQnh6zTc3bC_OG-8BhtA3xCNDV6ks.cache +1 -0
  63. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Po8q4NrWy9Kymnz_HbOk-WbdGY_KuuXc6urGogTHe7U.cache +0 -0
  64. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/V1aP9G-CVtOLR5PTnHleid8WC9TSfFAT1DzAygp_5CQ.cache +1 -0
  65. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WhePtBvZPmF1Jhdcc4glsjhxBJQo9Qw0CDgy_F8lClY.cache +0 -0
  66. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dVokuKbK8HbOtvPIksKGBAYE8x44l372dQ0gEISqbdo.cache +0 -0
  67. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oN1zSGeSEz4KhkAuUF_yFDsCVPkulfFjomEAjFzGdPc.cache +0 -0
  68. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qIeSoker4TjM7JYRQTOjgRd4nN0WeHnNY1GMK7Zpe8M.cache +0 -0
  69. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/tTFLM1bjKSeg4nyH7GWbTY6JVvuYhNKFFvsOMS9h8O0.cache +0 -0
  70. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/tzX-HHF4F70o-aSB9Z_duoPxFGDv3auYnrpko9SYafU.cache +1 -0
  71. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vMbWbI1SO5bEaiu2pRvV8NDmms_j5flYoRvCSJavhdU.cache +0 -0
  72. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ypZCDLo54Pz2ZoUxrxSEUjT5FYMAq8Ozp8OTOYDRdAE.cache +0 -0
  73. data/test/fixtures/categories.yml +8 -0
  74. data/test/test_helper.rb +34 -0
  75. data/vendor/gems/express_templates/CHANGELOG.md +12 -0
  76. data/vendor/gems/express_templates/Gemfile.lock +4 -1
  77. data/vendor/gems/express_templates/README.md +22 -41
  78. data/vendor/gems/express_templates/express_templates.gemspec +1 -0
  79. data/vendor/gems/express_templates/lib/arbre/patches.rb +50 -0
  80. data/vendor/gems/express_templates/lib/core_extensions/proc.rb +1 -0
  81. data/vendor/gems/express_templates/lib/express_templates.rb +2 -3
  82. data/vendor/gems/express_templates/lib/express_templates/compiler.rb +2 -7
  83. data/vendor/gems/express_templates/lib/express_templates/components.rb +1 -9
  84. data/vendor/gems/express_templates/lib/express_templates/components/base.rb +33 -37
  85. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/resourceful.rb +30 -18
  86. data/vendor/gems/express_templates/lib/express_templates/components/configurable.rb +41 -0
  87. data/vendor/gems/express_templates/lib/express_templates/components/form_rails_support.rb +5 -6
  88. data/vendor/gems/express_templates/lib/express_templates/components/forms.rb +0 -1
  89. data/vendor/gems/express_templates/lib/express_templates/components/forms/basic_fields.rb +3 -6
  90. data/vendor/gems/express_templates/lib/express_templates/components/forms/checkbox.rb +1 -1
  91. data/vendor/gems/express_templates/lib/express_templates/components/forms/express_form.rb +15 -25
  92. data/vendor/gems/express_templates/lib/express_templates/components/forms/form_component.rb +20 -11
  93. data/vendor/gems/express_templates/lib/express_templates/components/forms/option_support.rb +2 -2
  94. data/vendor/gems/express_templates/lib/express_templates/components/forms/radio.rb +7 -8
  95. data/vendor/gems/express_templates/lib/express_templates/components/forms/select.rb +61 -37
  96. data/vendor/gems/express_templates/lib/express_templates/components/forms/select_collection.rb +2 -8
  97. data/vendor/gems/express_templates/lib/express_templates/components/forms/submit.rb +7 -6
  98. data/vendor/gems/express_templates/lib/express_templates/components/tree_for.rb +26 -42
  99. data/vendor/gems/express_templates/lib/express_templates/version.rb +1 -1
  100. data/vendor/gems/express_templates/test/components/base_test.rb +17 -15
  101. data/vendor/gems/express_templates/test/components/capabilities/resourceful_test.rb +3 -3
  102. data/vendor/gems/express_templates/test/components/configurable_test.rb +27 -21
  103. data/vendor/gems/express_templates/test/components/forms/basic_fields_test.rb +57 -17
  104. data/vendor/gems/express_templates/test/components/forms/checkbox_test.rb +16 -22
  105. data/vendor/gems/express_templates/test/components/forms/express_form_test.rb +23 -76
  106. data/vendor/gems/express_templates/test/components/forms/radio_test.rb +31 -27
  107. data/vendor/gems/express_templates/test/components/forms/select_test.rb +46 -71
  108. data/vendor/gems/express_templates/test/components/forms/submit_test.rb +10 -5
  109. data/vendor/gems/express_templates/test/components/tree_for_test.rb +24 -52
  110. data/vendor/gems/express_templates/test/dummy/app/views/hello/show.html.et +4 -3
  111. data/vendor/gems/express_templates/test/dummy/app/views/layouts/application.html.et +1 -1
  112. data/vendor/gems/express_templates/test/dummy/log/test.log +4296 -0
  113. data/vendor/gems/express_templates/test/express_templates_test.rb +5 -1
  114. data/vendor/gems/express_templates/test/handler_test.rb +19 -17
  115. data/vendor/gems/express_templates/test/performance_test.rb +11 -7
  116. data/vendor/gems/express_templates/test/test_helper.rb +162 -1
  117. metadata +58 -47
  118. data/app/assets/stylesheets/express_admin/components/_megadropdown.sass +0 -66
  119. data/vendor/gems/express_templates/diagrams/diagram.graffle +0 -2404
  120. data/vendor/gems/express_templates/diagrams/diagram_express_templates.png +0 -0
  121. data/vendor/gems/express_templates/diagrams/diagram_haml_erb.png +0 -0
  122. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/adoptable.rb +0 -20
  123. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/building.rb +0 -14
  124. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/conditionality.rb +0 -54
  125. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/configurable.rb +0 -90
  126. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/iterating.rb +0 -75
  127. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/parenting.rb +0 -72
  128. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/rendering.rb +0 -30
  129. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/templating.rb +0 -198
  130. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/wrapping.rb +0 -84
  131. data/vendor/gems/express_templates/lib/express_templates/components/column.rb +0 -13
  132. data/vendor/gems/express_templates/lib/express_templates/components/container.rb +0 -7
  133. data/vendor/gems/express_templates/lib/express_templates/components/content_for.rb +0 -42
  134. data/vendor/gems/express_templates/lib/express_templates/components/for_each.rb +0 -30
  135. data/vendor/gems/express_templates/lib/express_templates/components/forms/form_support.rb +0 -13
  136. data/vendor/gems/express_templates/lib/express_templates/components/null_wrap.rb +0 -41
  137. data/vendor/gems/express_templates/lib/express_templates/components/row.rb +0 -28
  138. data/vendor/gems/express_templates/lib/express_templates/components/table_for.rb +0 -163
  139. data/vendor/gems/express_templates/lib/express_templates/components/unless_block.rb +0 -40
  140. data/vendor/gems/express_templates/lib/express_templates/expander.rb +0 -140
  141. data/vendor/gems/express_templates/lib/express_templates/macro.rb +0 -45
  142. data/vendor/gems/express_templates/lib/express_templates/markup.rb +0 -9
  143. data/vendor/gems/express_templates/lib/express_templates/markup/html_tag.rb +0 -62
  144. data/vendor/gems/express_templates/lib/express_templates/markup/tag.rb +0 -150
  145. data/vendor/gems/express_templates/lib/express_templates/markup/wrapper.rb +0 -94
  146. data/vendor/gems/express_templates/lib/express_templates/markup/yielder.rb +0 -21
  147. data/vendor/gems/express_templates/test/components/column_test.rb +0 -11
  148. data/vendor/gems/express_templates/test/components/conditionality_test.rb +0 -37
  149. data/vendor/gems/express_templates/test/components/container_test.rb +0 -66
  150. data/vendor/gems/express_templates/test/components/content_for_test.rb +0 -60
  151. data/vendor/gems/express_templates/test/components/iterating_test.rb +0 -127
  152. data/vendor/gems/express_templates/test/components/null_wrap_test.rb +0 -28
  153. data/vendor/gems/express_templates/test/components/row_test.rb +0 -16
  154. data/vendor/gems/express_templates/test/components/table_for_test.rb +0 -211
  155. data/vendor/gems/express_templates/test/expander_stack_test.rb +0 -41
  156. data/vendor/gems/express_templates/test/expander_test.rb +0 -99
  157. data/vendor/gems/express_templates/test/markup/tag_test.rb +0 -149
  158. data/vendor/gems/express_templates/test/markup/wrapper_test.rb +0 -42
  159. data/vendor/gems/express_templates/test/markup/yielder_test.rb +0 -9
@@ -1,41 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ExpanderStackTest < ActiveSupport::TestCase
4
-
5
- def new_stack
6
- ExpressTemplates::Expander::Stack.new
7
- end
8
-
9
- test "#current is empty" do
10
- assert_empty new_stack.current
11
- end
12
-
13
- test "#<< adds something to the current" do
14
- stack = new_stack
15
- stack << 'foo'
16
- assert_equal ['foo'], stack.current
17
- end
18
-
19
- test "#all returns the stack" do
20
- assert_equal [[]], new_stack.all
21
- end
22
-
23
- test "#descend! adds a level to the stack and updates current" do
24
- stack = new_stack
25
- stack << 'foo'
26
- level = stack.descend!
27
- assert_equal 2, stack.all.count
28
- assert_equal [], stack.current
29
- assert_equal 1, level
30
- end
31
-
32
- test "#ascend!" do
33
- stack = new_stack
34
- stack << 'foo'
35
- level_1 = stack.descend!
36
- level_2 = stack.descend!
37
- level = stack.ascend!
38
- assert_equal level_1, level
39
- end
40
-
41
- end
@@ -1,99 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ExpanderTest < ActiveSupport::TestCase
4
-
5
- class Foo < ExpressTemplates::Markup::Tag ; end
6
- class Bar < ExpressTemplates::Markup::Tag ; end
7
- class Baz < ExpressTemplates::Markup::Tag ; end
8
-
9
- ExpressTemplates::Expander.register_macros_for(Foo,Bar,Baz)
10
-
11
- test "#expand returns an array containing a component" do
12
- source = "foo"
13
- result = ExpressTemplates::Expander.new(nil).expand(source)
14
- assert_kind_of ExpressTemplates::Markup::Tag, result.first
15
- end
16
-
17
- test "#expand of 'foo { foo } returns a component with a child component" do
18
- source = 'foo { foo }'
19
- result = ExpressTemplates::Expander.new(nil).expand(source)
20
- assert_kind_of Foo, result.first.children.first
21
- end
22
-
23
- test "#expand of 'foo { bar ; baz } returns a component with two children" do
24
- source = 'foo { bar ; baz }'
25
- result = ExpressTemplates::Expander.new(nil).expand(source)
26
- assert_equal 2, result.first.children.size
27
- assert_kind_of Bar, result.first.children.first
28
- assert_kind_of Baz, result.first.children.last
29
- end
30
-
31
- test "#expand of macros with args returns a component with two children" do
32
- source = 'foo { bar(fiz: "buzz") ; baz }'
33
- result = ExpressTemplates::Expander.new(nil).expand(source)
34
- assert_equal 2, result.first.children.size
35
- assert_kind_of Bar, result.first.children.first
36
- assert_kind_of Baz, result.first.children.last
37
- end
38
-
39
- test "#expand correctly allocated helpers and parameters" do
40
- source = 'helper ; foo { buzz }'
41
- result = ExpressTemplates::Expander.new(nil).expand(source)
42
- assert_equal 0, result.first.children.size
43
- assert_equal 1, result[1].children.size
44
- assert_kind_of ExpressTemplates::Markup::Wrapper, result.first
45
- assert_kind_of Foo, result[1]
46
- assert_kind_of ExpressTemplates::Markup::Wrapper, result[1].children.first
47
- end
48
-
49
- test "#expand works with css class specification syntax xxx" do
50
- source = 'foo.active { baz }'
51
- result = ExpressTemplates::Expander.new(nil).expand(source)
52
- assert_equal 1, result[0].children.size
53
- end
54
-
55
- test "#expand doesn't yield [] for children" do
56
- source = %Q(ul(class: 'title-area') {
57
- li.name {
58
- a("Something", href: '#', disabled: true)
59
- }
60
- li(class:"ugly markup") {
61
- a(href: "#") { span "menu item" }
62
- }
63
- })
64
- result = ExpressTemplates::Expander.new(nil).expand(source)
65
- child_of_first_child = result.first.children.first
66
- assert_equal 1, child_of_first_child.children.size
67
- assert_kind_of ExpressTemplates::Markup::Tag, child_of_first_child.children.first
68
- end
69
-
70
- class Special
71
- def self.render(label)
72
- :dummy
73
- end
74
- end
75
-
76
- test "initializer accepts special handlers hash" do
77
- source = "render(:markup)"
78
- assert_equal [:dummy], ExpressTemplates::Expander.new(nil, render: Special).expand(source)
79
- end
80
-
81
- test "helpers can take blocks" do
82
- result = ExpressTemplates::Expander.new(nil).expand do
83
- helper do
84
- foo
85
- end
86
- end
87
- assert_equal %q(%Q(#{helper do
88
- foo
89
- end})), Interpolator.transform(result.first.compile)
90
- end
91
-
92
- # NOTE: This probably should be deleted as {{helper}} is preferred
93
- test "non-interpolated string children containing string interpolations will interpolate in context" do
94
- source = 'p %q(some text #{helper})'
95
- result = ExpressTemplates::Expander.new(nil).expand(source)
96
- assert_equal %q("<p>"+"some text #{helper}"+"</p>"), result.first.compile
97
- end
98
-
99
- end
@@ -1,149 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TagTest < ActiveSupport::TestCase
4
-
5
- class Bare < ExpressTemplates::Markup::Tag ; end
6
- class Sub < ExpressTemplates::Markup::Tag ; end
7
-
8
- def bare_tag(*args)
9
- Bare.new(*args)
10
- end
11
-
12
- def sub_tag(*args)
13
- Sub.new(*args)
14
- end
15
-
16
-
17
- # NOTE: Due to formatting html leading newlines may be
18
- # required for test values. These are stripped for the
19
- # first tag during ExpressTemplates.compile
20
-
21
- test "#macro_name returns the name of the class" do
22
- assert_equal 'bare', bare_tag.macro_name
23
- end
24
-
25
- test "#compile returns a string" do
26
- assert_kind_of String, bare_tag.compile
27
- end
28
-
29
- test "has no children" do
30
- assert_empty bare_tag.children
31
- end
32
-
33
- def bare_with_2_children
34
- tag = bare_tag "child1", "child2"
35
- end
36
-
37
- test "can be created with children" do
38
- assert_equal 2, bare_with_2_children.children.size
39
- assert_equal "child2", bare_with_2_children.children.last
40
- end
41
-
42
- test "#compile on bare_with_2_children yields '\"<bare>\"+\"child1\"+\"child2\"+\"</bare>\"'" do
43
- assert_equal '"<bare>"+"child1"+"child2"+"</bare>"', bare_with_2_children.compile
44
- end
45
-
46
- test "#start_tag is my macro_name as an xml start tag" do
47
- assert_equal "<#{bare_tag.macro_name}>", bare_tag.start_tag
48
- end
49
-
50
- test "#close_tag is my macro_name as an xml close tag" do
51
- assert_equal "</#{bare_tag.macro_name}>", bare_tag.close_tag
52
- end
53
-
54
- def tag_with_subtag
55
- bare_tag sub_tag
56
- end
57
-
58
- test "#compile on tag_with_subtag returns a string which when eval'd looks like '<bare><sub /></bare>'" do
59
- assert_equal '<bare><sub /></bare>', eval(tag_with_subtag.compile)
60
- end
61
-
62
- test "#to_template on bare_tag returns 'bare'" do
63
- assert_equal 'bare', bare_tag.to_template
64
- end
65
-
66
- test "#to_template on tag_with_subtag returns 'bare {\n sub\n}\n'" do
67
- assert_equal "bare {\n sub\n}\n", tag_with_subtag.to_template
68
- end
69
-
70
- test "#to_template on nested tags indents properly'" do
71
- expected = %Q(bare {
72
- sub {
73
- sub
74
- }
75
- }
76
- )
77
- assert_equal expected, Bare.new(Sub.new(Sub.new)).to_template
78
- end
79
-
80
- test "double bracketed option values are substituted for evaluation in context" do
81
- assert_equal '"<bare should_eval_in_context=\"#{foo}\" />"',
82
- Interpolator.transform(bare_tag(should_eval_in_context: "{{foo}}").compile)
83
- end
84
-
85
- test "double bracketed child values are substituted for evaluation in context" do
86
- assert_equal '"<bare>"+"#{foo}"+"</bare>"',
87
- Interpolator.transform(bare_tag("{{foo}}").compile)
88
- end
89
-
90
- test "data option value hashes are converted to data attributes similar to haml" do
91
- assert_equal %("<bare data-one=\\"two\\" data-three=\\"four\\" />"),
92
- bare_tag(data: {one: 'two', three: 'four'}).compile
93
- end
94
-
95
- test "data option value hashes can take immediate values" do
96
- assert_equal %("<bare data-foo=\\"true\\" data-bar=\\"42\\" data-baz=\\"blah\\" />"),
97
- bare_tag(data: {foo: true, bar: 42, baz: 'blah'}).compile
98
- end
99
-
100
-
101
- # todo?
102
- # test "proc option values are evaluated in context"
103
-
104
- test "empty tags use abbreviated empty tag form" do
105
- assert_equal '"<bare />"', bare_tag.compile
106
- end
107
-
108
- test "empty i tag does does not use abbreviated form since it is used for icons" do
109
- assert_equal '"<i>"+"</i>"', ExpressTemplates::Markup::I.new.compile
110
- end
111
-
112
- test "method missing returns self" do
113
- tag = bare_tag
114
- assert_equal tag, tag.foo
115
- end
116
-
117
- # the block form of this is tested in expander
118
- test "children still evaluated after css class provided via method syntax" do
119
- assert_equal '"<bare class=\"foo\">"+"<sub />"+"</bare>"', (bare_tag.foo(sub_tag)).compile
120
- end
121
-
122
- test "CSS classes specified with underscored method get translated to dashed" do
123
- assert_equal '"<bare class=\"foo-bar\" />"', bare_tag._foo_bar.compile
124
- end
125
-
126
- test "dom ID may be passed as a symbol" do
127
- assert_equal '"<bare id=\"foo\" />"', bare_tag(:foo).compile
128
- end
129
-
130
- test "proc option values are evaluated in context" do
131
- assert_equal '"<bare id=\"#{(-> { awesome }).call}\" />"', bare_tag(id: -> { awesome }).compile
132
- end
133
-
134
- test "markup is indented" do
135
- ExpressTemplates::Markup::Tag.formatted do
136
- code = ExpressTemplates.compile &-> {ul { li { "*"*36 }}}
137
- assert_equal "\n<ul>\n <li>#{"*"*36}</li>\n</ul>\n", eval(code)
138
- end
139
- end
140
-
141
- test "print doctype for HTML5 document version" do
142
- assert_equal '"<!DOCTYPE html>"', ExpressTemplates::Markup::Doctype.new.compile
143
- end
144
-
145
- test "void tags do not have trailing slash" do
146
- assert_equal '"<img>"', ExpressTemplates::Markup::Img.new.compile
147
- end
148
-
149
- end
@@ -1,42 +0,0 @@
1
- require 'test_helper'
2
-
3
- class WrapperTest < ActiveSupport::TestCase
4
-
5
- Wrapper = ExpressTemplates::Markup::Wrapper
6
-
7
- test "name compiles to just name" do
8
- assert_equal '%Q(#{foo})', Interpolator.transform(Wrapper.new('foo').compile)
9
- end
10
-
11
- test "simple args are preserved" do
12
- wrapper = Wrapper.new('foo', "xyzzy", 'bar', "baz", 1, false, 3)
13
- assert_equal '%Q(#{foo("xyzzy", "bar", "baz", 1, false, 3)})', Interpolator.transform(wrapper.compile)
14
- end
15
-
16
- test "args are preserved" do
17
- wrapper = Wrapper.new('foo', "xyzzy", bar: "baz")
18
- assert_equal '%Q(#{foo("xyzzy", bar: "baz")})', Interpolator.transform(wrapper.compile)
19
- end
20
-
21
- test "something returning nil when wrapped and compiled, evals to an empty string" do
22
- assert_equal '', eval(Interpolator.transform(Wrapper.new('nil').compile))
23
- end
24
-
25
- test "double-braced args are evaluated in context" do
26
- wrapper = Wrapper.new('foo', "{{xyz}}", "{{zyx}}", bar: "baz")
27
- assert_equal '%Q(#{foo(xyz, zyx, bar: "baz")})', Interpolator.transform(wrapper.compile)
28
- end
29
-
30
- test "initializer block is preserved in compile" do
31
- wrapper = Wrapper.new('foo') { whatever }
32
- assert_equal '%Q(#{foo { whatever }})', Interpolator.transform(wrapper.compile)
33
- wrapper = Wrapper.new('foo', 'bar') { whatever }
34
- assert_equal '%Q(#{foo("bar") { whatever }})', Interpolator.transform(wrapper.compile)
35
- end
36
-
37
- test "lambda option values are evaluated in context" do
38
- wrapper = Wrapper.new('foo', bar: -> { something })
39
- assert_equal '%Q(#{foo(bar: (-> { something }).call)})', Interpolator.transform(wrapper.compile)
40
- end
41
-
42
- end
@@ -1,9 +0,0 @@
1
- require 'test_helper'
2
-
3
- class YielderTest < ActiveSupport::TestCase
4
-
5
- test "yielder preserves symbol args" do
6
- assert_equal 'yield(:foo)', ExpressTemplates::Markup::Yielder.new(:foo).compile
7
- end
8
-
9
- end