macros_helper_test.rb
5.41 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
require File.dirname(__FILE__) + '/../test_helper'
class MacrosHelperTest < ActiveSupport::TestCase
include MacrosHelper
include ApplicationHelper
include ActionView::Helpers::FormOptionsHelper
include ActionView::Helpers::FormTagHelper
include ActionView::Helpers::TagHelper
CONFIG = {
:params => [
{ :name => :identifier, :type => 'text'},
{ :name => :size, :type => 'select',
:values => [
[_('Big'), :big],
[_('Icon'), :icon],
[_('Minor'), :minor],
[_('Portrait'), :portrait],
[_('Thumb'), :thumb]
],
:default => :portrait
}
],
:title => _('Profile Image Link')
}
should 'generate html for macro configuration' do
@environment = Environment.default
Environment.macros = {}
macros = Environment.macros[@environment.id] = {}
plugin_instance = mock
plugin_instance.stubs('config_macro_example').returns(CONFIG)
macros['macro_example'] = plugin_instance
html = macro_configuration_dialog('macro_example')
assert_tag_in_string html, :tag => 'label', :content => _('Identifier')
assert_tag_in_string html, :tag => 'input', :attributes => {:name => 'identifier'}
assert_tag_in_string html, :tag => 'label', :content => 'size'.humanize
assert_tag_in_string html, :tag => 'select', :attributes => {:name => 'size'}, :descendant => {:tag => 'option', :attributes => {:value => 'big'}, :content => _('Big')}
assert_tag_in_string html, :tag => 'select', :attributes => {:name => 'size'}, :descendant => {:tag => 'option', :attributes => {:value => 'icon'}, :content => _('Icon')}
assert_tag_in_string html, :tag => 'select', :attributes => {:name => 'size'}, :descendant => {:tag => 'option', :attributes => {:value => 'minor'}, :content => _('Minor')}
assert_tag_in_string html, :tag => 'select', :attributes => {:name => 'size'}, :descendant => {:tag => 'option', :attributes => {:value => 'portrait', :selected => true}, :content => _('Portrait')}
assert_tag_in_string html, :tag => 'select', :attributes => {:name => 'size'}, :descendant => {:tag => 'option', :attributes => {:value => 'thumb'}, :content => _('Thumb')}
end
should 'get macro title' do
@environment = Environment.default
Environment.macros = {}
macros = Environment.macros[@environment.id] = {}
plugin_instance = mock
plugin_instance.stubs('config_macro_example').returns(CONFIG)
macros['macro_example'] = plugin_instance
title = macro_title('macro_example')
assert _('Profile Image Link'), title
end
should 'get only macros in menu' do
@environment = Environment.default
Environment.macros = {}
macros = Environment.macros[@environment.id] = {}
plugin_instance = mock
plugin_instance.stubs('config_macro_example').returns({})
macros['macro_example'] = plugin_instance
plugin_instance_other = mock
plugin_instance_other.stubs('config_macro_example_other').returns({:icon_path => 'icon.png'})
macros['macro_example_other'] = plugin_instance_other
assert_equal [plugin_instance], macros_in_menu.values
end
should 'get only macros with buttons' do
@environment = Environment.default
Environment.macros = {}
macros = Environment.macros[@environment.id] = {}
plugin_instance = mock
plugin_instance.stubs('config_macro_example').returns({})
macros['macro_example'] = plugin_instance
plugin_instance_other = mock
plugin_instance_other.stubs('config_macro_example_other').returns({:icon_path => 'icon.png'})
macros['macro_example_other'] = plugin_instance_other
assert_equal [plugin_instance_other], macros_with_buttons.values
end
should 'skip macro config dialog and call generator directly' do
@environment = Environment.default
Environment.macros = {}
macros = Environment.macros[@environment.id] = {}
plugin_instance = mock
plugin_instance.stubs('config_macro_example').returns({:skip_dialog => true, :generator => '', :params => [] })
macros['macro_example'] = plugin_instance
assert_equal 'function(){}', generate_macro_config_dialog('macro_example')
end
should 'include js files' do
@environment = Environment.default
Environment.macros = {}
macros = Environment.macros[@environment.id] = {}
plugin_instance = mock
plugin_instance.stubs('config_macro_example').returns({:js_files => 'macro.js' })
plugin_instance.class.stubs(:public_path).with('macro.js').returns('macro.js')
macros['macro_example'] = plugin_instance
assert_equal '<script src="/javascripts/macro.js" type="text/javascript"></script>', include_macro_js_files
end
should 'get macro css files' do
@environment = Environment.default
Environment.macros = {}
macros = Environment.macros[@environment.id] = {}
plugin_instance = mock
plugin_instance.stubs('config_macro_example').returns({:css_files => 'macro.css' })
plugin_instance.class.stubs(:public_path).with('macro.css').returns('macro.css')
macros['macro_example'] = plugin_instance
assert_equal 'macro.css', macro_css_files
end
should 'get macro specific generator' do
@environment = Environment.default
Environment.macros = {}
macros = Environment.macros[@environment.id] = {}
plugin_instance = mock
plugin_instance.stubs('config_macro_example').returns({:generator => 'macro_generator' })
macros['macro_example'] = plugin_instance
assert_equal 'macro_generator', macro_generator('macro_example')
end
end