1 # -*- encoding: utf-8 -*-
5 describe HomeController do
7 @admin =FactoryGirl.create :admin
8 @sp = FactoryGirl.create :system_picture
9 @lg = FactoryGirl.create :license_group
10 @license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
11 @user = FactoryGirl.create( :user_yas)
12 @author = FactoryGirl.create :author, :user_id => @user.id
13 @artist = FactoryGirl.create :artist_yas, :author_id => @author.id
14 @color = FactoryGirl.create :color
15 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
16 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
17 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => @op.id, :picture_id => @p.id
18 @panel = FactoryGirl.create :panel, :author_id => @author.id
21 if MagicNumber['run_mode'] == 1
22 describe '自分のコミック一覧表示に於いて' do
24 @comic = FactoryGirl.create :comic, :author_id => @author.id
26 Comic.stub(:mylist).and_return([@comic, @comic, @comic])
28 context 'パラメータpageについて' do
30 get :comic, :page => 5
31 assigns(:page).should eq 5
33 it '省略されると@pageに1値が入る' do
35 assigns(:page).should eq 1
37 it '与えられたpage_sizeがセットされている' do
38 get :comic, :page_size => 15
39 assigns(:page_size).should eq 15
41 it '省略されると@page_sizeにデフォルト値が入る' do
43 assigns(:page_size).should eq Author.default_comic_page_size
45 it '最大を超えると@page_sizeにデフォルト最大値が入る' do
46 get :comic, :page_size => 1500
47 assigns(:page_size).should eq Author.comic_max_page_size
49 it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do
50 get :comic, :page_size => 0
51 assigns(:page_size).should eq Author.default_comic_page_size
54 context 'つつがなく終わるとき' do
55 it 'ステータスコード200 OKを返す' do
57 response.should be_success
59 it 'コミックモデルに一覧を問い合わせている' do
60 Comic.should_receive(:mylist).exactly(1)
63 it '@comicsにリストを取得している' do
65 assigns(:comics).should have_at_least(3).items
68 it 'comicテンプレートを描画する' do
70 response.should render_template("comic")
75 get :comic, :format => :json
76 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
78 it 'コミックモデルにjson一覧出力オプションを問い合わせている' do
79 Comic.should_receive(:list_json_opt).exactly(1)
80 get :comic, :format => :json
82 it 'データがリスト構造になっている' do
83 get :comic, :format => :json
84 json = JSON.parse response.body
85 json.should have_at_least(3).items
87 it 'リストの先頭くらいはコミックっぽいものであって欲しい' do
88 get :comic, :format => :json
89 json = JSON.parse response.body
90 json.first.has_key?("title").should be_true
91 json.first.has_key?("visible").should be_true
95 context '作家権限がないとき' do
100 it 'ステータスコード302 Foundを返す' do
102 response.status.should eq 302
104 it 'サインインページへ遷移する' do
106 response.should redirect_to '/users/sign_in'
110 it 'ステータスコード401 Unauthorizedを返す' do
111 get :comic, :format => :json
112 response.status.should eq 401
114 it '応答メッセージにUnauthorizedを返す' do
115 get :comic, :format => :json
116 response.message.should match(/Unauthorized/)
122 describe '自分のコマ一覧表示に於いて' do
124 @panel = FactoryGirl.create :panel, :author_id => @author.id
126 Panel.stub(:mylist).and_return([@panel, @panel, @panel])
128 context 'パラメータpageについて' do
130 get :panel, :page => 5
131 assigns(:page).should eq 5
133 it '省略されると@pageに1値が入る' do
135 assigns(:page).should eq 1
137 it '与えられたpage_sizeがセットされている' do
138 get :panel, :page_size => 15
139 assigns(:page_size).should eq 15
141 it '省略されると@page_sizeにデフォルト値が入る' do
143 assigns(:page_size).should eq Author.default_panel_page_size
145 it '最大を超えると@page_sizeにデフォルト最大値が入る' do
146 get :panel, :page_size => 1500
147 assigns(:page_size).should eq Author.panel_max_page_size
149 it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do
150 get :panel, :page_size => 0
151 assigns(:page_size).should eq Author.default_panel_page_size
154 context 'つつがなく終わるとき' do
155 it 'コマモデルに一覧を問い合わせている' do
156 Panel.should_receive(:mylist).exactly(1)
159 it '@panelsにリストを取得している' do
161 assigns(:panels).should have_at_least(3).items
164 it 'ステータスコード200 OKを返す' do
166 response.should be_success
168 it 'panelテンプレートを描画する' do
170 response.should render_template("panel")
174 it 'ステータスコード200 OKを返す' do
175 get :panel, :format => :json
176 response.should be_success
179 get :panel, :format => :json
180 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
182 it 'コマモデルにコマリストのjson出力を問い合わせている' do
183 Panel.should_receive(:list_as_json_text).exactly(1)
184 get :panel, :format => :json
186 it 'データがリスト構造になっている' do
187 get :panel, :format => :json
188 json = JSON.parse response.body
189 json.should have_at_least(3).items
191 it 'リストの先頭くらいはコマっぽいものであって欲しい' do
192 get :panel, :format => :json
193 json = JSON.parse response.body
194 json.first.has_key?("z").should be_true
198 context '作家権限がないとき' do
203 it 'ステータスコード302 Foundを返す' do
205 response.status.should eq 302
207 it 'サインインページへ遷移する' do
209 response.should redirect_to '/users/sign_in'
213 it 'ステータスコード401 Unauthorizedを返す' do
214 get :panel, :format => :json
215 response.status.should eq 401
217 it '応答メッセージにUnauthorizedを返す' do
218 get :panel, :format => :json
219 response.message.should match(/Unauthorized/)
225 describe '自分のコマ絵一覧表示に於いて' do
227 @pp = FactoryGirl.create :panel_picture, :panel_id => @panel.id, :picture_id => @p.id,
228 :width => @p.width, :height => @p.height
230 PanelPicture.stub(:mylist).and_return([@pp, @pp, @pp])
232 context 'パラメータpageについて' do
234 get :panel_picture, :page => 5
235 assigns(:page).should eq 5
237 it '省略されると@pageに1値が入る' do
239 assigns(:page).should eq 1
241 it '与えられたpage_sizeがセットされている' do
242 get :panel_picture, :page_size => 15
243 assigns(:page_size).should eq 15
245 it '省略されると@page_sizeにデフォルト値が入る' do
247 assigns(:page_size).should eq Author.default_panel_picture_page_size
249 it '最大を超えると@page_sizeにデフォルト最大値が入る' do
250 get :panel_picture, :page_size => 1500
251 assigns(:page_size).should eq Author.panel_picture_max_page_size
253 it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do
254 get :panel_picture, :page_size => 0
255 assigns(:page_size).should eq Author.default_panel_picture_page_size
258 context 'つつがなく終わるとき' do
259 it 'ステータスコード200 OKを返す' do
261 response.should be_success
263 it 'コマ絵モデルに一覧を問い合わせている' do
264 PanelPicture.should_receive(:mylist).exactly(1)
267 it '@panel_picturesにリストを取得している' do
269 assigns(:panel_pictures).should have_at_least(3).items
272 it 'panel_pictureテンプレートを描画する' do
274 response.should render_template("panel_picture")
279 get :panel_picture, :format => :json
280 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
282 it 'コマ絵モデルにjson一覧出力オプションを問い合わせている' do
283 PanelPicture.should_receive(:list_json_opt).exactly(1)
284 get :panel_picture, :format => :json
286 it 'データがリスト構造になっている' do
287 get :panel_picture, :format => :json
288 json = JSON.parse response.body
289 json.should have_at_least(3).items
291 it 'リストの先頭くらいはコマ絵っぽいものであって欲しい' do
292 get :panel_picture, :format => :json
293 json = JSON.parse response.body
294 json.first.has_key?("link").should be_true
295 json.first.has_key?("x").should be_true
296 json.first.has_key?("y").should be_true
300 context '作家権限がないとき' do
305 it 'ステータスコード302 Foundを返す' do
307 response.status.should eq 302
309 it 'サインインページへ遷移する' do
311 response.should redirect_to '/users/sign_in'
315 it 'ステータスコード401 Unauthorizedを返す' do
316 get :panel_picture, :format => :json
317 response.status.should eq 401
319 it '応答メッセージにUnauthorizedを返す' do
320 get :panel_picture, :format => :json
321 response.message.should match(/Unauthorized/)
327 describe '自分のコマの色背景一覧表示に於いて' do
329 @pc = FactoryGirl.create :panel_color, :panel_id => @panel.id
331 PanelColor.stub(:mylist).and_return([@pc, @pc, @pc])
333 context 'パラメータpageについて' do
335 get :panel_color, :page => 5
336 assigns(:page).should eq 5
338 it '省略されると@pageに1値が入る' do
340 assigns(:page).should eq 1
342 it '与えられたpage_sizeがセットされている' do
343 get :panel_color, :page_size => 15
344 assigns(:page_size).should eq 15
346 it '省略されると@page_sizeにデフォルト値が入る' do
348 assigns(:page_size).should eq PanelColor.default_page_size
350 it '最大を超えると@page_sizeにデフォルト最大値が入る' do
351 get :panel_color, :page_size => 1500
352 assigns(:page_size).should eq PanelColor.max_page_size
354 it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do
355 get :panel_color, :page_size => 0
356 assigns(:page_size).should eq PanelColor.default_page_size
359 context 'つつがなく終わるとき' do
360 it 'ステータスコード200 OKを返す' do
362 response.should be_success
364 it 'コマの色背景モデルに一覧を問い合わせている' do
365 PanelColor.should_receive(:mylist).exactly(1)
368 it '@panel_colorsにリストを取得している' do
370 assigns(:panel_colors).should have_at_least(3).items
373 it 'panel_colorテンプレートを描画する' do
375 response.should render_template("panel_color")
380 get :panel_color, :format => :json
381 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
383 it 'コマの色背景モデルにjson一覧出力オプションを問い合わせている' do
384 PanelColor.should_receive(:list_json_opt).exactly(1)
385 get :panel_color, :format => :json
387 it 'データがリスト構造になっている' do
388 get :panel_color, :format => :json
389 json = JSON.parse response.body
390 json.should have_at_least(3).items
392 it 'リストの先頭くらいはコマの色背景っぽいものであって欲しい' do
393 get :panel_color, :format => :json
394 json = JSON.parse response.body
395 json.first.has_key?("panel_id").should be_true
396 json.first.has_key?("code").should be_true
397 json.first.has_key?("z").should be_true
401 context '作家権限がないとき' do
406 it 'ステータスコード302 Foundを返す' do
408 response.status.should eq 302
410 it 'サインインページへ遷移する' do
412 response.should redirect_to '/users/sign_in'
416 it 'ステータスコード401 Unauthorizedを返す' do
417 get :panel_color, :format => :json
418 response.status.should eq 401
420 it '応答メッセージにUnauthorizedを返す' do
421 get :panel_color, :format => :json
422 response.message.should match(/Unauthorized/)
428 describe '自分のコマの画像背景一覧表示に於いて' do
430 @gp = FactoryGirl.create :ground_picture, :panel_id => @panel.id, :picture_id => @p.id
432 GroundPicture.stub(:mylist).and_return([@gp, @gp, @gp])
434 context 'パラメータpageについて' do
436 get :ground_picture, :page => 5
437 assigns(:page).should eq 5
439 it '省略されると@pageに1値が入る' do
441 assigns(:page).should eq 1
443 it '与えられたpage_sizeがセットされている' do
444 get :ground_picture, :page_size => 15
445 assigns(:page_size).should eq 15
447 it '省略されると@page_sizeにデフォルト値が入る' do
449 assigns(:page_size).should eq GroundPicture.default_page_size
451 it '最大を超えると@page_sizeにデフォルト最大値が入る' do
452 get :ground_picture, :page_size => 1500
453 assigns(:page_size).should eq GroundPicture.max_page_size
455 it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do
456 get :ground_picture, :page_size => 0
457 assigns(:page_size).should eq GroundPicture.default_page_size
460 context 'つつがなく終わるとき' do
461 it 'ステータスコード200 OKを返す' do
463 response.should be_success
465 it 'コマの画像背景モデルに一覧を問い合わせている' do
466 GroundPicture.should_receive(:mylist).exactly(1)
469 it '@ground_picturesにリストを取得している' do
471 assigns(:ground_pictures).should have_at_least(3).items
474 it 'ground_pictureテンプレートを描画する' do
476 response.should render_template("ground_picture")
481 get :ground_picture, :format => :json
482 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
484 it 'コマの画像背景モデルにjson一覧出力オプションを問い合わせている' do
485 GroundPicture.should_receive(:list_json_opt).exactly(1)
486 get :ground_picture, :format => :json
488 it 'データがリスト構造になっている' do
489 get :ground_picture, :format => :json
490 json = JSON.parse response.body
491 json.should have_at_least(3).items
493 it 'リストの先頭くらいはコマの画像背景っぽいものであって欲しい' do
494 get :ground_picture, :format => :json
495 json = JSON.parse response.body
496 json.first.has_key?("panel_id").should be_true
497 json.first.has_key?("picture_id").should be_true
498 json.first.has_key?("z").should be_true
502 context '作家権限がないとき' do
507 it 'ステータスコード302 Foundを返す' do
509 response.status.should eq 302
511 it 'サインインページへ遷移する' do
513 response.should redirect_to '/users/sign_in'
517 it 'ステータスコード401 Unauthorizedを返す' do
518 get :ground_picture, :format => :json
519 response.status.should eq 401
521 it '応答メッセージにUnauthorizedを返す' do
522 get :ground_picture, :format => :json
523 response.message.should match(/Unauthorized/)
529 describe '自分の間接背景一覧表示に於いて' do
531 @gc = FactoryGirl.create :ground_color
533 GroundColor.stub(:mylist).and_return([@gc, @gc, @gc])
535 context 'パラメータpageについて' do
537 get :ground_color, :page => 5
538 assigns(:page).should eq 5
540 it '省略されると@pageに1値が入る' do
542 assigns(:page).should eq 1
544 it '与えられたpage_sizeがセットされている' do
545 get :ground_color, :page_size => 15
546 assigns(:page_size).should eq 15
548 it '省略されると@page_sizeにデフォルト値が入る' do
550 assigns(:page_size).should eq GroundColor.default_page_size
552 it '最大を超えると@page_sizeにデフォルト最大値が入る' do
553 get :ground_color, :page_size => 1500
554 assigns(:page_size).should eq GroundColor.max_page_size
556 it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do
557 get :ground_color, :page_size => 0
558 assigns(:page_size).should eq GroundColor.default_page_size
561 context 'つつがなく終わるとき' do
562 it 'ステータスコード200 OKを返す' do
564 response.should be_success
566 it '間接背景モデルに一覧を問い合わせている' do
567 GroundColor.should_receive(:mylist).exactly(1)
570 it '@ground_colorsにリストを取得している' do
572 assigns(:ground_colors).should have_at_least(3).items
575 it 'ground_colorテンプレートを描画する' do
577 response.should render_template("ground_color")
582 get :ground_color, :format => :json
583 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
585 it '間接背景モデルにjson一覧出力オプションを問い合わせている' do
586 GroundColor.should_receive(:list_json_opt).exactly(1)
587 get :ground_color, :format => :json
589 it 'データがリスト構造になっている' do
590 get :ground_color, :format => :json
591 json = JSON.parse response.body
592 json.should have_at_least(3).items
594 it 'リストの先頭くらいは間接背景っぽいものであって欲しい' do
595 get :ground_color, :format => :json
596 json = JSON.parse response.body
597 json.first.has_key?("panel_id").should be_true
598 json.first.has_key?("color_id").should be_true
599 json.first.has_key?("z").should be_true
603 context '作家権限がないとき' do
608 it 'ステータスコード302 Foundを返す' do
610 response.status.should eq 302
612 it 'サインインページへ遷移する' do
614 response.should redirect_to '/users/sign_in'
618 it 'ステータスコード401 Unauthorizedを返す' do
619 get :ground_color, :format => :json
620 response.status.should eq 401
622 it '応答メッセージにUnauthorizedを返す' do
623 get :ground_color, :format => :json
624 response.message.should match(/Unauthorized/)
630 describe '自分の素材一覧表示に於いて' do
632 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
633 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
634 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => @op.id, :picture_id => @p.id
636 ResourcePicture.stub(:mylist).and_return([@rp, @rp, @rp])
638 context 'パラメータpageについて' do
640 get :resource_picture, :page => 5
641 assigns(:page).should eq 5
643 it '省略されると@pageに1値が入る' do
644 get :resource_picture
645 assigns(:page).should eq 1
647 it '与えられたpage_sizeがセットされている' do
648 get :resource_picture, :page_size => 15
649 assigns(:page_size).should eq 15
651 it '省略されると@page_sizeにデフォルト値が入る' do
652 get :resource_picture
653 assigns(:page_size).should eq Author.default_comic_page_size
655 it '最大を超えると@page_sizeにデフォルト最大値が入る' do
656 get :resource_picture, :page_size => 1500
657 assigns(:page_size).should eq Author.comic_max_page_size
659 it '不正な値が入ると@page_sizeにデフォルト最大値が入る' do
660 get :resource_picture, :page_size => 0
661 assigns(:page_size).should eq Author.default_comic_page_size
664 context 'つつがなく終わるとき' do
665 it 'ステータスコード200 OKを返す' do
666 get :resource_picture
667 response.should be_success
669 it '素材モデルに一覧を問い合わせている' do
670 ResourcePicture.should_receive(:mylist).exactly(1)
671 get :resource_picture
673 it '@resource_picturesにリストを取得している' do
674 get :resource_picture
675 assigns(:resource_pictures).should have_at_least(3).items
678 it 'resource_pictureテンプレートを描画する' do
679 get :resource_picture
680 response.should render_template("resource_picture")
685 get :resource_picture, :format => :json
686 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
688 it '素材モデルにjson一覧出力オプションを問い合わせている' do
689 ResourcePicture.should_receive(:list_json_opt).exactly(1)
690 get :resource_picture, :format => :json
692 it 'データがリスト構造になっている' do
693 get :resource_picture, :format => :json
694 json = JSON.parse response.body
695 json.should have_at_least(3).items
697 it 'リストの先頭くらいは素材っぽいものであって欲しい' do
698 get :resource_picture, :format => :json
699 json = JSON.parse response.body
700 json.first.has_key?("original_picture_id").should be_true
701 json.first.has_key?("license_id").should be_true
705 context '作家権限がないとき' do
710 it 'ステータスコード302 Foundを返す' do
711 get :resource_picture
712 response.status.should eq 302
714 it 'サインインページへ遷移する' do
715 get :resource_picture
716 response.should redirect_to '/users/sign_in'
720 it 'ステータスコード401 Unauthorizedを返す' do
721 get :resource_picture, :format => :json
722 response.status.should eq 401
724 it '応答メッセージにUnauthorizedを返す' do
725 get :resource_picture, :format => :json
726 response.message.should match(/Unauthorized/)
730 context '作家が絵師でないとき' do
732 Author.any_instance.stub(:artist?).and_return(false)
735 it 'ステータスコード302 Foundを返す' do
736 get :resource_picture
737 response.status.should eq 302
740 get :resource_picture
741 response.should redirect_to new_artist_path
745 it '例外403 forbiddenを返す' do
747 get :resource_picture, :format => :json
748 }.should raise_error(ActiveRecord::Forbidden)
755 describe '自分のコミック一覧表示に於いて' do
757 @comic = FactoryGirl.create :comic, :author_id => @author.id
759 Comic.stub(:mylist).and_return([@comic, @comic, @comic])
761 context 'つつがなく終わるとき' do
762 it 'ステータスコード200 OKを返す' do
764 response.should be_success
767 it 'comicテンプレートを描画する' do
769 response.should render_template("comic")
774 get :comic, :format => :json
775 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
779 context '作家権限がないとき' do
784 it 'ステータスコード302 Foundを返す' do
786 response.status.should eq 302
788 it 'サインインページへ遷移する' do
790 response.should redirect_to '/users/sign_in'
794 it 'ステータスコード401 Unauthorizedを返す' do
795 get :comic, :format => :json
796 response.status.should eq 401
798 it '応答メッセージにUnauthorizedを返す' do
799 get :comic, :format => :json
800 response.message.should match(/Unauthorized/)
806 describe '自分のコマ一覧表示に於いて' do
808 @panel = FactoryGirl.create :panel, :author_id => @author.id
810 Panel.stub(:mylist).and_return([@panel, @panel, @panel])
812 context 'つつがなく終わるとき' do
814 it 'ステータスコード200 OKを返す' do
816 response.should be_success
818 it 'panelテンプレートを描画する' do
820 response.should render_template("panel")
824 it 'ステータスコード200 OKを返す' do
825 get :panel, :format => :json
826 response.should be_success
829 get :panel, :format => :json
830 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
834 context '作家権限がないとき' do
839 it 'ステータスコード302 Foundを返す' do
841 response.status.should eq 302
843 it 'サインインページへ遷移する' do
845 response.should redirect_to '/users/sign_in'
849 it 'ステータスコード401 Unauthorizedを返す' do
850 get :panel, :format => :json
851 response.status.should eq 401
853 it '応答メッセージにUnauthorizedを返す' do
854 get :panel, :format => :json
855 response.message.should match(/Unauthorized/)
861 describe '自分のコマ絵一覧表示に於いて' do
863 @pp = FactoryGirl.create :panel_picture, :panel_id => @panel.id, :picture_id => @p.id,
864 :width => @p.width, :height => @p.height
866 PanelPicture.stub(:mylist).and_return([@pp, @pp, @pp])
868 context 'つつがなく終わるとき' do
869 it 'ステータスコード200 OKを返す' do
871 response.should be_success
874 it 'panel_pictureテンプレートを描画する' do
876 response.should render_template("panel_picture")
881 get :panel_picture, :format => :json
882 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
886 context '作家権限がないとき' do
891 it 'ステータスコード302 Foundを返す' do
893 response.status.should eq 302
895 it 'サインインページへ遷移する' do
897 response.should redirect_to '/users/sign_in'
901 it 'ステータスコード401 Unauthorizedを返す' do
902 get :panel_picture, :format => :json
903 response.status.should eq 401
905 it '応答メッセージにUnauthorizedを返す' do
906 get :panel_picture, :format => :json
907 response.message.should match(/Unauthorized/)
913 describe '自分のコマの色背景一覧表示に於いて' do
915 @pc = FactoryGirl.create :panel_color, :panel_id => @panel.id
917 PanelColor.stub(:mylist).and_return([@pc, @pc, @pc])
919 context 'つつがなく終わるとき' do
920 it 'ステータスコード200 OKを返す' do
922 response.should be_success
925 it 'panel_colorテンプレートを描画する' do
927 response.should render_template("panel_color")
932 get :panel_color, :format => :json
933 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
937 context '作家権限がないとき' do
942 it 'ステータスコード302 Foundを返す' do
944 response.status.should eq 302
946 it 'サインインページへ遷移する' do
948 response.should redirect_to '/users/sign_in'
952 it 'ステータスコード401 Unauthorizedを返す' do
953 get :panel_color, :format => :json
954 response.status.should eq 401
956 it '応答メッセージにUnauthorizedを返す' do
957 get :panel_color, :format => :json
958 response.message.should match(/Unauthorized/)
964 describe '自分のコマの画像背景一覧表示に於いて' do
966 @gp = FactoryGirl.create :ground_picture, :panel_id => @panel.id, :picture_id => @p.id
968 GroundPicture.stub(:mylist).and_return([@gp, @gp, @gp])
970 context 'つつがなく終わるとき' do
971 it 'ステータスコード200 OKを返す' do
973 response.should be_success
976 it 'ground_pictureテンプレートを描画する' do
978 response.should render_template("ground_picture")
983 get :ground_picture, :format => :json
984 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
988 context '作家権限がないとき' do
993 it 'ステータスコード302 Foundを返す' do
995 response.status.should eq 302
997 it 'サインインページへ遷移する' do
999 response.should redirect_to '/users/sign_in'
1003 it 'ステータスコード401 Unauthorizedを返す' do
1004 get :ground_picture, :format => :json
1005 response.status.should eq 401
1007 it '応答メッセージにUnauthorizedを返す' do
1008 get :ground_picture, :format => :json
1009 response.message.should match(/Unauthorized/)
1015 describe '自分の間接背景一覧表示に於いて' do
1017 @gc = FactoryGirl.create :ground_color
1019 GroundColor.stub(:mylist).and_return([@gc, @gc, @gc])
1021 context 'つつがなく終わるとき' do
1022 it 'ステータスコード200 OKを返す' do
1024 response.should be_success
1027 it 'ground_colorテンプレートを描画する' do
1029 response.should render_template("ground_color")
1034 get :ground_color, :format => :json
1035 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
1039 context '作家権限がないとき' do
1044 it 'ステータスコード302 Foundを返す' do
1046 response.status.should eq 302
1048 it 'サインインページへ遷移する' do
1050 response.should redirect_to '/users/sign_in'
1054 it 'ステータスコード401 Unauthorizedを返す' do
1055 get :ground_color, :format => :json
1056 response.status.should eq 401
1058 it '応答メッセージにUnauthorizedを返す' do
1059 get :ground_color, :format => :json
1060 response.message.should match(/Unauthorized/)
1066 describe '自分の素材一覧表示に於いて' do
1068 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
1069 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
1070 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => @op.id, :picture_id => @p.id
1072 ResourcePicture.stub(:mylist).and_return([@rp, @rp, @rp])
1074 context 'つつがなく終わるとき' do
1075 it 'ステータスコード200 OKを返す' do
1076 get :resource_picture
1077 response.should be_success
1080 it 'resource_pictureテンプレートを描画する' do
1081 get :resource_picture
1082 response.should render_template("resource_picture")
1087 get :resource_picture, :format => :json
1088 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
1092 context '作家権限がないとき' do
1097 it 'ステータスコード302 Foundを返す' do
1098 get :resource_picture
1099 response.status.should eq 302
1101 it 'サインインページへ遷移する' do
1102 get :resource_picture
1103 response.should redirect_to '/users/sign_in'
1107 it 'ステータスコード401 Unauthorizedを返す' do
1108 get :resource_picture, :format => :json
1109 response.status.should eq 401
1111 it '応答メッセージにUnauthorizedを返す' do
1112 get :resource_picture, :format => :json
1113 response.message.should match(/Unauthorized/)
1117 context '作家が絵師でないとき' do
1119 Author.any_instance.stub(:artist?).and_return(false)
1122 it 'ステータスコード302 Foundを返す' do
1123 get :resource_picture
1124 response.status.should eq 302
1126 it '絵師登録ページへ遷移する' do
1127 get :resource_picture
1128 response.should redirect_to new_artist_path
1132 it '例外403 forbiddenを返す' do
1134 get :resource_picture, :format => :json
1135 }.should raise_error(ActiveRecord::Forbidden)