viewaide 0.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.
- data/.gitignore +6 -0
- data/MIT-LICENSE +20 -0
- data/Manifest +31 -0
- data/README.textile +3 -0
- data/Rakefile +20 -0
- data/VERSION +1 -0
- data/lib/viewaide/helpers/date_helper.rb +15 -0
- data/lib/viewaide/helpers/form_helper.rb +68 -0
- data/lib/viewaide/helpers/grid_helper.rb +178 -0
- data/lib/viewaide/helpers/jquery_helper.rb +21 -0
- data/lib/viewaide/helpers/link_helper.rb +21 -0
- data/lib/viewaide/helpers/message_helper.rb +32 -0
- data/lib/viewaide/helpers/navigation_helper.rb +29 -0
- data/lib/viewaide/helpers/rjs_helper.rb +20 -0
- data/lib/viewaide/helpers/structure_helper.rb +43 -0
- data/lib/viewaide/helpers/table_helper.rb +61 -0
- data/lib/viewaide/helpers.rb +81 -0
- data/lib/viewaide/rails_partial_caching.rb +40 -0
- data/lib/viewaide.rb +3 -0
- data/rails/init.rb +4 -0
- data/tasks/viewaide_tasks.rake +0 -0
- data/test/date_helper_test.rb +59 -0
- data/test/form_helper_test.rb +135 -0
- data/test/grid_helper_test.rb +226 -0
- data/test/jquery_helper_test.rb +30 -0
- data/test/link_helper_test.rb +44 -0
- data/test/message_helper_test.rb +50 -0
- data/test/navigation_helper_test.rb +130 -0
- data/test/rjs_helper_test.rb +47 -0
- data/test/structure_helper_test.rb +54 -0
- data/test/table_helper_test.rb +112 -0
- data/test/test_helper.rb +34 -0
- data/viewaide.gemspec +91 -0
- metadata +126 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
module ActionView
|
2
|
+
module Partials
|
3
|
+
private
|
4
|
+
|
5
|
+
def render_partial_with_viewaide(*args)
|
6
|
+
path = args.first[:partial]
|
7
|
+
locals = args.last || {}
|
8
|
+
|
9
|
+
viewaide_cached_column_counts = session[:viewaide_cached_column_counts] ||= {}
|
10
|
+
|
11
|
+
if viewaide_cached_column_counts.keys.include?(path)
|
12
|
+
@_viewaide_column_count = locals[:viewaide_width] || viewaide_cached_column_counts[path]
|
13
|
+
viewaide_cached_column_counts[path] = @_viewaide_column_count
|
14
|
+
else
|
15
|
+
if @_viewaide_column_count.is_a?(Fixnum) && path !~ /^layout/
|
16
|
+
viewaide_cached_column_counts[path] = @_viewaide_column_count
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
render_partial_without_viewaide(*args)
|
21
|
+
end
|
22
|
+
|
23
|
+
alias_method_chain :render_partial, :viewaide
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
module Viewaide
|
28
|
+
module PartialCaching
|
29
|
+
def self.included(base)
|
30
|
+
base.send :include, Viewaide::PartialCaching::InstanceMethods
|
31
|
+
base.before_filter :clear_viewaide_cache
|
32
|
+
end
|
33
|
+
|
34
|
+
module InstanceMethods
|
35
|
+
def clear_viewaide_cache
|
36
|
+
session[:viewaide_cached_column_counts] = nil unless request.xhr?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/viewaide.rb
ADDED
data/rails/init.rb
ADDED
File without changes
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class DateHelperTest < ActiveSupport::TestCase
|
4
|
+
include Viewaide::Helpers::DateHelper
|
5
|
+
|
6
|
+
context "datetime helper" do
|
7
|
+
should "default to an empty string if date is not supplied" do
|
8
|
+
assert_equal "", datetime(nil)
|
9
|
+
end
|
10
|
+
|
11
|
+
should "default to passed default text if date is not supplied" do
|
12
|
+
assert_equal "default text", datetime(nil, "default text")
|
13
|
+
end
|
14
|
+
|
15
|
+
should "default to :long format for date" do
|
16
|
+
timestamp = Time.now
|
17
|
+
assert_equal timestamp.to_s(:long), datetime(timestamp)
|
18
|
+
end
|
19
|
+
|
20
|
+
should "use passed format if applicable" do
|
21
|
+
timestamp = Time.now
|
22
|
+
assert_equal timestamp.to_s(:short), datetime(timestamp, "", :short)
|
23
|
+
end
|
24
|
+
|
25
|
+
should "convert passed data to a time" do
|
26
|
+
datestamp = Date.today
|
27
|
+
timestamp = datestamp.to_time
|
28
|
+
assert_equal timestamp.to_s(:long), datetime(datestamp)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context "date helper" do
|
33
|
+
should "default to an empty string if date is not supplied" do
|
34
|
+
assert_equal "", date(nil)
|
35
|
+
end
|
36
|
+
|
37
|
+
should "default to passed default text if date is not supplied" do
|
38
|
+
assert_equal "default text", date(nil, "default text")
|
39
|
+
end
|
40
|
+
|
41
|
+
should "default to :long format for date" do
|
42
|
+
datestamp = Date.today
|
43
|
+
assert_equal datestamp.to_s(:long), date(datestamp)
|
44
|
+
end
|
45
|
+
|
46
|
+
should "use passed format if applicable" do
|
47
|
+
datestamp = Date.today
|
48
|
+
assert_equal datestamp.to_s(:short), date(datestamp, "", :short)
|
49
|
+
end
|
50
|
+
|
51
|
+
should "convert passed data to a time" do
|
52
|
+
timestamp = Time.now
|
53
|
+
datestamp = timestamp.to_date
|
54
|
+
|
55
|
+
assert_equal datestamp.to_s(:long), date(timestamp)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class FormHelperTest < Viewaide::ViewTestCase
|
4
|
+
|
5
|
+
context "submit_button" do
|
6
|
+
|
7
|
+
should "default with the correct structure" do
|
8
|
+
show_view "<%= submit_button 'Create' %>" do
|
9
|
+
assert_select "button.btn[type=submit][value=Create]" do
|
10
|
+
assert_select "span", "Create"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
should "allow adding additional classes" do
|
16
|
+
show_view "<%= submit_button 'Create', 'adtl-class', :dumb %>" do
|
17
|
+
assert_select "button.btn.adtl-class.dumb[type=submit][value=Create]" do
|
18
|
+
assert_select "span", "Create"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
should "handle additional attributes set" do
|
24
|
+
show_view "<%= submit_button 'Create', :kls, :id => 'my-id', :type => 'image' %>" do
|
25
|
+
assert_select "button.btn.kls#my-id[type=image][value=Create]" do
|
26
|
+
assert_select "span", "Create"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
should "allow overriding of value" do
|
32
|
+
show_view "<%= submit_button 'Create', :value => 'override' %>" do
|
33
|
+
assert_select "button.btn[type=submit][value=override]" do
|
34
|
+
assert_select "span", "Create"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
context "set" do
|
42
|
+
|
43
|
+
should "default with the correct structure" do
|
44
|
+
show_view "<% set do %>words<% end %>" do
|
45
|
+
assert_select "div.text", "words"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
should "allow adding/overriding classes" do
|
50
|
+
show_view "<% set :checkbox do %>words<% end %>" do
|
51
|
+
assert_select "div.checkbox", "words"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
should "handle additional attributes set" do
|
56
|
+
show_view "<% set :id => 'custom-id' do %>words<% end %>" do
|
57
|
+
assert_select "div.text#custom-id", "words"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
should "assign default class if width class is passed as the only class" do
|
62
|
+
show_view "<% set :half do %>words<% end %>" do
|
63
|
+
assert_select "div.text.col-12", "words"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
should "assign default class if last class is passed as the only class" do
|
68
|
+
show_view "<% set :half, :last do %>words<% end %>" do
|
69
|
+
assert_select "div.col-12.text.col-last", "words"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
should "assign default class if error class is passed" do
|
74
|
+
show_view "<% set :half, :last, :error do %>words<% end %>" do
|
75
|
+
assert_select "div.col-12.text.col-last.error", "words"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
should "assign default class if the class textarea is present" do
|
80
|
+
show_view "<% set :textarea do %>words<% end %>" do
|
81
|
+
assert_select "div.textarea.text", "words"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
context "fieldset" do
|
88
|
+
|
89
|
+
should "default with the correct structure" do
|
90
|
+
show_view "<% fieldset do %>words<% end %>" do
|
91
|
+
assert_select "fieldset", "words"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
should "assign the first argument as the legend if it is a string" do
|
96
|
+
show_view "<% fieldset 'User Information' do %>words<% end %>" do
|
97
|
+
assert_select "fieldset", /words/ do
|
98
|
+
assert_select "h3.legend", "User Information"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
should "allow adding fieldset classes" do
|
104
|
+
show_view "<% fieldset :hform, 'col-last' do %>words<% end %>" do
|
105
|
+
assert_select "fieldset.hform.col-last", "words"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
should "allow adding fieldset classes and a legend" do
|
110
|
+
show_view "<% fieldset 'User Information', :hform, 'col-last' do %>words<% end %>" do
|
111
|
+
assert_select "fieldset.hform.col-last", /words/ do
|
112
|
+
assert_select "h3.legend", "User Information"
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
should "allow assignment of legend attributes" do
|
118
|
+
show_view "<% fieldset 'User Information', :hform, :legend => {:class => 'lgnd', :id => 'legend-id'} do %>words<% end %>" do
|
119
|
+
assert_select "fieldset.hform", /words/ do
|
120
|
+
assert_select "h3.legend.lgnd#legend-id", "User Information"
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
should "allow assignment of fieldset attributes" do
|
126
|
+
show_view "<% fieldset 'User Information', :hform, :id => 'my-fieldset' do %>words<% end %>" do
|
127
|
+
assert_select "fieldset.hform#my-fieldset", /words/ do
|
128
|
+
assert_select "h3.legend", "User Information"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
@@ -0,0 +1,226 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class GridHelperTest < Viewaide::ViewTestCase
|
4
|
+
|
5
|
+
context "advanced grid structures" do
|
6
|
+
|
7
|
+
should "properly assign classes for a simple column layout" do
|
8
|
+
template = %(
|
9
|
+
<% container do %>
|
10
|
+
<% column do %>
|
11
|
+
<% column :half, :id => "primary" do %>
|
12
|
+
<% column :one_third do %>
|
13
|
+
one third of one half of 24 is 4
|
14
|
+
<% end %>
|
15
|
+
<% column :one_third, :last, prepend_one_third do %>
|
16
|
+
one third of one half of 24 is 4 (but prepended 4 as well)
|
17
|
+
<% end %>
|
18
|
+
<hr/>
|
19
|
+
more text
|
20
|
+
<% end %>
|
21
|
+
<% column :half, :last, :id => "secondary" do %>
|
22
|
+
second column
|
23
|
+
<% end %>
|
24
|
+
<hr/>
|
25
|
+
text
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
28
|
+
)
|
29
|
+
|
30
|
+
show_view template do
|
31
|
+
assert_select ".container", 1
|
32
|
+
assert_select ".container.col-24", 0
|
33
|
+
assert_select ".col-24", 1
|
34
|
+
assert_select ".col-12", 2
|
35
|
+
assert_select ".col-12#primary", 1
|
36
|
+
assert_select ".col-12#secondary", 1
|
37
|
+
assert_select ".col-4", 2
|
38
|
+
assert_select ".prepend-4", 1
|
39
|
+
assert_select ".col-24.col-last", 0
|
40
|
+
assert_select ".col-12.col-last", 1
|
41
|
+
assert_select ".col-4.col-last", 1
|
42
|
+
assert_select "hr", 2
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
should "properly assign classes for generic helpers" do
|
47
|
+
template = %(
|
48
|
+
<% column do %>
|
49
|
+
<% fieldset :hform, :half do %>
|
50
|
+
<% set :one_third do %>text<% end %>
|
51
|
+
<% set :two_thirds, :last do %>more text<% end %>
|
52
|
+
<% end %>
|
53
|
+
<% recordset :half, :last do %>table<% end %>
|
54
|
+
<% end %>
|
55
|
+
)
|
56
|
+
|
57
|
+
show_view template do
|
58
|
+
assert_select "div.col-24" do
|
59
|
+
assert_select "fieldset.hform.col-12" do
|
60
|
+
assert_select "div.col-4", "text"
|
61
|
+
assert_select "div.col-8.col-last", "more text"
|
62
|
+
end
|
63
|
+
assert_select "table.col-12.col-last", "table"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
should "properly assign classes for generic helpers without column wrappers" do
|
69
|
+
template = %(
|
70
|
+
<% fieldset :hform, :half do %>
|
71
|
+
<% set :one_third do %>text<% end %>
|
72
|
+
<% set :two_thirds, :last do %>more text<% end %>
|
73
|
+
<% column do %>
|
74
|
+
<% column :one_third do %>one third<% end %>
|
75
|
+
<% column :two_thirds, :last do %>
|
76
|
+
<% column :half do %>half<% end %>
|
77
|
+
<% column :half, :last do %>last half<% end %>
|
78
|
+
<% end %>
|
79
|
+
<% end %>
|
80
|
+
<% end %>
|
81
|
+
<% column :one_third do %>
|
82
|
+
<% column :one_fourth do %>two wide<% end %>
|
83
|
+
<% column :half do %>four wide<% end %>
|
84
|
+
<% column :one_fourth, :last do %>two more wide<% end %>
|
85
|
+
<% end %>
|
86
|
+
<% recordset :one_sixth, :last do %>table<% end %>
|
87
|
+
)
|
88
|
+
|
89
|
+
show_view template do
|
90
|
+
assert_select "fieldset.hform.col-12" do
|
91
|
+
assert_select "div.col-4", "text"
|
92
|
+
assert_select "div.col-8.col-last", "more text"
|
93
|
+
|
94
|
+
assert_select "div.col-12.col-last" do
|
95
|
+
assert_select "div.col-4", "one third"
|
96
|
+
assert_select "div.col-8.col-last" do
|
97
|
+
assert_select "div.col-4", "half"
|
98
|
+
assert_select "div.col-4.col-last", "last half"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
assert_select "div.col-8" do
|
103
|
+
assert_select "div.col-2", "two wide"
|
104
|
+
assert_select "div.col-4", "four wide"
|
105
|
+
assert_select "div.col-2.col-last", "two more wide"
|
106
|
+
end
|
107
|
+
assert_select "table.col-4.col-last", "table"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
should "properly assign classes for a deeply-nested view" do
|
112
|
+
template = %(
|
113
|
+
<% container :full do %>
|
114
|
+
<% column :half do %>
|
115
|
+
<% fieldset :hform, :half do %>
|
116
|
+
<% set :one_third do %>text<% end %>
|
117
|
+
<% set :two_thirds, :last do %>more text<% end %>
|
118
|
+
<% end %>
|
119
|
+
<% recordset :half, :last do %>table<% end %>
|
120
|
+
<% end %>
|
121
|
+
<% column :one_third do %>one third!<% end %>
|
122
|
+
<% column :one_sixth, :last do %>
|
123
|
+
<% fieldset :vform, :full do %>
|
124
|
+
<% set do %>text<% end %>
|
125
|
+
<% end %>
|
126
|
+
<% end %>
|
127
|
+
<% end %>
|
128
|
+
)
|
129
|
+
|
130
|
+
show_view template do
|
131
|
+
assert_select "div.container.col-24", 1
|
132
|
+
assert_select "div.container" do
|
133
|
+
assert_select "div.col-12" do
|
134
|
+
assert_select "fieldset.hform.col-6" do
|
135
|
+
assert_select "div.col-2", "text"
|
136
|
+
assert_select "div.col-4.col-last", "more text"
|
137
|
+
end
|
138
|
+
assert_select "table.col-6.col-last", "table"
|
139
|
+
end
|
140
|
+
|
141
|
+
assert_select "div.col-8", "one third!"
|
142
|
+
|
143
|
+
assert_select "div.col-4.col-last" do
|
144
|
+
assert_select "fieldset.vform.col-4.col-last" do
|
145
|
+
assert_select "div", "text"
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
should "properly assign classes when using Blueprint grid" do
|
153
|
+
template = %(
|
154
|
+
<% container do %>
|
155
|
+
<% column do %>
|
156
|
+
<% column :half, :id => "primary" do %>
|
157
|
+
<% column :one_third do %>
|
158
|
+
one third of one half of 24 is 4
|
159
|
+
<% end %>
|
160
|
+
<% column :one_third, :last, prepend_one_third do %>
|
161
|
+
one third of one half of 24 is 4 (but prepended 4 as well)
|
162
|
+
<% end %>
|
163
|
+
<hr/>
|
164
|
+
more text
|
165
|
+
<% end %>
|
166
|
+
<% column :half, :last, :id => "secondary" do %>
|
167
|
+
second column
|
168
|
+
<% end %>
|
169
|
+
<hr/>
|
170
|
+
text
|
171
|
+
<% end %>
|
172
|
+
<% end %>
|
173
|
+
)
|
174
|
+
Viewaide::Helpers::GridHelper.blueprint_grid!
|
175
|
+
show_view template do
|
176
|
+
assert_select ".container", 1
|
177
|
+
assert_select ".span-24", 1
|
178
|
+
assert_select ".span-12", 2
|
179
|
+
assert_select ".span-12#primary", 1
|
180
|
+
assert_select ".span-12#secondary", 1
|
181
|
+
assert_select ".span-4", 2
|
182
|
+
assert_select ".prepend-4", 1
|
183
|
+
assert_select ".span-24.last", 0
|
184
|
+
assert_select ".span-12.last", 1
|
185
|
+
assert_select ".span-4.last", 1
|
186
|
+
assert_select "hr", 2
|
187
|
+
end
|
188
|
+
Viewaide::Helpers::GridHelper.easel_grid!
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
context "column" do
|
193
|
+
|
194
|
+
should "allow assigning options hash without having to define a width" do
|
195
|
+
show_view %(
|
196
|
+
<% column :id => "my-custom-id", :class => "content" do %>words<% end %>
|
197
|
+
) do
|
198
|
+
assert_select "div.col-24.content#my-custom-id", "words"
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
should "allow explicit column assignment" do
|
203
|
+
show_view %(
|
204
|
+
<% column 6, :sidebar do %>
|
205
|
+
<% column :id => "main" do %>main sidebar<% end %>
|
206
|
+
<% column :half do %>three<% end %>
|
207
|
+
<% column :one_third do %>two<% end %>
|
208
|
+
<% column 1, :last do %>one<% end %>
|
209
|
+
<% end %>
|
210
|
+
) do
|
211
|
+
assert_select "div.col-6.sidebar" do
|
212
|
+
assert_select "div.col-6.col-last#main", "main sidebar"
|
213
|
+
assert_select "div.col-3", "three"
|
214
|
+
assert_select "div.col-2", "two"
|
215
|
+
assert_select "div.col-1.col-last", "one"
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
should "allow tag overriding" do
|
221
|
+
show_view %(<% column :tag => :section do %>content<% end %>) do
|
222
|
+
assert_select "section.col-24:not([tag=section])", "content"
|
223
|
+
end
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class JqueryHelperTest < Viewaide::ViewTestCase
|
4
|
+
|
5
|
+
context "document_ready" do
|
6
|
+
|
7
|
+
setup do
|
8
|
+
@whitespace = '\s+?'
|
9
|
+
@anything = '(.|\s)+?'
|
10
|
+
|
11
|
+
@anon_function_start_regex = Regexp.escape "(function($) {"
|
12
|
+
@document_ready_start_regex = Regexp.escape "$(document).ready(function() {"
|
13
|
+
|
14
|
+
@document_ready_end_regex = Regexp.escape "});"
|
15
|
+
@anon_function_end_regex = Regexp.escape "})(jQuery);"
|
16
|
+
end
|
17
|
+
|
18
|
+
should "properly build the document ready script tag" do
|
19
|
+
show_view %(
|
20
|
+
<% document_ready do %>
|
21
|
+
alert("hello!");
|
22
|
+
<% end %>
|
23
|
+
) do
|
24
|
+
assert_select "script[type=?]", "text/javascript", /#{@anon_function_start_regex}#{@whitespace}#{@document_ready_start_regex}#{@whitespace}alert#{@anything}#{@document_ready_end_regex}#{@whitespace}#{@anon_function_end_regex}/
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class LinkHelperTest < Viewaide::ViewTestCase
|
4
|
+
context "link_button" do
|
5
|
+
|
6
|
+
should "default with the correct structure" do
|
7
|
+
show_view "<%= link_button 'Link Text', '#' %>" do
|
8
|
+
assert_select "a.btn[href=#]" do
|
9
|
+
assert_select "span", "Link Text"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
should "allow the same assignment as link_to" do
|
15
|
+
show_view "<%= link_button 'Link Text', '#', :class => 'my-button', :id => 'link-text' %>" do
|
16
|
+
assert_select "a.btn.my-button#link-text[href=#]" do
|
17
|
+
assert_select "span", "Link Text"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
context "link_to_email" do
|
25
|
+
should "default with the correct structure" do
|
26
|
+
show_view "<%= link_to_email 'test@example.com' %>" do
|
27
|
+
assert_select "a[href=mailto:test@example.com]", "test@example.com"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
should "allow override of link text as the first argument after email" do
|
32
|
+
show_view "<%= link_to_email 'test@example.com', 'Send an email to Test User' %>" do
|
33
|
+
assert_select "a[href=mailto:test@example.com]", "Send an email to Test User"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
should "allow the same assignment as link_to" do
|
38
|
+
show_view "<%= link_to_email 'test@example.com', :class => 'test-user-email', :id => 'user_1_email' %>" do
|
39
|
+
assert_select "a.test-user-email#user_1_email[href=mailto:test@example.com]", "test@example.com"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class MessageHelperTest < Viewaide::ViewTestCase
|
4
|
+
|
5
|
+
context "messages" do
|
6
|
+
|
7
|
+
should "default with the correct structure" do
|
8
|
+
show_view %(<%= messages(:structure => "Flash message") %>) do
|
9
|
+
assert_select "p.structure.box.single-line", "Flash message"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
should "display all flash messages present" do
|
14
|
+
show_view %(<%= messages(:structure => "Flash message", :error => "Warning message") %>) do
|
15
|
+
assert_select "p.structure", "Flash message"
|
16
|
+
assert_select "p.error", "Warning message"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
should "not display a flash if it is blank" do
|
21
|
+
show_view %(<%= messages(:structure => "", :error => nil) %>) do
|
22
|
+
assert_select "p.structure", false
|
23
|
+
assert_select "p.error", false
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
should "filter by the :only option" do
|
28
|
+
show_view %(<%= messages({:structure => "Flash message", :error => "Warning message", :notice => "Notice!"}, {:only => [:structure, :error]}) %>) do
|
29
|
+
assert_select "p.structure", "Flash message"
|
30
|
+
assert_select "p.error", "Warning message"
|
31
|
+
assert_select "p.notice", false
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
should "filter by the :except option" do
|
36
|
+
show_view %(<%= messages({:structure => "Flash message", :error => "Warning message", :notice => "Notice!"}, {:except => [:structure, :error]}) %>) do
|
37
|
+
assert_select "p.structure", false
|
38
|
+
assert_select "p.error", false
|
39
|
+
assert_select "p.notice", "Notice!"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
should "raise an error of :only and :except are both passed" do
|
44
|
+
assert_raise ArgumentError, /conflict/ do
|
45
|
+
show_view %(<%= messages({:structure => "Flash message"}, {:except => [:structure, :error], :only => :structure}) %>)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|