OSDN Git Service

add test
[pettanr/pettanr.git] / spec / local_manifests / balloon_spec.rb
1 # -*- encoding: utf-8 -*-\r
2 require 'spec_helper'\r
3 #フキダシ枠\r
4 describe Balloon do\r
5   include LocalManifestsMacros\r
6   before do\r
7     @model = Balloon\r
8   end\r
9   \r
10   describe 'ファイラーに於いて' do\r
11     before do\r
12       @my_local_manifest = LocalManifest.manifest.filers[@model.item_name]\r
13     end\r
14     it 'サポート機能が動作している' do\r
15       expect(@my_local_manifest.item_class).to eq @model\r
16       expect(@my_local_manifest.item_name).to eq @model.item_name\r
17       expect(@my_local_manifest.filer_name).to eq @model.item_name\r
18     end\r
19     describe 'symbolに於いて' do\r
20       before do\r
21         @symbol = @my_local_manifest.symbol\r
22       end\r
23       it 'defaultタイプのsymbolである' do\r
24         expect(@symbol.type).to eq 'default'\r
25       end\r
26       it 'サポート機能が動作している' do\r
27         expect(@symbol.visible?).to be true\r
28       end\r
29       describe 'faceに於いて' do\r
30         before do\r
31           @face = @symbol.face\r
32         end\r
33         it 'imageタイプのfaceである' do\r
34           expect(@face.type).to eq 'image'\r
35         end\r
36         it 'マニフェストから設定を取り出している' do\r
37           expect(@face.url).to eq '/images/scroll.gif'\r
38         end\r
39       end\r
40       describe 'linkに於いて' do\r
41         before do\r
42           @link = @symbol.link\r
43         end\r
44         it 'actionタイプのlinkである' do\r
45           expect(@link.type).to eq 'action'\r
46         end\r
47         it 'マニフェストから設定を取り出している' do\r
48           expect(@link.action_name).to eq 'show'\r
49         end\r
50         it 'サポート機能が動作している' do\r
51           expect(@link.action_path).to eq '/scrolls/'\r
52         end\r
53       end\r
54     end\r
55     describe 'captionに於いて' do\r
56       before do\r
57         @caption = @my_local_manifest.caption\r
58       end\r
59       it 'defaultタイプのsymbolである' do\r
60         expect(@caption.type).to eq 'default'\r
61       end\r
62       it 'サポート機能が動作している' do\r
63         expect(@caption.visible?).to be true\r
64       end\r
65       describe 'faceに於いて' do\r
66         before do\r
67           @face = @caption.face\r
68         end\r
69         it 'columnタイプのfaceである' do\r
70           expect(@face.type).to eq 'column'\r
71         end\r
72         it 'マニフェストから設定を取り出している' do\r
73           expect(@face.column_name).to eq 'title'\r
74         end\r
75       end\r
76       describe 'linkに於いて' do\r
77         before do\r
78           @link = @caption.link\r
79         end\r
80         it 'actionタイプのlinkである' do\r
81           expect(@link.type).to eq 'action'\r
82         end\r
83         it 'マニフェストから設定を取り出している' do\r
84           expect(@link.action_name).to eq 'play'\r
85         end\r
86         it 'サポート機能が動作している' do\r
87           expect(@link.action_path).to eq '/scrolls/play/'\r
88         end\r
89       end\r
90     end\r
91     describe 'summaryに於いて' do\r
92       before do\r
93         @summary = @my_local_manifest.summary\r
94       end\r
95       it 'templateタイプのsymbolである' do\r
96         expect(@summary.type).to eq 'template'\r
97       end\r
98       it 'マニフェストから設定を取り出している' do\r
99         expect(@summary.template_name).to eq 'summary'\r
100       end\r
101     end\r
102     describe 'iconに於いて' do\r
103       before do\r
104         @icon = @my_local_manifest.icon\r
105       end\r
106       it 'defaultタイプのsymbolである' do\r
107         expect(@icon.type).to eq 'default'\r
108       end\r
109       it 'サポート機能が動作している' do\r
110         expect(@icon.visible?).to be true\r
111       end\r
112     end\r
113     describe 'dateに於いて' do\r
114       before do\r
115         @date = @my_local_manifest.date\r
116       end\r
117       it 'defaultタイプのsymbolである' do\r
118         expect(@date.type).to eq 'default'\r
119       end\r
120       it 'サポート機能が動作している' do\r
121         expect(@date.visible?).to be true\r
122       end\r
123     end\r
124     describe 'editに於いて' do\r
125       before do\r
126         @edit = @my_local_manifest.edit\r
127       end\r
128       it 'defaultタイプのsymbolである' do\r
129         expect(@edit.type).to eq 'default'\r
130       end\r
131       it 'サポート機能が動作している' do\r
132         expect(@edit.visible?).to be true\r
133       end\r
134     end\r
135   end\r
136   \r
137   describe 'プロファイラーに於いて' do\r
138     before do\r
139       @my_local_manifest = LocalManifest.manifest.profilers[@model.item_name]\r
140     end\r
141     it 'マニフェストから設定を取り出している' do\r
142       expect(@my_local_manifest.item_name).to eq @model.item_name\r
143     end\r
144     describe 'columnsに於いて' do\r
145       before do\r
146         @columns = @my_local_manifest.columns\r
147         @names = ['id', 'title', 'description', 'visible', 'author_id', 'created_at', 'updated_at']\r
148       end\r
149       it 'これらのカラムが定義されている' do\r
150         set_columns? @columns, @names\r
151       end\r
152       describe 'titleに於いて' do\r
153         before do\r
154           @column = @columns['title']\r
155         end\r
156         it 'defaultタイプのcolumnである' do\r
157           expect(@column.type).to eq 'default'\r
158         end\r
159         it 'マニフェストから設定を取り出している' do\r
160           expect(@column.item_name).to eq 'scroll'\r
161         end\r
162       end\r
163       describe 'descriptionに於いて' do\r
164         before do\r
165           @column = @columns['description']\r
166         end\r
167         it 'defaultタイプのcolumnである' do\r
168           expect(@column.type).to eq 'default'\r
169         end\r
170         it 'マニフェストから設定を取り出している' do\r
171           expect(@column.item_name).to eq 'scroll'\r
172         end\r
173       end\r
174       describe 'visibleに於いて' do\r
175         before do\r
176           @column = @columns['visible']\r
177         end\r
178         it 'sourceタイプのcolumnである' do\r
179           expect(@column.type).to eq 'source'\r
180         end\r
181         it 'マニフェストから設定を取り出している' do\r
182           expect(@column.item_name).to eq 'scroll'\r
183         end\r
184       end\r
185       describe 'author_idに於いて' do\r
186         before do\r
187           @column = @columns['author_id']\r
188         end\r
189         it 'defaultタイプのcolumnである' do\r
190           expect(@column.type).to eq 'default'\r
191         end\r
192         it 'マニフェストから設定を取り出している' do\r
193           expect(@column.item_name).to eq 'scroll'\r
194         end\r
195       end\r
196     end\r
197     describe 'column_namesに於いて' do\r
198       before do\r
199         @column_names = @my_local_manifest.column_names\r
200       end\r
201       it '数量が守られている' do\r
202         expect(@column_names.size).to eq 4 + 3\r
203       end\r
204       it '順序が守られている' do\r
205         expect(@column_names).to eq ['id', 'title', 'description', 'visible', 'author_id', 'created_at', 'updated_at']\r
206       end\r
207     end\r
208     describe 'extend_settingsに於いて' do\r
209       before do\r
210         @extend_settings = @my_local_manifest.extend_settings\r
211       end\r
212       it '拡張カラムは無い' do\r
213         expect(@extend_settings).to be_empty\r
214       end\r
215     end\r
216     describe 'listsに於いて' do\r
217       before do\r
218         @lists = @my_local_manifest.lists\r
219       end\r
220       it '無い' do\r
221         expect(@lists).to be_empty\r
222       end\r
223     end\r
224     describe 'associationsに於いて' do\r
225       before do\r
226         @associations = @my_local_manifest.associations\r
227       end\r
228       describe 'belongs_toに於いて' do\r
229         before do\r
230           @belongs_to = @associations.belongs_to\r
231         end\r
232         it 'これらの所属モデルを取り扱う' do\r
233           expect(@belongs_to.map {|a| a.name}).to eq ['author']\r
234         end\r
235         describe 'authorに於いて' do\r
236           before do\r
237             @mani = @belongs_to[0]\r
238           end\r
239           it 'マニフェストから設定を取り出している' do\r
240             expect(@mani.name).to eq 'author'\r
241             expect(@mani.model_name).to eq 'author'\r
242           end\r
243           it 'サポート機能が動作している' do\r
244             expect(@mani.model).to eq Author\r
245           end\r
246         end\r
247       end\r
248       describe 'has_manyに於いて' do\r
249         before do\r
250           @has_many = @associations.has_many\r
251         end\r
252         it 'これらの所持モデルを取り扱う' do\r
253           expect(@has_many.map {|a| a.table_name}).to eq ['scroll_panels', 'panels']\r
254         end\r
255         describe 'scroll_panelsに於いて' do\r
256           before do\r
257             @mani = @has_many[0]\r
258           end\r
259           it 'マニフェストから設定を取り出している' do\r
260             expect(@mani.name).to eq 'scroll_panels.by_scroll'\r
261             expect(@mani.model_name).to eq 'scroll_panel'\r
262             expect(@mani.list_name).to eq 'by_scroll'\r
263           end\r
264           it 'サポート機能が動作している' do\r
265             expect(@mani.model).to eq ScrollPanel\r
266           end\r
267         end\r
268         describe 'panels.by_scrollに於いて' do\r
269           before do\r
270             @mani = @has_many[1]\r
271           end\r
272           it 'マニフェストから設定を取り出している' do\r
273             expect(@mani.name).to eq 'panels.by_scroll'\r
274             expect(@mani.model_name).to eq 'panel'\r
275             expect(@mani.list_name).to eq 'by_scroll'\r
276           end\r
277           it 'サポート機能が動作している' do\r
278             expect(@mani.model).to eq Panel\r
279           end\r
280         end\r
281       end\r
282     end\r
283   end\r
284   \r
285   describe 'リストグループに於いて' do\r
286     before do\r
287       @my_local_manifest = LocalManifest.manifest.list_groups[@model.item_name]\r
288     end\r
289     it 'マニフェストから設定を取り出している' do\r
290       expect(@my_local_manifest.item_name).to eq @model.item_name\r
291     end\r
292     describe 'listsに於いて' do\r
293       before do\r
294         @lists = @my_local_manifest.lists\r
295       end\r
296       it 'これらのリストを定義している' do\r
297         set_lists? @lists, ['public', 'private', 'by_author', 'by_panel']\r
298       end\r
299       describe 'publicに於いて' do\r
300         before do\r
301           @mani = @lists['public']\r
302         end\r
303         it 'マニフェストから設定を取り出している' do\r
304           expect(@mani.type).to eq 'public'\r
305         end\r
306         it 'マニフェストから設定を取り出している' do\r
307           expect(@mani.model).to eq Scroll\r
308         end\r
309         it 'サポート機能が動作している' do\r
310           expect(@mani.has_id?).to be nil\r
311           expect(@mani.pre_id?).to be true\r
312           expect(@mani.item_name).to eq @model.item_name\r
313         end\r
314         describe 'whereに於いて' do\r
315           before do\r
316             @where = @mani.where\r
317           end\r
318           it 'autoタイプである' do\r
319             expect(@where.type).to eq 'auto'\r
320           end\r
321           it 'サポート機能が動作している' do\r
322             expect(@where.item_name).to eq @model.item_name\r
323             expect(@where.list_name).to eq 'public'\r
324             expect(@where.model).to eq Scroll\r
325           end\r
326           it 'method_name' do\r
327             expect(@where.method_name).to eq 'public_list_where'\r
328           end\r
329         end\r
330         describe 'includesに於いて' do\r
331           before do\r
332             @includes = @mani.includes\r
333           end\r
334           it 'autoタイプである' do\r
335             expect(@includes.type).to eq 'auto'\r
336           end\r
337           it 'サポート機能が動作している' do\r
338             expect(@includes.item_name).to eq @model.item_name\r
339             expect(@includes.list_name).to eq 'public'\r
340             expect(@includes.model).to eq Scroll\r
341           end\r
342           it 'includes' do\r
343             expect(@includes.includes).to be_empty\r
344           end\r
345         end\r
346         describe 'orderに於いて' do\r
347           before do\r
348             @order = @mani.order\r
349           end\r
350           it 'autoタイプである' do\r
351             expect(@order.type).to eq 'auto'\r
352           end\r
353           it 'サポート機能が動作している' do\r
354             expect(@order.item_name).to eq @model.item_name\r
355             expect(@order.list_name).to eq 'public'\r
356             expect(@order.model).to eq Scroll\r
357           end\r
358           it 'order' do\r
359             expect(@order.order).to eq 'list_order'\r
360           end\r
361         end\r
362       end\r
363     end\r
364   end\r
365   \r
366   describe '入力フォームに於いて' do\r
367     before do\r
368       @my_local_manifest = LocalManifest.manifest.forms[@model.item_name]\r
369     end\r
370     it 'マニフェストから設定を取り出している' do\r
371       expect(@my_local_manifest.name).to eq @model.item_name\r
372     end\r
373     describe 'fieldsに於いて' do\r
374       before do\r
375         @fields = @my_local_manifest.fields\r
376       end\r
377       # 細かいチェックは後でやるので、大雑把に数量だけチェックしておく。\r
378       it '数量が守られている' do\r
379         expect(@fields.size).to eq 5\r
380       end\r
381     end\r
382     describe 'field_namesに於いて' do\r
383       before do\r
384         @field_names = @my_local_manifest.field_names\r
385       end\r
386       it '数量が守られている' do\r
387         expect(@field_names.size).to eq 5\r
388       end\r
389       it '順序が守られている' do\r
390         expect(@field_names).to eq ['title', 'description', 'visible', 'id', 'author_id']\r
391       end\r
392     end\r
393     # 処理順に並べられたフィールドのこと\r
394     # 本来fieldsでテストするべき内容だが、並び替えもテストしたいのでこちらで行う。\r
395     describe 'ordered_fieldsに於いて' do\r
396       before do\r
397         @ordered_fields = @my_local_manifest.ordered_fields\r
398         @names = ['title', 'description', 'visible', 'id', 'author_id']\r
399       end\r
400       it 'これらのフィールドを取り扱う' do\r
401         expect(@ordered_fields.map {|f| f.name }).to eq @names\r
402       end\r
403       describe 'titleに於いて' do\r
404         before do\r
405           @field = @ordered_fields[0]\r
406         end\r
407         it 'マニフェストから設定を取り出している' do\r
408           expect(@field.name).to eq 'title'\r
409           expect(@field.row_break).to be true\r
410         end\r
411         it 'サポート機能が動作している' do\r
412           expect(@field.part?).to be false\r
413           expect(@field.form_name).to eq @model.item_name\r
414           expect(@field.column_name).to eq 'title'\r
415           expect(@field.model_name).to eq @model.item_name\r
416         end\r
417         describe 'labelに於いて' do\r
418           before do\r
419             @label = @field.label\r
420           end\r
421           it 'defaultタイプである' do\r
422             expect(@label.type).to eq 'default'\r
423           end\r
424           it 'マニフェストから設定を取り出している' do\r
425             expect(@label.row_break).to be true\r
426           end\r
427           it 'サポート機能が動作している' do\r
428             expect(@label.form_name).to eq @model.item_name\r
429             expect(@label.field_name).to eq 'title'\r
430             expect(@label.model_name).to eq @model.item_name\r
431             expect(@label.column_name).to eq 'title'\r
432           end\r
433         end\r
434         describe 'tagに於いて' do\r
435           before do\r
436             @tag = @field.tag\r
437           end\r
438           it 'textタイプである' do\r
439             expect(@tag.type).to eq 'text'\r
440           end\r
441           it 'マニフェストから設定を取り出している' do\r
442             expect(@tag.options).to_not be_empty\r
443             expect(@tag.options['size']).to eq 20\r
444           end\r
445           it 'サポート機能が動作している' do\r
446             expect(@tag.form_name).to eq @model.item_name\r
447             expect(@tag.field_name).to eq 'title'\r
448           end\r
449         end\r
450       end\r
451       describe 'descriptionに於いて' do\r
452         before do\r
453           @field = @ordered_fields[1]\r
454         end\r
455         it 'マニフェストから設定を取り出している' do\r
456           expect(@field.name).to eq 'description'\r
457           expect(@field.row_break).to be true\r
458         end\r
459         it 'サポート機能が動作している' do\r
460           expect(@field.part?).to be false\r
461           expect(@field.form_name).to eq @model.item_name\r
462           expect(@field.column_name).to eq 'description'\r
463           expect(@field.model_name).to eq @model.item_name\r
464         end\r
465       end\r
466       describe 'visibleに於いて' do\r
467         before do\r
468           @field = @ordered_fields[2]\r
469         end\r
470         it 'マニフェストから設定を取り出している' do\r
471           expect(@field.name).to eq 'visible'\r
472           expect(@field.row_break).to be true\r
473         end\r
474         it 'サポート機能が動作している' do\r
475           expect(@field.part?).to be false\r
476           expect(@field.form_name).to eq @model.item_name\r
477           expect(@field.column_name).to eq 'visible'\r
478           expect(@field.model_name).to eq @model.item_name\r
479         end\r
480       end\r
481       describe 'idに於いて' do\r
482         before do\r
483           @field = @ordered_fields[3]\r
484         end\r
485         it 'マニフェストから設定を取り出している' do\r
486           expect(@field.name).to eq 'id'\r
487           expect(@field.row_break).to be true\r
488         end\r
489         it 'サポート機能が動作している' do\r
490           expect(@field.part?).to be false\r
491           expect(@field.form_name).to eq @model.item_name\r
492           expect(@field.column_name).to eq 'id'\r
493           expect(@field.model_name).to eq @model.item_name\r
494         end\r
495       end\r
496       describe 'author_idに於いて' do\r
497         before do\r
498           @field = @ordered_fields[4]\r
499         end\r
500         it 'マニフェストから設定を取り出している' do\r
501           expect(@field.name).to eq 'author_id'\r
502           expect(@field.row_break).to be true\r
503         end\r
504         it 'サポート機能が動作している' do\r
505           expect(@field.part?).to be false\r
506           expect(@field.form_name).to eq @model.item_name\r
507           expect(@field.column_name).to eq 'author_id'\r
508           expect(@field.model_name).to eq @model.item_name\r
509         end\r
510       end\r
511     end\r
512   end\r
513   \r
514   describe 'bucketに於いて' do\r
515     before do\r
516       @my_local_manifest = LocalManifest.manifest.buckets[@model.item_name]\r
517     end\r
518     it 'マニフェストから設定を取り出している' do\r
519       expect(@my_local_manifest.members).to be_empty\r
520       expect(@my_local_manifest.form_field_names).to be_empty\r
521     end\r
522     it 'サポート機能が動作している' do\r
523       expect(@my_local_manifest.has_member?).to be false\r
524       expect(@my_local_manifest.item_name).to eq @model.item_name\r
525     end\r
526   end\r
527   \r
528 end\r