OSDN Git Service

add test
[pettanr/pettanr.git] / spec / local_manifests / speech_spec.rb
diff --git a/spec/local_manifests/speech_spec.rb b/spec/local_manifests/speech_spec.rb
new file mode 100644 (file)
index 0000000..6dc2a23
--- /dev/null
@@ -0,0 +1,529 @@
+# -*- encoding: utf-8 -*-\r
+#セリフ\r
+require 'spec_helper'\r
+\r
+describe Speech do\r
+  include LocalManifestsMacros\r
+  before do\r
+    @model = Speech\r
+  end\r
+  \r
+  describe 'ファイラーに於いて' do\r
+    before do\r
+      @my_local_manifest = LocalManifest.manifest.filers[@model.item_name]\r
+    end\r
+    it 'サポート機能が動作している' do\r
+      expect(@my_local_manifest.item_class).to eq @model\r
+      expect(@my_local_manifest.item_name).to eq @model.item_name\r
+      expect(@my_local_manifest.filer_name).to eq @model.item_name\r
+    end\r
+    describe 'symbolに於いて' do\r
+      before do\r
+        @symbol = @my_local_manifest.symbol\r
+      end\r
+      it 'defaultタイプのsymbolである' do\r
+        expect(@symbol.type).to eq 'default'\r
+      end\r
+      it 'サポート機能が動作している' do\r
+        expect(@symbol.visible?).to be true\r
+      end\r
+      describe 'faceに於いて' do\r
+        before do\r
+          @face = @symbol.face\r
+        end\r
+        it 'imageタイプのfaceである' do\r
+          expect(@face.type).to eq 'image'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@face.url).to eq '/images/scroll.gif'\r
+        end\r
+      end\r
+      describe 'linkに於いて' do\r
+        before do\r
+          @link = @symbol.link\r
+        end\r
+        it 'actionタイプのlinkである' do\r
+          expect(@link.type).to eq 'action'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@link.action_name).to eq 'show'\r
+        end\r
+        it 'サポート機能が動作している' do\r
+          expect(@link.action_path).to eq '/scrolls/'\r
+        end\r
+      end\r
+    end\r
+    describe 'captionに於いて' do\r
+      before do\r
+        @caption = @my_local_manifest.caption\r
+      end\r
+      it 'defaultタイプのsymbolである' do\r
+        expect(@caption.type).to eq 'default'\r
+      end\r
+      it 'サポート機能が動作している' do\r
+        expect(@caption.visible?).to be true\r
+      end\r
+      describe 'faceに於いて' do\r
+        before do\r
+          @face = @caption.face\r
+        end\r
+        it 'columnタイプのfaceである' do\r
+          expect(@face.type).to eq 'column'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@face.column_name).to eq 'title'\r
+        end\r
+      end\r
+      describe 'linkに於いて' do\r
+        before do\r
+          @link = @caption.link\r
+        end\r
+        it 'actionタイプのlinkである' do\r
+          expect(@link.type).to eq 'action'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@link.action_name).to eq 'play'\r
+        end\r
+        it 'サポート機能が動作している' do\r
+          expect(@link.action_path).to eq '/scrolls/play/'\r
+        end\r
+      end\r
+    end\r
+    describe 'summaryに於いて' do\r
+      before do\r
+        @summary = @my_local_manifest.summary\r
+      end\r
+      it 'templateタイプのsymbolである' do\r
+        expect(@summary.type).to eq 'template'\r
+      end\r
+      it 'マニフェストから設定を取り出している' do\r
+        expect(@summary.template_name).to eq 'summary'\r
+      end\r
+    end\r
+    describe 'iconに於いて' do\r
+      before do\r
+        @icon = @my_local_manifest.icon\r
+      end\r
+      it 'defaultタイプのsymbolである' do\r
+        expect(@icon.type).to eq 'default'\r
+      end\r
+      it 'サポート機能が動作している' do\r
+        expect(@icon.visible?).to be true\r
+      end\r
+    end\r
+    describe 'dateに於いて' do\r
+      before do\r
+        @date = @my_local_manifest.date\r
+      end\r
+      it 'defaultタイプのsymbolである' do\r
+        expect(@date.type).to eq 'default'\r
+      end\r
+      it 'サポート機能が動作している' do\r
+        expect(@date.visible?).to be true\r
+      end\r
+    end\r
+    describe 'editに於いて' do\r
+      before do\r
+        @edit = @my_local_manifest.edit\r
+      end\r
+      it 'defaultタイプのsymbolである' do\r
+        expect(@edit.type).to eq 'default'\r
+      end\r
+      it 'サポート機能が動作している' do\r
+        expect(@edit.visible?).to be true\r
+      end\r
+    end\r
+  end\r
+  \r
+  describe 'プロファイラーに於いて' do\r
+    before do\r
+      @my_local_manifest = LocalManifest.manifest.profilers[@model.item_name]\r
+    end\r
+    it 'マニフェストから設定を取り出している' do\r
+      expect(@my_local_manifest.item_name).to eq @model.item_name\r
+    end\r
+    describe 'columnsに於いて' do\r
+      before do\r
+        @columns = @my_local_manifest.columns\r
+        @names = ['id', 'title', 'description', 'visible', 'author_id', 'created_at', 'updated_at']\r
+      end\r
+      it 'これらのカラムが定義されている' do\r
+        set_columns? @columns, @names\r
+      end\r
+      describe 'titleに於いて' do\r
+        before do\r
+          @column = @columns['title']\r
+        end\r
+        it 'defaultタイプのcolumnである' do\r
+          expect(@column.type).to eq 'default'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@column.item_name).to eq 'scroll'\r
+        end\r
+      end\r
+      describe 'descriptionに於いて' do\r
+        before do\r
+          @column = @columns['description']\r
+        end\r
+        it 'defaultタイプのcolumnである' do\r
+          expect(@column.type).to eq 'default'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@column.item_name).to eq 'scroll'\r
+        end\r
+      end\r
+      describe 'visibleに於いて' do\r
+        before do\r
+          @column = @columns['visible']\r
+        end\r
+        it 'sourceタイプのcolumnである' do\r
+          expect(@column.type).to eq 'source'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@column.item_name).to eq 'scroll'\r
+        end\r
+      end\r
+      describe 'author_idに於いて' do\r
+        before do\r
+          @column = @columns['author_id']\r
+        end\r
+        it 'defaultタイプのcolumnである' do\r
+          expect(@column.type).to eq 'default'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@column.item_name).to eq 'scroll'\r
+        end\r
+      end\r
+    end\r
+    describe 'column_namesに於いて' do\r
+      before do\r
+        @column_names = @my_local_manifest.column_names\r
+      end\r
+      it '数量が守られている' do\r
+        expect(@column_names.size).to eq 4 + 3\r
+      end\r
+      it '順序が守られている' do\r
+        expect(@column_names).to eq ['id', 'title', 'description', 'visible', 'author_id', 'created_at', 'updated_at']\r
+      end\r
+    end\r
+    describe 'extend_settingsに於いて' do\r
+      before do\r
+        @extend_settings = @my_local_manifest.extend_settings\r
+      end\r
+      it '拡張カラムは無い' do\r
+        expect(@extend_settings).to be_empty\r
+      end\r
+    end\r
+    describe 'listsに於いて' do\r
+      before do\r
+        @lists = @my_local_manifest.lists\r
+      end\r
+      it '無い' do\r
+        expect(@lists).to be_empty\r
+      end\r
+    end\r
+    describe 'associationsに於いて' do\r
+      before do\r
+        @associations = @my_local_manifest.associations\r
+      end\r
+      describe 'belongs_toに於いて' do\r
+        before do\r
+          @belongs_to = @associations.belongs_to\r
+        end\r
+        it 'これらの所属モデルを取り扱う' do\r
+          expect(@belongs_to.map {|a| a.name}).to eq ['author']\r
+        end\r
+        describe 'authorに於いて' do\r
+          before do\r
+            @mani = @belongs_to[0]\r
+          end\r
+          it 'マニフェストから設定を取り出している' do\r
+            expect(@mani.name).to eq 'author'\r
+            expect(@mani.model_name).to eq 'author'\r
+          end\r
+          it 'サポート機能が動作している' do\r
+            expect(@mani.model).to eq Author\r
+          end\r
+        end\r
+      end\r
+      describe 'has_manyに於いて' do\r
+        before do\r
+          @has_many = @associations.has_many\r
+        end\r
+        it 'これらの所持モデルを取り扱う' do\r
+          expect(@has_many.map {|a| a.table_name}).to eq ['scroll_panels', 'panels']\r
+        end\r
+        describe 'scroll_panelsに於いて' do\r
+          before do\r
+            @mani = @has_many[0]\r
+          end\r
+          it 'マニフェストから設定を取り出している' do\r
+            expect(@mani.name).to eq 'scroll_panels.by_scroll'\r
+            expect(@mani.model_name).to eq 'scroll_panel'\r
+            expect(@mani.list_name).to eq 'by_scroll'\r
+          end\r
+          it 'サポート機能が動作している' do\r
+            expect(@mani.model).to eq ScrollPanel\r
+          end\r
+        end\r
+        describe 'panels.by_scrollに於いて' do\r
+          before do\r
+            @mani = @has_many[1]\r
+          end\r
+          it 'マニフェストから設定を取り出している' do\r
+            expect(@mani.name).to eq 'panels.by_scroll'\r
+            expect(@mani.model_name).to eq 'panel'\r
+            expect(@mani.list_name).to eq 'by_scroll'\r
+          end\r
+          it 'サポート機能が動作している' do\r
+            expect(@mani.model).to eq Panel\r
+          end\r
+        end\r
+      end\r
+    end\r
+  end\r
+  \r
+  describe 'リストグループに於いて' do\r
+    before do\r
+      @my_local_manifest = LocalManifest.manifest.list_groups[@model.item_name]\r
+    end\r
+    it 'マニフェストから設定を取り出している' do\r
+      expect(@my_local_manifest.item_name).to eq @model.item_name\r
+    end\r
+    describe 'listsに於いて' do\r
+      before do\r
+        @lists = @my_local_manifest.lists\r
+      end\r
+      it 'これらのリストを定義している' do\r
+        set_lists? @lists, ['public', 'private', 'by_author', 'by_panel']\r
+      end\r
+      describe 'publicに於いて' do\r
+        before do\r
+          @mani = @lists['public']\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@mani.type).to eq 'public'\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@mani.model).to eq Scroll\r
+        end\r
+        it 'サポート機能が動作している' do\r
+          expect(@mani.has_id?).to be nil\r
+          expect(@mani.pre_id?).to be true\r
+          expect(@mani.item_name).to eq @model.item_name\r
+        end\r
+        describe 'whereに於いて' do\r
+          before do\r
+            @where = @mani.where\r
+          end\r
+          it 'autoタイプである' do\r
+            expect(@where.type).to eq 'auto'\r
+          end\r
+          it 'サポート機能が動作している' do\r
+            expect(@where.item_name).to eq @model.item_name\r
+            expect(@where.list_name).to eq 'public'\r
+            expect(@where.model).to eq Scroll\r
+          end\r
+          it 'method_name' do\r
+            expect(@where.method_name).to eq 'public_list_where'\r
+          end\r
+        end\r
+        describe 'includesに於いて' do\r
+          before do\r
+            @includes = @mani.includes\r
+          end\r
+          it 'autoタイプである' do\r
+            expect(@includes.type).to eq 'auto'\r
+          end\r
+          it 'サポート機能が動作している' do\r
+            expect(@includes.item_name).to eq @model.item_name\r
+            expect(@includes.list_name).to eq 'public'\r
+            expect(@includes.model).to eq Scroll\r
+          end\r
+          it 'includes' do\r
+            expect(@includes.includes).to be_empty\r
+          end\r
+        end\r
+        describe 'orderに於いて' do\r
+          before do\r
+            @order = @mani.order\r
+          end\r
+          it 'autoタイプである' do\r
+            expect(@order.type).to eq 'auto'\r
+          end\r
+          it 'サポート機能が動作している' do\r
+            expect(@order.item_name).to eq @model.item_name\r
+            expect(@order.list_name).to eq 'public'\r
+            expect(@order.model).to eq Scroll\r
+          end\r
+          it 'order' do\r
+            expect(@order.order).to eq 'list_order'\r
+          end\r
+        end\r
+      end\r
+    end\r
+  end\r
+  \r
+  describe '入力フォームに於いて' do\r
+    before do\r
+      @my_local_manifest = LocalManifest.manifest.forms[@model.item_name]\r
+    end\r
+    it 'マニフェストから設定を取り出している' do\r
+      expect(@my_local_manifest.name).to eq @model.item_name\r
+    end\r
+    describe 'fieldsに於いて' do\r
+      before do\r
+        @fields = @my_local_manifest.fields\r
+      end\r
+      # 細かいチェックは後でやるので、大雑把に数量だけチェックしておく。\r
+      it '数量が守られている' do\r
+        expect(@fields.size).to eq 5\r
+      end\r
+    end\r
+    describe 'field_namesに於いて' do\r
+      before do\r
+        @field_names = @my_local_manifest.field_names\r
+      end\r
+      it '数量が守られている' do\r
+        expect(@field_names.size).to eq 5\r
+      end\r
+      it '順序が守られている' do\r
+        expect(@field_names).to eq ['title', 'description', 'visible', 'id', 'author_id']\r
+      end\r
+    end\r
+    # 処理順に並べられたフィールドのこと\r
+    # 本来fieldsでテストするべき内容だが、並び替えもテストしたいのでこちらで行う。\r
+    describe 'ordered_fieldsに於いて' do\r
+      before do\r
+        @ordered_fields = @my_local_manifest.ordered_fields\r
+        @names = ['title', 'description', 'visible', 'id', 'author_id']\r
+      end\r
+      it 'これらのフィールドを取り扱う' do\r
+        expect(@ordered_fields.map {|f| f.name }).to eq @names\r
+      end\r
+      describe 'titleに於いて' do\r
+        before do\r
+          @field = @ordered_fields[0]\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@field.name).to eq 'title'\r
+          expect(@field.row_break).to be true\r
+        end\r
+        it 'サポート機能が動作している' do\r
+          expect(@field.part?).to be false\r
+          expect(@field.form_name).to eq @model.item_name\r
+          expect(@field.column_name).to eq 'title'\r
+          expect(@field.model_name).to eq @model.item_name\r
+        end\r
+        describe 'labelに於いて' do\r
+          before do\r
+            @label = @field.label\r
+          end\r
+          it 'defaultタイプである' do\r
+            expect(@label.type).to eq 'default'\r
+          end\r
+          it 'マニフェストから設定を取り出している' do\r
+            expect(@label.row_break).to be true\r
+          end\r
+          it 'サポート機能が動作している' do\r
+            expect(@label.form_name).to eq @model.item_name\r
+            expect(@label.field_name).to eq 'title'\r
+            expect(@label.model_name).to eq @model.item_name\r
+            expect(@label.column_name).to eq 'title'\r
+          end\r
+        end\r
+        describe 'tagに於いて' do\r
+          before do\r
+            @tag = @field.tag\r
+          end\r
+          it 'textタイプである' do\r
+            expect(@tag.type).to eq 'text'\r
+          end\r
+          it 'マニフェストから設定を取り出している' do\r
+            expect(@tag.options).to_not be_empty\r
+            expect(@tag.options['size']).to eq 20\r
+          end\r
+          it 'サポート機能が動作している' do\r
+            expect(@tag.form_name).to eq @model.item_name\r
+            expect(@tag.field_name).to eq 'title'\r
+          end\r
+        end\r
+      end\r
+      describe 'descriptionに於いて' do\r
+        before do\r
+          @field = @ordered_fields[1]\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@field.name).to eq 'description'\r
+          expect(@field.row_break).to be true\r
+        end\r
+        it 'サポート機能が動作している' do\r
+          expect(@field.part?).to be false\r
+          expect(@field.form_name).to eq @model.item_name\r
+          expect(@field.column_name).to eq 'description'\r
+          expect(@field.model_name).to eq @model.item_name\r
+        end\r
+      end\r
+      describe 'visibleに於いて' do\r
+        before do\r
+          @field = @ordered_fields[2]\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@field.name).to eq 'visible'\r
+          expect(@field.row_break).to be true\r
+        end\r
+        it 'サポート機能が動作している' do\r
+          expect(@field.part?).to be false\r
+          expect(@field.form_name).to eq @model.item_name\r
+          expect(@field.column_name).to eq 'visible'\r
+          expect(@field.model_name).to eq @model.item_name\r
+        end\r
+      end\r
+      describe 'idに於いて' do\r
+        before do\r
+          @field = @ordered_fields[3]\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@field.name).to eq 'id'\r
+          expect(@field.row_break).to be true\r
+        end\r
+        it 'サポート機能が動作している' do\r
+          expect(@field.part?).to be false\r
+          expect(@field.form_name).to eq @model.item_name\r
+          expect(@field.column_name).to eq 'id'\r
+          expect(@field.model_name).to eq @model.item_name\r
+        end\r
+      end\r
+      describe 'author_idに於いて' do\r
+        before do\r
+          @field = @ordered_fields[4]\r
+        end\r
+        it 'マニフェストから設定を取り出している' do\r
+          expect(@field.name).to eq 'author_id'\r
+          expect(@field.row_break).to be true\r
+        end\r
+        it 'サポート機能が動作している' do\r
+          expect(@field.part?).to be false\r
+          expect(@field.form_name).to eq @model.item_name\r
+          expect(@field.column_name).to eq 'author_id'\r
+          expect(@field.model_name).to eq @model.item_name\r
+        end\r
+      end\r
+    end\r
+  end\r
+  \r
+  describe 'bucketに於いて' do\r
+    before do\r
+      @my_local_manifest = LocalManifest.manifest.buckets[@model.item_name]\r
+    end\r
+    it 'マニフェストから設定を取り出している' do\r
+      expect(@my_local_manifest.members).to be_empty\r
+      expect(@my_local_manifest.form_field_names).to be_empty\r
+    end\r
+    it 'サポート機能が動作している' do\r
+      expect(@my_local_manifest.has_member?).to be false\r
+      expect(@my_local_manifest.item_name).to eq @model.item_name\r
+    end\r
+  end\r
+  \r
+end\r