OSDN Git Service

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