+\r
+ describe '削除に於いて' do\r
+ before do\r
+ @panel = Factory :panel, :author_id => @user.author.id\r
+ Panel.stub(:edit).and_return(@panel)\r
+ sign_in @user\r
+ end\r
+ context 'つつがなく終わるとき' do\r
+ it 'コマモデルに編集取得を問い合わせている' do\r
+ Panel.should_receive(:edit).exactly(1)\r
+ delete :destroy, :id => @panel.id\r
+ end\r
+ it '@panelにアレを取得している' do\r
+ delete :destroy, :id => @panel.id\r
+ assigns(:panel).id.should eq(@panel.id)\r
+ end\r
+ it 'そのコマを一つのトランザクションで削除する' do\r
+ lambda {\r
+ delete :destroy, :id => @panel.id\r
+ }.should change(Panel, :count)\r
+ end\r
+ context 'html形式' do\r
+ it 'ステータスコード302 Foundを返す' do\r
+ delete :destroy, :id => @panel.id\r
+ response.status.should eq 302\r
+ end\r
+ it 'コマ一覧ページへ遷移する' do\r
+ delete :destroy, :id => @panel.id\r
+ response.should redirect_to(panels_url)\r
+ end\r
+ end\r
+ context 'json形式' do\r
+ it 'ステータスコード200 OKを返す' do\r
+ delete :destroy, :id => @panel.id, :format => :json\r
+ response.should be_success\r
+ end\r
+ end\r
+ end\r
+ context '作家権限がないとき' do\r
+ before do\r
+ sign_out @user\r
+ end\r
+ context 'html形式' do\r
+ it 'ステータスコード302 Foundを返す' do\r
+ delete :destroy, :id => @panel.id\r
+ response.status.should eq 302\r
+ end\r
+ it 'サインインページへ遷移する' do\r
+ delete :destroy, :id => @panel.id\r
+ response.body.should redirect_to '/users/sign_in'\r
+ end\r
+ end\r
+ context 'json形式' do\r
+ it 'ステータスコード401 Unauthorizedを返す' do\r
+ delete :destroy, :id => @panel.id, :format => :json\r
+ response.status.should eq 401\r
+ end\r
+ it '応答メッセージにUnauthorizedを返す' do\r
+ delete :destroy, :id => @panel.id, :format => :json\r
+ response.message.should match(/Unauthorized/)\r
+ end\r
+ end\r
+ end\r
+=begin\r
+ context '対象コマがないとき' do\r
+ end\r
+ context '他人のコマだったとき' do\r
+ end\r
+=end\r
+ end\r