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 '応答メッセージにUnauthorizedを返す' do
746 get :resource_picture, :format => :json
747 response.message.should match(/Unauthorized/)
754 describe '自分のコミック一覧表示に於いて' do
756 @comic = FactoryGirl.create :comic, :author_id => @author.id
758 Comic.stub(:mylist).and_return([@comic, @comic, @comic])
760 context 'つつがなく終わるとき' do
761 it 'ステータスコード200 OKを返す' do
763 response.should be_success
766 it 'comicテンプレートを描画する' do
768 response.should render_template("comic")
773 get :comic, :format => :json
774 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
778 context '作家権限がないとき' do
783 it 'ステータスコード302 Foundを返す' do
785 response.status.should eq 302
787 it 'サインインページへ遷移する' do
789 response.should redirect_to '/users/sign_in'
793 it 'ステータスコード401 Unauthorizedを返す' do
794 get :comic, :format => :json
795 response.status.should eq 401
797 it '応答メッセージにUnauthorizedを返す' do
798 get :comic, :format => :json
799 response.message.should match(/Unauthorized/)
805 describe '自分のコマ一覧表示に於いて' do
807 @panel = FactoryGirl.create :panel, :author_id => @author.id
809 Panel.stub(:mylist).and_return([@panel, @panel, @panel])
811 context 'つつがなく終わるとき' do
813 it 'ステータスコード200 OKを返す' do
815 response.should be_success
817 it 'panelテンプレートを描画する' do
819 response.should render_template("panel")
823 it 'ステータスコード200 OKを返す' do
824 get :panel, :format => :json
825 response.should be_success
828 get :panel, :format => :json
829 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
833 context '作家権限がないとき' do
838 it 'ステータスコード302 Foundを返す' do
840 response.status.should eq 302
842 it 'サインインページへ遷移する' do
844 response.should redirect_to '/users/sign_in'
848 it 'ステータスコード401 Unauthorizedを返す' do
849 get :panel, :format => :json
850 response.status.should eq 401
852 it '応答メッセージにUnauthorizedを返す' do
853 get :panel, :format => :json
854 response.message.should match(/Unauthorized/)
860 describe '自分のコマ絵一覧表示に於いて' do
862 @pp = FactoryGirl.create :panel_picture, :panel_id => @panel.id, :picture_id => @p.id,
863 :width => @p.width, :height => @p.height
865 PanelPicture.stub(:mylist).and_return([@pp, @pp, @pp])
867 context 'つつがなく終わるとき' do
868 it 'ステータスコード200 OKを返す' do
870 response.should be_success
873 it 'panel_pictureテンプレートを描画する' do
875 response.should render_template("panel_picture")
880 get :panel_picture, :format => :json
881 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
885 context '作家権限がないとき' do
890 it 'ステータスコード302 Foundを返す' do
892 response.status.should eq 302
894 it 'サインインページへ遷移する' do
896 response.should redirect_to '/users/sign_in'
900 it 'ステータスコード401 Unauthorizedを返す' do
901 get :panel_picture, :format => :json
902 response.status.should eq 401
904 it '応答メッセージにUnauthorizedを返す' do
905 get :panel_picture, :format => :json
906 response.message.should match(/Unauthorized/)
912 describe '自分のコマの色背景一覧表示に於いて' do
914 @pc = FactoryGirl.create :panel_color, :panel_id => @panel.id
916 PanelColor.stub(:mylist).and_return([@pc, @pc, @pc])
918 context 'つつがなく終わるとき' do
919 it 'ステータスコード200 OKを返す' do
921 response.should be_success
924 it 'panel_colorテンプレートを描画する' do
926 response.should render_template("panel_color")
931 get :panel_color, :format => :json
932 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
936 context '作家権限がないとき' do
941 it 'ステータスコード302 Foundを返す' do
943 response.status.should eq 302
945 it 'サインインページへ遷移する' do
947 response.should redirect_to '/users/sign_in'
951 it 'ステータスコード401 Unauthorizedを返す' do
952 get :panel_color, :format => :json
953 response.status.should eq 401
955 it '応答メッセージにUnauthorizedを返す' do
956 get :panel_color, :format => :json
957 response.message.should match(/Unauthorized/)
963 describe '自分のコマの画像背景一覧表示に於いて' do
965 @gp = FactoryGirl.create :ground_picture, :panel_id => @panel.id, :picture_id => @p.id
967 GroundPicture.stub(:mylist).and_return([@gp, @gp, @gp])
969 context 'つつがなく終わるとき' do
970 it 'ステータスコード200 OKを返す' do
972 response.should be_success
975 it 'ground_pictureテンプレートを描画する' do
977 response.should render_template("ground_picture")
982 get :ground_picture, :format => :json
983 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
987 context '作家権限がないとき' do
992 it 'ステータスコード302 Foundを返す' do
994 response.status.should eq 302
996 it 'サインインページへ遷移する' do
998 response.should redirect_to '/users/sign_in'
1002 it 'ステータスコード401 Unauthorizedを返す' do
1003 get :ground_picture, :format => :json
1004 response.status.should eq 401
1006 it '応答メッセージにUnauthorizedを返す' do
1007 get :ground_picture, :format => :json
1008 response.message.should match(/Unauthorized/)
1014 describe '自分の間接背景一覧表示に於いて' do
1016 @gc = FactoryGirl.create :ground_color
1018 GroundColor.stub(:mylist).and_return([@gc, @gc, @gc])
1020 context 'つつがなく終わるとき' do
1021 it 'ステータスコード200 OKを返す' do
1023 response.should be_success
1026 it 'ground_colorテンプレートを描画する' do
1028 response.should render_template("ground_color")
1033 get :ground_color, :format => :json
1034 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
1038 context '作家権限がないとき' do
1043 it 'ステータスコード302 Foundを返す' do
1045 response.status.should eq 302
1047 it 'サインインページへ遷移する' do
1049 response.should redirect_to '/users/sign_in'
1053 it 'ステータスコード401 Unauthorizedを返す' do
1054 get :ground_color, :format => :json
1055 response.status.should eq 401
1057 it '応答メッセージにUnauthorizedを返す' do
1058 get :ground_color, :format => :json
1059 response.message.should match(/Unauthorized/)
1065 describe '自分の素材一覧表示に於いて' do
1067 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
1068 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
1069 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => @op.id, :picture_id => @p.id
1071 ResourcePicture.stub(:mylist).and_return([@rp, @rp, @rp])
1073 context 'つつがなく終わるとき' do
1074 it 'ステータスコード200 OKを返す' do
1075 get :resource_picture
1076 response.should be_success
1079 it 'resource_pictureテンプレートを描画する' do
1080 get :resource_picture
1081 response.should render_template("resource_picture")
1086 get :resource_picture, :format => :json
1087 lambda{JSON.parse(response.body)}.should_not raise_error(JSON::ParserError)
1091 context '作家権限がないとき' do
1096 it 'ステータスコード302 Foundを返す' do
1097 get :resource_picture
1098 response.status.should eq 302
1100 it 'サインインページへ遷移する' do
1101 get :resource_picture
1102 response.should redirect_to '/users/sign_in'
1106 it 'ステータスコード401 Unauthorizedを返す' do
1107 get :resource_picture, :format => :json
1108 response.status.should eq 401
1110 it '応答メッセージにUnauthorizedを返す' do
1111 get :resource_picture, :format => :json
1112 response.message.should match(/Unauthorized/)
1116 context '作家が絵師でないとき' do
1118 Author.any_instance.stub(:artist?).and_return(false)
1121 it 'ステータスコード302 Foundを返す' do
1122 get :resource_picture
1123 response.status.should eq 302
1125 it '絵師登録ページへ遷移する' do
1126 get :resource_picture
1127 response.should redirect_to new_artist_path
1131 it '例外403 forbiddenを返す' do
1133 get :resource_picture, :format => :json
1134 }.should raise_error(ActiveRecord::Forbidden)