OSDN Git Service

t#30200:update i18n devise
[pettanr/pettanr.git] / spec / controllers / home_controller_spec.rb
index f42e53f..0f7f3e7 100644 (file)
@@ -4,12 +4,12 @@ require 'spec_helper'
 
 describe HomeController do
   before do
-    FactoryGirl.create :admin
+    @admin =FactoryGirl.create :admin
     @sp = FactoryGirl.create :system_picture
     @lg = FactoryGirl.create :license_group
     @license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
     @user = FactoryGirl.create( :user_yas)
-    @author = @user.author
+    @author = FactoryGirl.create :author, :user_id => @user.id
     @artist = FactoryGirl.create :artist_yas, :author_id => @author.id
     @color = FactoryGirl.create :color
     @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
@@ -87,7 +87,7 @@ describe HomeController do
           get :comic, :format => :json
           json = JSON.parse response.body
           json.first.has_key?("title").should be_true
-          json.first.has_key?("visible").should be_true\r
+          json.first.has_key?("visible").should be_true
         end
       end
     end
@@ -151,10 +151,6 @@ describe HomeController do
       end
     end
     context 'つつがなく終わるとき' do
-      it 'ステータスコード200 OKを返す' do
-        get :panel
-        response.should be_success 
-      end
       it 'コマモデルに一覧を問い合わせている' do
         Panel.should_receive(:mylist).exactly(1)
         get :panel
@@ -164,16 +160,28 @@ describe HomeController do
         assigns(:panels).should have_at_least(3).items
       end
       context 'html形式' do
+        it 'ステータスコード200 OKを返す' do
+          get :panel
+          response.should be_success 
+        end
         it 'panelテンプレートを描画する' do
           get :panel
           response.should render_template("panel")
         end
       end
       context 'json形式' do
+        it 'ステータスコード200 OKを返す' do
+          get :panel, :format => :json
+          response.should be_success 
+        end
         it 'jsonデータを返す' do
           get :panel, :format => :json
           lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
         end
+        it 'コマモデルにコマリストのjson出力を問い合わせている' do
+          Panel.should_receive(:list_as_json_text).exactly(1)
+          get :panel, :format => :json
+        end
         it 'データがリスト構造になっている' do
           get :panel, :format => :json
           json = JSON.parse response.body
@@ -315,130 +323,6 @@ describe HomeController do
     end
   end
   
-  describe '自分の原画一覧表示に於いて' do
-    before do
-      sign_in @user
-      OriginalPicture.stub(:mylist).and_return([@op, @op, @op])
-    end
-    context 'パラメータpageについて' do
-      it '@pageに値が入る' do
-        get :picture, :page => 5
-        assigns(:page).should eq 5
-      end
-      it '省略されると@pageに1値が入る' do
-        get :picture
-        assigns(:page).should eq 1
-      end
-      it '与えられたpage_sizeがセットされている' do
-        get :picture, :page_size => 15
-        assigns(:page_size).should eq 15
-      end
-      it '省略されると@page_sizeにデフォルト値が入る' do
-        get :picture
-        assigns(:page_size).should eq OriginalPicture.default_page_size
-      end
-      it '最大を超えると@page_sizeにデフォルト最大値が入る' do
-        get :picture, :page_size => 1500
-        assigns(:page_size).should eq OriginalPicture.max_page_size
-      end
-      it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do
-        get :picture, :page_size => 0
-        assigns(:page_size).should eq OriginalPicture.default_page_size
-      end
-    end
-    context 'つつがなく終わるとき' do
-      it 'ステータスコード200 OKを返す' do
-        get :picture
-        response.should be_success 
-      end
-      it '原画モデルに一覧を問い合わせている' do
-        #原画は他人が使えないので「自分の」リストはない
-        OriginalPicture.should_receive(:mylist).exactly(1)
-        get :picture
-      end
-      it '@original_picturesにリストを取得している' do
-        get :picture
-        assigns(:original_pictures).should have_at_least(3).items
-      end
-      context 'html形式' do
-        it 'pictureテンプレートを描画する' do
-          get :picture
-          response.should render_template("picture")
-        end
-      end
-      context 'json形式' do
-        it 'jsonデータを返す' do
-          get :picture, :format => :json
-          lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
-        end
-        it '原画モデルにjson一覧出力オプションを問い合わせている' do
-          OriginalPicture.should_receive(:list_json_opt).exactly(1)
-          get :picture, :format => :json
-        end
-        it 'データがリスト構造になっている' do
-          get :picture, :format => :json
-          json = JSON.parse response.body
-          json.should have_at_least(3).items
-        end
-        it 'リストの先頭くらいは原画っぽいものであって欲しい' do
-          get :picture, :format => :json
-          json = JSON.parse response.body
-          json.first.has_key?("ext").should be_true
-          json.first.has_key?("md5").should be_true
-          json.first.has_key?("artist_id").should be_true
-          json.first.has_key?("width").should be_true
-        end
-      end
-    end
-    context '作家権限がないとき' do
-      before do
-        sign_out @user
-      end
-      context 'html形式' do
-        it 'ステータスコード302 Foundを返す' do
-          get :picture
-          response.status.should eq 302
-        end
-        it 'サインインページへ遷移する' do
-          get :picture
-          response.should redirect_to '/users/sign_in'
-        end
-      end
-      context 'json形式' do
-        it 'ステータスコード401 Unauthorizedを返す' do
-          get :picture, :format => :json
-          response.status.should eq 401
-        end
-        it '応答メッセージにUnauthorizedを返す' do
-          get :picture, :format => :json
-          response.message.should match(/Unauthorized/)
-        end
-      end
-    end
-    context '作家が絵師でないとき' do
-      before do
-        Author.any_instance.stub(:artist?).and_return(false)
-      end
-      context 'html形式' do
-        it 'ステータスコード302 Foundを返す' do
-          get :picture
-          response.status.should eq 302
-        end
-        it '絵師登録ページへ遷移する' do
-          get :picture
-          response.should redirect_to new_artist_path
-        end
-      end
-      context 'json形式' do
-        it '例外403 forbiddenを返す' do
-          lambda{
-            get :picture, :format => :json
-          }.should raise_error(ActiveRecord::Forbidden)
-        end
-      end
-    end
-  end
-  
   describe '自分のコマの色背景一覧表示に於いて' do
     before do
       @pc = FactoryGirl.create :panel_color, :panel_id => @panel.id