OSDN Git Service

db00bf2341eefa8ac5126e82158758834f308493
[pettanr/pettanr.git] / spec / controllers / panels_controller_spec.rb
1 # -*- encoding: utf-8 -*-\r
2 require 'spec_helper'\r
3 #コマ\r
4 describe PanelsController do\r
5   before do\r
6     FactoryGirl.create :admin\r
7     @sp = FactoryGirl.create :system_picture\r
8     @lg = FactoryGirl.create :license_group\r
9     @license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id\r
10     @user = FactoryGirl.create :user_yas\r
11     @author = @user.author    #ユーザ作成時に連動して作成される\r
12   end\r
13   \r
14   describe '一覧表示に於いて' do\r
15     before do\r
16       @panel = FactoryGirl.create :panel, :author_id => @author.id\r
17       Panel.stub(:list).and_return([@panel, @panel, @panel])\r
18       sign_in @user\r
19     end\r
20     context '事前チェックする' do\r
21       it '与えられたpageがセットされている' do\r
22         get :index, :page => 5\r
23         assigns(:page).should eq 5\r
24       end\r
25       it '省略されると@pageに1値が入る' do\r
26         get :index\r
27         assigns(:page).should eq 1\r
28       end\r
29       it '与えられたpage_sizeがセットされている' do\r
30         get :index, :page_size => 15\r
31         assigns(:page_size).should eq 15\r
32       end\r
33       it '省略されると@page_sizeにデフォルト値が入る' do\r
34         get :index\r
35         assigns(:page_size).should eq Panel.default_page_size\r
36       end\r
37       it '最大を超えると@page_sizeにデフォルト最大値が入る' do\r
38         get :index, :page_size => 1500\r
39         assigns(:page_size).should eq Panel.max_page_size\r
40       end\r
41       it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do\r
42         get :index, :page_size => 0\r
43         assigns(:page_size).should eq Panel.default_page_size\r
44       end\r
45     end\r
46     context 'つつがなく終わるとき' do\r
47       it 'ステータスコード200 OKを返す' do\r
48         get :index\r
49         response.should be_success \r
50       end\r
51       it 'コマモデルに一覧を問い合わせている' do\r
52         Panel.should_receive(:list).exactly(1)\r
53         get :index\r
54       end\r
55       it '@panelsにリストを取得している' do\r
56         get :index\r
57         assigns(:panels).should have_at_least(3).items\r
58       end\r
59       context 'html形式' do\r
60         it 'indexテンプレートを描画する' do\r
61           get :index\r
62           response.should render_template("index")\r
63         end\r
64       end\r
65       context 'json形式' do\r
66         it 'jsonデータを返す' do\r
67           get :index, :format => :json\r
68           lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)\r
69         end\r
70         it 'コマモデルにjson一覧出力オプションを問い合わせている' do
71           Panel.should_receive(:list_json_opt).exactly(1)
72           get :index, :format => :json
73         end
74         it 'データがリスト構造になっている' do\r
75           get :index, :format => :json\r
76           json = JSON.parse response.body\r
77           json.should have_at_least(3).items\r
78         end\r
79         it 'リストの先頭くらいはコマっぽいものであって欲しい' do\r
80           get :index, :format => :json\r
81           json = JSON.parse response.body\r
82           json.first.has_key?("border").should be_true\r
83         end\r
84       end\r
85     end\r
86     context '作家権限がないとき' do\r
87       before do\r
88         sign_out @user\r
89       end\r
90       context 'html形式' do\r
91         it 'ステータスコード302 Foundを返す' do\r
92           get :index\r
93           response.status.should eq 302\r
94         end\r
95         it 'サインインページへ遷移する' do\r
96           get :index\r
97           response.should redirect_to '/users/sign_in'\r
98         end\r
99       end\r
100       context 'json形式' do\r
101         it 'ステータスコード401 Unauthorizedを返す' do\r
102           get :index, :format => :json\r
103           response.status.should eq 401\r
104         end\r
105         it '応答メッセージにUnauthorizedを返す' do\r
106           get :index, :format => :json\r
107           response.message.should match(/Unauthorized/)\r
108         end\r
109       end\r
110     end\r
111   end\r
112   \r
113   describe '単体表示に於いて' do\r
114     before do\r
115       @panel = FactoryGirl.create :panel, :author_id => @user.author.id\r
116       Panel.stub(:show).and_return(@panel)\r
117       sign_in @user\r
118     end\r
119     context 'つつがなく終わるとき' do\r
120       it 'ステータスコード200 OKを返す' do\r
121         get :show, :id => @panel.id\r
122         response.should be_success\r
123       end\r
124       it 'コマモデルに単体取得を問い合わせている' do\r
125         Panel.should_receive(:show).exactly(1)\r
126         get :show\r
127       end\r
128       it '@panelにアレを取得している' do\r
129         get :show, :id => @panel.id\r
130         assigns(:panel).id.should eq(@panel.id)\r
131       end\r
132       context 'html形式' do\r
133         it 'showテンプレートを描画する' do\r
134           get :show, :id => @panel.id\r
135           response.should render_template("show")\r
136         end\r
137       end\r
138       context 'json形式' do\r
139         it 'jsonデータを返す' do\r
140           get :show, :id => @panel.id, :format => :json\r
141           lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)\r
142         end\r
143         it 'データがアレになっている' do\r
144           get :show, :id => @panel.id, :format => :json\r
145           json = JSON.parse response.body\r
146           json["width"].should eq 100\r
147         end\r
148       end\r
149     end\r
150     context '作家権限がないとき' do\r
151       before do\r
152         sign_out @user\r
153       end\r
154       context 'html形式' do\r
155         it 'ステータスコード302 Foundを返す' do\r
156           get :show, :id => @panel.id\r
157           response.status.should eq 302\r
158         end\r
159         it 'サインインページへ遷移する' do\r
160           get :show, :id => @panel.id\r
161           response.body.should redirect_to '/users/sign_in'\r
162         end\r
163       end\r
164       context 'json形式' do\r
165         it 'ステータスコード401 Unauthorizedを返す' do\r
166           get :show, :id => @panel.id, :format => :json\r
167           response.status.should eq 401\r
168         end\r
169         it '応答メッセージにUnauthorizedを返す' do\r
170           get :show, :id => @panel.id, :format => :json\r
171           response.message.should match(/Unauthorized/)\r
172         end\r
173       end\r
174     end\r
175 =begin\r
176     context '対象コマがないとき' do\r
177       context 'html形式' do\r
178         it '例外404 not_foundを返す' do\r
179           lambda{\r
180             get :show, :id => 0\r
181           }.should raise_error(ActiveRecord::RecordNotFound)\r
182         end\r
183       end\r
184       context 'json形式' do\r
185         it '例外404 not_foundを返す' do\r
186           lambda{ \r
187             get :show, :id => 0, :format => :json\r
188           }.should raise_error(ActiveRecord::RecordNotFound)\r
189         end\r
190       end\r
191     end\r
192     context '非公開コマを見ようとしたとき' do\r
193       context 'html形式' do\r
194         it '例外403 forbiddenを返す' do\r
195           Panel.any_instance.stub(:visible?).with(any_args()).and_return(false)\r
196           hidden = FactoryGirl.create :hidden_panel, :author_id => @author.id\r
197           lambda{\r
198             get :show, :id => hidden\r
199           }.should raise_error(ActiveRecord::Forbidden)\r
200         end\r
201       end\r
202       context 'json形式' do\r
203         it '例外403 forbiddenを返す' do\r
204           Panel.any_instance.stub(:visible?).with(any_args()).and_return(false)\r
205           hidden = FactoryGirl.create :hidden_panel, :author_id => @author.id\r
206           lambda{\r
207             get :show, :id => hidden, :format => :json\r
208           }.should raise_error(ActiveRecord::Forbidden)\r
209         end\r
210       end\r
211     end\r
212 =end\r
213   end\r
214   \r
215   describe 'コマ数取得に於いて' do\r
216     before do\r
217       Panel.should_receive(:visible_count).and_return(3)\r
218 #      sign_in @user\r
219     end\r
220     context 'つつがなく終わるとき' do\r
221       it 'ステータスコード200 OKを返す' do\r
222         get :count, :format => :json\r
223         response.should be_success \r
224       end\r
225       context 'json形式' do\r
226         it 'jsonデータを返す' do\r
227           get :count, :format => :json\r
228           lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)\r
229         end\r
230         it 'データがHash構造になっていてコマ数が1である' do\r
231           get :count, :format => :json\r
232           json = JSON.parse response.body\r
233           json["count"].should == 3\r
234         end\r
235       end\r
236     end\r
237   end\r
238   \r
239   describe '新規作成フォーム表示に於いて' do\r
240     before do\r
241       sign_in @user\r
242     end\r
243     context 'つつがなく終わるとき' do\r
244       it 'ステータスコード200 OKを返す' do\r
245         get :new\r
246         response.should be_success \r
247       end\r
248       it '@panelに新規データを用意している' do\r
249         get :new\r
250         assigns(:panel).should be_a_new(Panel)\r
251       end\r
252       it 'コマモデルにデフォルト値補充を依頼している' do\r
253         Panel.any_instance.should_receive(:supply_default).exactly(1)\r
254         get :new\r
255       end\r
256       context 'html形式' do\r
257         it 'newテンプレートを描画する' do\r
258           get :new\r
259           response.should render_template("new")\r
260         end\r
261       end\r
262       context 'js形式' do\r
263         it 'new.jsテンプレートを描画する' do\r
264           get :new, :format => :js\r
265           response.should render_template("new")\r
266         end\r
267       end\r
268     end\r
269     context '作家権限がないとき' do\r
270       before do\r
271         sign_out @user\r
272       end\r
273       context 'html形式' do\r
274         it 'ステータスコード302 Foundを返す' do\r
275           get :new\r
276           response.status.should eq 302\r
277         end\r
278         it 'サインインページへ遷移する' do\r
279           get :new\r
280           response.body.should redirect_to '/users/sign_in'\r
281         end\r
282       end\r
283       context 'js形式' do\r
284         it 'ステータスコード401 Unauthorizedを返す' do\r
285           get :new, :format => :js\r
286           response.status.should eq 401\r
287         end\r
288         it '応答メッセージにUnauthorizedを返す' do\r
289           get :new, :format => :js\r
290           response.message.should match(/Unauthorized/)\r
291         end\r
292       end\r
293     end\r
294   end\r
295   \r
296   describe '新規作成に於いて' do\r
297     before do\r
298       @panel = FactoryGirl.create :panel, :author_id => @user.author.id\r
299       @attr = FactoryGirl.attributes_for(:panel, :author_id => @author.id)\r
300       sign_in @user\r
301     end\r
302     context '事前チェックする' do\r
303       before do\r
304         controller\r
305         Panel.stub(:count).and_return(10)\r
306       end\r
307       it 'panelがパラメータにあれば、展開する' do\r
308         post :create, :panel => @attr\r
309         assigns(:prm)['border'].to_i.should eq @panel.border\r
310       end\r
311       it 'jsonがパラメータにあれば、展開する' do\r
312         post :create, :json => FactoryGirl.attributes_for(:panel, :border => 4).to_json\r
313         assigns(:prm)['border'].to_i.should eq 4\r
314       end\r
315       it 'panel・json両パラメータがあれば、panelを優先して展開する' do\r
316         post :create, {\r
317           :panel => FactoryGirl.attributes_for(:panel), \r
318           :json => FactoryGirl.attributes_for(:panel, :border => 4).to_json\r
319         }\r
320         assigns(:prm)['border'].to_i.should eq @panel.border\r
321       end\r
322     end\r
323     context 'つつがなく終わるとき' do\r
324       it 'コマモデルにデフォルト値補充を依頼している' do\r
325         Panel.any_instance.should_receive(:supply_default).exactly(1)\r
326         post :create, :panel => @attr\r
327       end\r
328       it 'コマモデルに上書き補充を依頼している' do\r
329         Panel.any_instance.should_receive(:overwrite).exactly(1)\r
330         post :create, :panel => @attr\r
331       end\r
332       it 'モデルに保存依頼する' do\r
333         Panel.any_instance.should_receive(:store).exactly(1)\r
334         post :create, :panel => @attr\r
335       end\r
336       it "@panelに作成されたコマを保持していて、それがDBにある" do\r
337         post :create, :panel => @attr\r
338         assigns(:panel).should be_a(Panel)\r
339         assigns(:panel).should be_persisted\r
340       end\r
341       context 'html形式' do\r
342         it 'ステータスコード302 Foundを返す' do\r
343           Panel.any_instance.stub(:store).and_return(true)\r
344           post :create, :panel => @attr\r
345           response.status.should eq 302\r
346         end\r
347         it '作成されたコマの表示ページへ遷移する' do\r
348 #          Panel.any_instance.stub(:store).and_return(true)\r
349           post :create, :panel => @attr\r
350           response.should redirect_to(Panel.last)\r
351         end\r
352       end\r
353       context 'json形式' do\r
354         it 'ステータスコード200 OKを返す' do\r
355 #          Panel.any_instance.stub(:store).and_return(true)\r
356           post :create, :panel => @attr, :format => :json\r
357           response.should be_success \r
358         end\r
359         it '作成されたコマをjsonデータで返す' do\r
360           post :create, :panel => @attr, :format => :json\r
361           lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)\r
362         end\r
363         it 'データがアレになっている' do\r
364           post :create, :panel => @attr, :format => :json\r
365           json = JSON.parse response.body\r
366           json["width"].should eq @panel.width\r
367         end\r
368       end\r
369     end\r
370     context '作家権限がないとき' do\r
371       before do\r
372         sign_out @user\r
373       end\r
374       context 'html形式' do\r
375         it 'ステータスコード302 Foundを返す' do\r
376           post :create, :panel => @attr\r
377           response.status.should eq 302\r
378         end\r
379         it 'サインインページへ遷移する' do\r
380           post :create, :panel => @attr\r
381           response.body.should redirect_to '/users/sign_in'\r
382         end\r
383       end\r
384       context 'json形式' do\r
385         it 'ステータスコード401 Unauthorizedを返す' do\r
386           post :create, :panel => @attr, :format => :json\r
387           response.status.should eq 401\r
388         end\r
389         it '応答メッセージにUnauthorizedを返す' do\r
390           post :create, :panel => @attr, :format => :json\r
391           response.message.should match(/Unauthorized/)\r
392         end\r
393       end\r
394     end\r
395     context '検証、保存に失敗した' do\r
396       before do\r
397         Panel.any_instance.stub(:store).and_return(false)\r
398       end\r
399       it "未保存のコマを保持している" do\r
400         post :create, :panel => @attr\r
401         assigns(:panel).should be_a_new(Panel)\r
402       end\r
403       context 'html形式' do\r
404         it 'ステータスコード200 OKを返す' do\r
405           post :create, :panel => @attr\r
406           response.status.should eq 200\r
407         end\r
408         it '新規ページを描画する' do\r
409           post :create, :panel => @attr\r
410           response.should render_template("new")\r
411         end\r
412       end\r
413       context 'json形式' do\r
414         it 'ステータスコード422 unprocessable_entity を返す' do\r
415           post :create, :panel => @attr, :format => :json\r
416           response.status.should eq 422\r
417         end\r
418         it '応答メッセージUnprocessable Entityを返す' do\r
419           post :create, :panel => @attr, :format => :json\r
420           response.message.should match(/Unprocessable/)\r
421         end\r
422       end\r
423     end\r
424   end\r
425 \r
426   describe '編集フォーム表示に於いて' do\r
427     before do\r
428       @panel = FactoryGirl.create :panel, :author_id => @author.id\r
429       sign_in @user\r
430       Panel.stub(:show).and_return(@panel)\r
431     end\r
432     context 'つつがなく終わるとき' do\r
433       it 'ステータスコード200 OKを返す' do\r
434         get :edit, :id => @panel.id\r
435         response.should be_success \r
436       end\r
437       it 'コマモデルに編集取得を問い合わせている' do\r
438         Panel.should_receive(:edit).exactly(1)\r
439         get :edit, :id => @panel.id\r
440       end\r
441       it '@panelにデータを用意している' do\r
442         get :edit, :id => @panel.id\r
443         assigns(:panel).should eq @panel\r
444       end\r
445       context 'html形式' do\r
446         it 'editテンプレートを描画する' do\r
447           get :edit, :id => @panel.id\r
448           response.should render_template("edit")\r
449         end\r
450       end\r
451       context 'js形式' do\r
452         it 'edit.jsテンプレートを描画する' do\r
453           get :edit, :id => @panel.id, :format => :js\r
454           response.should render_template("edit")\r
455         end\r
456       end\r
457     end\r
458     context '作家権限がないとき' do\r
459       before do\r
460         sign_out @user\r
461       end\r
462       context 'html形式' do\r
463         it 'ステータスコード302 Foundを返す' do\r
464           get :edit, :id => @panel.id\r
465           response.status.should eq 302\r
466         end\r
467         it 'サインインページへ遷移する' do\r
468           get :edit, :id => @panel.id\r
469           response.body.should redirect_to '/users/sign_in'\r
470         end\r
471       end\r
472       context 'js形式' do\r
473         it 'ステータスコード401 Unauthorizedを返す' do\r
474           get :edit, :id => @panel.id, :format => :js\r
475           response.status.should eq 401\r
476         end\r
477         it '応答メッセージにUnauthorizedを返す' do\r
478           get :edit, :id => @panel.id, :format => :js\r
479           response.message.should match(/Unauthorized/)\r
480         end\r
481       end\r
482     end\r
483   end\r
484 \r
485   describe '更新に於いて' do\r
486     before do\r
487       @panel = FactoryGirl.create :panel, :author_id => @user.author.id\r
488       @attr = FactoryGirl.attributes_for(:panel, :author_id => @author.id)\r
489       sign_in @user\r
490     end\r
491     context '事前チェックする' do\r
492       before do\r
493         controller\r
494         Panel.stub(:count).and_return(10)\r
495       end\r
496       it 'panelがパラメータにあれば、展開する' do\r
497         put :update, :id => @panel.id, :panel => @attr\r
498         assigns(:prm)['border'].to_i.should eq @panel.border\r
499       end\r
500       it 'jsonがパラメータにあれば、展開する' do\r
501         put :update, :id => @panel.id, :json => FactoryGirl.attributes_for(:panel, :border => 4).to_json\r
502         assigns(:prm)['border'].to_i.should eq 4\r
503       end\r
504       it 'panel・json両パラメータがあれば、panelを優先して展開する' do\r
505         put :update, {\r
506           :id => @panel.id, \r
507           :panel => FactoryGirl.attributes_for(:panel), \r
508           :json => FactoryGirl.attributes_for(:panel, :border => 4).to_json\r
509         }\r
510         assigns(:prm)['border'].to_i.should eq @panel.border\r
511       end\r
512     end\r
513     context 'つつがなく終わるとき' do\r
514       it 'モデルに編集取得依頼する' do\r
515         Panel.stub(:edit).with(any_args).and_return(@panel)\r
516         Panel.should_receive(:edit).exactly(1)\r
517         put :update, :id => @panel.id, :panel => @attr\r
518       end\r
519       it 'コマモデルに上書き補充を依頼している' do\r
520         Panel.any_instance.should_receive(:overwrite).exactly(1)\r
521         put :update, :id => @panel.id, :panel => @attr\r
522       end\r
523       it 'モデルに保存依頼する' do\r
524         Panel.any_instance.should_receive(:store).exactly(1)\r
525         put :update, :id => @panel.id, :panel => @attr\r
526       end\r
527       it "@panelに作成されたコマを保持していて、それがDBにある" do\r
528         put :update, :id => @panel.id, :panel => @attr\r
529         assigns(:panel).should be_a(Panel)\r
530         assigns(:panel).should be_persisted\r
531       end\r
532       context 'html形式' do\r
533         it 'ステータスコード302 Foundを返す' do\r
534           Panel.any_instance.stub(:store).and_return(true)\r
535           put :update, :id => @panel.id, :panel => @attr\r
536           response.status.should eq 302\r
537         end\r
538         it '作成されたコマの表示ページへ遷移する' do\r
539 #          Panel.any_instance.stub(:store).and_return(true)\r
540           put :update, :id => @panel.id, :panel => @attr\r
541           response.should redirect_to(Panel.last)\r
542         end\r
543       end\r
544       context 'json形式' do\r
545         it 'ステータスコード200 OKを返す' do\r
546 #          Panel.any_instance.stub(:store).and_return(true)\r
547           put :update, :id => @panel.id, :panel => @attr, :format => :json\r
548           response.should be_success \r
549         end\r
550       end\r
551     end\r
552     context '作家権限がないとき' do\r
553       before do\r
554         sign_out @user\r
555       end\r
556       context 'html形式' do\r
557         it 'ステータスコード302 Foundを返す' do\r
558           put :update, :id => @panel.id, :panel => @attr\r
559           response.status.should eq 302\r
560         end\r
561         it 'サインインページへ遷移する' do\r
562           put :update, :id => @panel.id, :panel => @attr\r
563           response.body.should redirect_to '/users/sign_in'\r
564         end\r
565       end\r
566       context 'json形式' do\r
567         it 'ステータスコード401 Unauthorizedを返す' do\r
568           put :update, :id => @panel.id, :panel => @attr, :format => :json\r
569           response.status.should eq 401\r
570         end\r
571         it '応答メッセージにUnauthorizedを返す' do\r
572           put :update, :id => @panel.id, :panel => @attr, :format => :json\r
573           response.message.should match(/Unauthorized/)\r
574         end\r
575       end\r
576     end\r
577     context '検証、保存に失敗した' do\r
578       before do\r
579         Panel.any_instance.stub(:store).and_return(false)\r
580       end\r
581       it "指定のコマを保持している" do\r
582         put :update, :id => @panel.id, :panel => @attr\r
583         assigns(:panel).should eq @panel\r
584       end\r
585       context 'html形式' do\r
586         it 'ステータスコード200 OKを返す' do\r
587           put :update, :id => @panel.id, :panel => @attr\r
588           response.status.should eq 200\r
589         end\r
590         it '編集ページを描画する' do\r
591           put :update, :id => @panel.id, :panel => @attr\r
592           response.should render_template("edit")\r
593         end\r
594       end\r
595       context 'json形式' do\r
596         it 'ステータスコード422 unprocessable_entity を返す' do\r
597           put :update, :id => @panel.id, :panel => @attr, :format => :json\r
598           response.status.should eq 422\r
599         end\r
600         it '応答メッセージUnprocessable Entityを返す' do\r
601           put :update, :id => @panel.id, :panel => @attr, :format => :json\r
602           response.message.should match(/Unprocessable/)\r
603         end\r
604       end\r
605     end\r
606   end\r
607 \r
608   describe '削除に於いて' do\r
609     before do\r
610       @panel = FactoryGirl.create :panel, :author_id => @user.author.id\r
611       Panel.stub(:edit).and_return(@panel)\r
612       sign_in @user\r
613     end\r
614     context 'つつがなく終わるとき' do\r
615       it 'コマモデルに編集取得を問い合わせている' do\r
616         Panel.should_receive(:edit).exactly(1)\r
617         delete :destroy, :id => @panel.id\r
618       end\r
619       it '@panelにアレを取得している' do\r
620         delete :destroy, :id => @panel.id\r
621         assigns(:panel).id.should eq(@panel.id)\r
622       end\r
623       it 'そのコマを一つのトランザクションで削除する' do\r
624         lambda {\r
625           delete :destroy, :id => @panel.id\r
626         }.should change(Panel, :count)\r
627       end\r
628       context 'html形式' do\r
629         it 'ステータスコード302 Foundを返す' do\r
630           delete :destroy, :id => @panel.id\r
631           response.status.should eq 302\r
632         end\r
633         it 'コマ一覧ページへ遷移する' do\r
634           delete :destroy, :id => @panel.id\r
635           response.should redirect_to(panels_url)\r
636         end\r
637       end\r
638       context 'json形式' do\r
639         it 'ステータスコード200 OKを返す' do\r
640           delete :destroy, :id => @panel.id, :format => :json\r
641           response.should be_success\r
642         end\r
643       end\r
644     end\r
645     context '作家権限がないとき' do\r
646       before do\r
647         sign_out @user\r
648       end\r
649       context 'html形式' do\r
650         it 'ステータスコード302 Foundを返す' do\r
651           delete :destroy, :id => @panel.id\r
652           response.status.should eq 302\r
653         end\r
654         it 'サインインページへ遷移する' do\r
655           delete :destroy, :id => @panel.id\r
656           response.body.should redirect_to '/users/sign_in'\r
657         end\r
658       end\r
659       context 'json形式' do\r
660         it 'ステータスコード401 Unauthorizedを返す' do\r
661           delete :destroy, :id => @panel.id, :format => :json\r
662           response.status.should eq 401\r
663         end\r
664         it '応答メッセージにUnauthorizedを返す' do\r
665           delete :destroy, :id => @panel.id, :format => :json\r
666           response.message.should match(/Unauthorized/)\r
667         end\r
668       end\r
669     end\r
670 =begin\r
671     context '対象コマがないとき' do\r
672     end\r
673     context '他人のコマだったとき' do\r
674     end\r
675 =end\r
676   end\r
677   \r
678 end\r
679 \r