1 # -*- encoding: utf-8 -*-
7 FactoryGirl.create :admin
8 @user = FactoryGirl.create( :user_yas)
10 @artist = FactoryGirl.create :artist_yas, :author_id => @author.id
11 @other_user = FactoryGirl.create( :user_yas)
12 @other_author = @other_user.author
13 @other_artist = FactoryGirl.create :artist_yas, :author_id => @other_author.id
14 @sp = FactoryGirl.create :system_picture
15 @lg = FactoryGirl.create :license_group
16 @license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
17 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
22 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
25 context 'オーソドックスなデータのとき' do
28 @p.ext = 'png' #リストにない拡張子は通らないし
48 context 'original_picture_idを検証するとき' do
50 @p.original_picture_id = nil
51 @p.should_not be_valid
54 @p.original_picture_id = 'a'
55 @p.should_not be_valid
57 it '存在する原画でなければ失敗する' do
58 @p.original_picture_id = 0
59 @p.should_not be_valid
62 context 'revisionを検証するとき' do
65 @p.should_not be_valid
69 @p.should_not be_valid
72 context 'extを検証するとき' do
75 @p.should_not be_valid
79 @p.should_not be_valid
81 it 'png,gif,jpeg以外なら失敗する' do
83 @p.should_not be_valid
86 context 'widthを検証するとき' do
89 @p.should_not be_valid
93 @p.should_not be_valid
97 @p.should_not be_valid
101 @p.should_not be_valid
104 context 'heightを検証するとき' do
107 @p.should_not be_valid
111 @p.should_not be_valid
115 @p.should_not be_valid
119 @p.should_not be_valid
122 context 'filesizeを検証するとき' do
125 @p.should_not be_valid
129 @p.should_not be_valid
133 @p.should_not be_valid
136 @p.filesize = 2000000+1
137 @p.should_not be_valid
140 context 'md5を検証するとき' do
143 @p.should_not be_valid
147 @p.should_not be_valid
151 @p.should_not be_valid
154 context 'artist_idを検証するとき' do
157 @p.should_not be_valid
161 @p.should_not be_valid
163 it '存在する絵師でなければ失敗する' do
165 @p.should_not be_valid
168 context 'license_idを検証するとき' do
171 @p.should_not be_valid
175 @p.should_not be_valid
177 it '存在するライセンスでなければ失敗する' do
179 @p.should_not be_valid
182 context 'artist_nameを検証するとき' do
185 @p.should_not be_valid
188 context 'classnameを検証するとき' do
191 @p.should_not be_valid
194 @p.classname = 'a'*51
195 @p.should_not be_valid
198 context 'creditを検証するとき' do
200 context 'settingsを検証するとき' do
204 describe 'デフォルト値補充に於いて' do
206 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
\r
211 describe '上書き補充に於いて' do
213 attr = {:ext => 'jpeg', :width => 264, :height => 265, :filesize => 266,
214 :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id,
215 :artist_name => 'tester', :classname => 'Tester', :credit => {:title => 'cap'}.to_json.to_s, :settings => {:set => 1}.to_json.to_s}
216 @rp = FactoryGirl.build :resource_picture, attr
217 @p = FactoryGirl.build :picture, :original_picture_id => nil, :license_id => nil, :artist_id => nil, :revision => nil
\r
219 it 'width, height, ext, filesize, md5, original_picture_idが設定されている' do
221 @p.width.should eq 264
222 @p.height.should eq 265
223 @p.ext.should eq 'jpeg'
224 @p.filesize.should eq 266
225 @p.md5.should eq @rp.md5
226 @p.original_picture_id.should eq @op.id
228 it 'license_id, artist_id, artist_name, classname, credit, settingsが設定されている' do
230 @p.license_id.should eq @license.id
231 @p.artist_id.should eq @artist.id
232 @p.artist_name.should eq 'tester'
233 @p.classname.should eq 'Tester'
234 @p.credit.should match /title/
235 @p.settings.should match /set/
237 it 'new_revisionに問い合わせている' do
238 Picture.any_instance.stub(:new_revision).with(any_args).and_return(3)
239 Picture.any_instance.should_receive(:new_revision).with(any_args).exactly(1)
242 it 'revisionは、new_revisionに設定されている' do
243 Picture.any_instance.stub(:new_revision).with(any_args).and_return(3)
245 @p.revision.should eq 3
249 describe '所持判定に於いて' do
251 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
\r
253 it '実素材を更新することはないので、Falseを返す' do
254 @p.own?(@author).should == false
258 describe '閲覧許可に於いて' do
260 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
\r
263 r = @p.visible?(@author)
268 describe 'ファイル名に於いて' do
270 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
272 it 'id+拡張子のフォーマットで返す' do
274 r.should eq "#{@p.id}.png"
278 describe 'gifファイル名に於いて' do
280 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'gif'
\r
282 it 'id.gifのフォーマットで返す' do
284 r.should eq "#{@p.id}.gif"
288 describe 'MimeTypeに於いて' do
290 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
292 it 'image/拡張子のフォーマットで返す' do
294 r.should eq "image/png"
298 describe 'ファイルのurlに於いて' do
300 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
\r
301 Picture.any_instance.stub(:filename).and_return('3.gif')
303 it 'ファイル名取得を依頼している' do
304 Picture.any_instance.should_receive(:filename).exactly(1)
307 it '/pictures/3.gifのフォーマットで返す' do
309 r.should eq "/pictures/3.gif"
313 describe '最新Revision取得に於いて' do
314 context '初めての原画を公開したとき' do
316 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id
318 it 'Revisionは1となる' do
319 @p.new_revision.should eq 1
322 context 'HEADが1のとき' do
324 FactoryGirl.create :picture, :revision => 1, :original_picture_id => @op.id, :license_id => @license.id
325 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id
327 it 'Revisionは2となる' do
328 @p.new_revision.should eq 2
331 context 'HEADが5のとき' do
333 FactoryGirl.create :picture, :revision => 1, :original_picture_id => @op.id, :license_id => @license.id
334 FactoryGirl.create :picture, :revision => 5, :original_picture_id => @op.id, :license_id => @license.id
335 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id
337 it 'Revisionは6となる' do
338 @p.new_revision.should eq 6
343 describe 'head判定に於いて' do
346 context '自身とリンクした素材があるとき' do
348 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id
349 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id
356 context '自身とリンクした素材がないとき' do
358 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :revision => 0
359 @p2 = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :revision => 1
360 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p2.id
369 describe 'フォーマット変換対象判定に於いて' do
\r
371 @p = FactoryGirl.build :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id
373 context '変換するケース' do
\r
374 it '画像フォーマットがpngかつライセンスの変換禁止フラグが無効のときTrue' do
\r
375 Picture.any_instance.stub(:flag_gif_convert).with(any_args).and_return(0)
\r
377 @p.to_gif?.should be_true
\r
380 context '変換しないケース' do
\r
381 it '画像フォーマットがpngでない' do
\r
382 Picture.any_instance.stub(:flag_gif_convert).with(any_args).and_return(0)
\r
384 @p.to_gif?.should be_false
\r
387 Picture.any_instance.stub(:flag_gif_convert).with(any_args).and_return(-1)
\r
389 @p.to_gif?.should be_false
\r
394 describe 'サブディレクトリリストに於いて' do
\r
396 @p = FactoryGirl.build :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id
399 Picture.any_instance.stub(:flag_gif_convert).with(any_args).and_return(0)
\r
401 r.is_a?(Array).should be_true
\r
403 it '本画像(ベースディレクトリ)を含んでいる' do
\r
404 Picture.any_instance.stub(:flag_reverse).with(any_args).and_return(0)
\r
406 r.include?('').should be_true
\r
408 context '反転が許可されているとき' do
\r
409 it '垂直・水平・垂直水平反転ディレクトリも返す' do
\r
410 Picture.any_instance.stub(:flag_reverse).with(any_args).and_return(0)
\r
412 r.include?('v').should be_true
\r
413 r.include?('h').should be_true
\r
414 r.include?('vh').should be_true
\r
417 context '反転が許可されていないとき' do
\r
418 it '本画像(ベースディレクトリ)だけを返す' do
\r
419 Picture.any_instance.stub(:flag_reverse).with(any_args).and_return(-1)
\r
426 describe 'md5検索に於いて' do
428 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
429 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 0,
430 :original_picture_id => @op.id, :md5 => 'a' * 32
431 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id
432 @op2 = FactoryGirl.create :original_picture, :artist_id => @artist.id
433 @p2 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 0,
434 :original_picture_id => @op2.id, :md5 => 'b' * 32
435 @op3 = FactoryGirl.create :original_picture, :artist_id => @artist.id
438 res = Picture.find_by_md5(@p.md5)
439 res.is_a?(Array).should be_true
442 res = Picture.find_by_md5(@p.md5)
443 res.include?(@p2).should be_false
446 @p3 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
447 :original_picture_id => @op2.id, :md5 => 'C' * 32
448 @p4 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
449 :original_picture_id => @op3.id, :md5 => @p3.md5, :updated_at => Time.now + 100
450 res = Picture.find_by_md5(@p3.md5)
451 res.should eq [@p4, @p3]
455 describe 'md5重複リストに於いて' do
457 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
458 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 0,
459 :original_picture_id => @op.id, :md5 => 'a' * 32
460 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id
461 @op2 = FactoryGirl.create :original_picture, :artist_id => @artist.id
462 @p2 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 0,
463 :original_picture_id => @op2.id, :md5 => 'b' * 32
464 @op3 = FactoryGirl.create :original_picture, :artist_id => @artist.id
467 res = Picture.list_by_md5(@p.md5, @p.original_picture_id)
468 res.is_a?(Array).should be_true
471 res = Picture.list_by_md5(@p.md5, @p.original_picture_id)
472 res.include?(@p2).should be_false
475 res = Picture.list_by_md5(@p.md5, @p.original_picture_id)
476 res.empty?.should be_true
478 it '同一原画は旧版でも含まない' do
479 @p3 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
480 :original_picture_id => @op.id, :md5 => 'a' * 32
481 res = Picture.list_by_md5(@p.md5, @p.original_picture_id)
482 res.empty?.should be_true
485 @p3 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
486 :original_picture_id => @op2.id, :md5 => 'a' * 32
487 res = Picture.list_by_md5(@p.md5, @p.original_picture_id)
490 it '他所の原画でもmd5が違えば含まない' do
491 @p3 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
492 :original_picture_id => @op2.id, :md5 => 'c' * 32
493 res = Picture.list_by_md5(@p.md5, @p.original_picture_id)
494 res.empty?.should be_true
497 @p3 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
498 :original_picture_id => @op2.id, :md5 => 'a' * 32
499 @p4 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
500 :original_picture_id => @op3.id, :md5 => 'a' * 32, :updated_at => Time.now + 100
501 res = Picture.list_by_md5(@p.md5, @p.original_picture_id)
502 res.should eq [@p4, @p3]
506 describe 'md5重複判定に於いて' do
508 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
509 @op2 = FactoryGirl.create :original_picture, :artist_id => @artist.id
510 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :revision => 0
511 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id
513 context '同一原画以外に同じ値があるとき' do
515 @p2 = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op2.id, :license_id => @license.id
518 res = Picture.exist_by_md5(@p.md5, @p.original_picture_id)
522 context '同一原画以外に同じ値がないとき' do
524 res = Picture.exist_by_md5(@p.md5, @p.original_picture_id)
528 context '同一原画に同じ値があるとき' do
530 @p2 = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :revision => 1
533 res = Picture.exist_by_md5(@p.md5, @p.original_picture_id)
539 describe '単体取得に於いて' do
541 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
\r
543 context 'つつがなく終わるとき' do
544 it '閲覧許可を問い合わせている' do
545 Picture.any_instance.stub(:visible?).with(any_args).and_return(true)
546 Picture.any_instance.should_receive(:visible?).with(any_args).exactly(1)
547 r = Picture.show @p.id, @author
551 r = Picture.show @p.id, @author
554 context '他人の実素材を開こうとしたとき' do
555 it '403Forbidden例外を返す' do
556 Picture.any_instance.stub(:visible?).and_return(false)
558 r = Picture.show @p.id, @other_author
559 }.should raise_error(ActiveRecord::Forbidden)
562 context '存在しない実素材を開こうとしたとき' do
563 it '404RecordNotFound例外を返す' do
565 r = Picture.show 0, @author
566 }.should raise_error(ActiveRecord::RecordNotFound)
573 @imager = ImagerTest.load "abc\ndef\nghi"
574 #原画ファイル削除だけは必ず成功するものとしておく
575 PictureIO::LocalPicture.any_instance.stub(:delete).with(any_args).and_return(true)
579 #すべての処理が正常パターンで通過すれば、一番深い分岐まで通る。
580 #それで外部のメソッド呼び出しだけに着目してテストする。
581 Picture.any_instance.stub(:save).with(any_args).and_return(true)
582 Picture.any_instance.stub(:store_picture).with(any_args).and_return(true)
583 Picture.any_instance.stub(:to_gif?).with(any_args).and_return(true)
584 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
587 Picture.any_instance.should_receive(:save).with(any_args).exactly(1)
588 r = @p.store(@imager)
590 it '画像ファイルの作成機能で画像を保存している' do
591 Picture.any_instance.stub(:filename).with(any_args).and_return('1.png')
593 Picture.any_instance.should_receive(:store_picture).with(any_args).exactly(2)
594 r = @p.store(@imager)
596 it '自身にgifフォーマット変換対象かを問い合わせている' do
597 Picture.any_instance.should_receive(:to_gif?).with(any_args).exactly(1)
598 r = @p.store(@imager)
601 context 'つつがなく終わるとき' do
603 #すべての処理を正常パターンで通過させ、保存機能をチェックする。
604 Picture.any_instance.stub(:store_picture).with(any_args).and_return(true)
605 Picture.any_instance.stub(:to_gif?).with(any_args).and_return(true)
606 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
609 r = @p.store(@imager)
614 r = @p.store(@imager)
615 }.should change Picture, :count
618 context 'gif変換なしで、つつがなく終わるとき' do
620 #すべての処理を正常パターンで通過させ、保存機能をチェックする。
621 Picture.any_instance.stub(:store_picture).with(any_args).and_return(true)
622 Picture.any_instance.stub(:to_gif?).with(any_args).and_return(false)
623 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
626 r = @p.store(@imager)
629 it 'gif保存は呼ばれていない' do
630 #二回目の画像作成が呼び出されないで1回こっきりならgif保存は呼ばれていないんだろう。
631 Picture.any_instance.should_receive(:store_picture).with(any_args).exactly(1)
632 r = @p.store(@imager)
635 #以下から例外ケース。処理先頭から失敗させていく
636 context '自身の保存に失敗したとき' do
638 Picture.any_instance.stub(:save).with(any_args).and_return(false)
639 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
642 r = @p.store(@imager)
646 r = @p.store(@imager)
647 @p.should be_a_new Picture
650 context '画像の保存に失敗したとき' do
652 Picture.any_instance.stub(:store_picture).with(any_args).and_return(false)
653 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
656 r = @p.store(@imager)
659 it 'gif変換判定は呼ばれていない' do
660 Picture.any_instance.should_not_receive(:to_gif?).with(any_args).exactly(0)
661 r = @p.store(@imager)
664 context 'gif変換に失敗したとき' do
666 Picture.any_instance.stub(:store_picture).with(any_args).and_return(true)
667 Picture.any_instance.stub(:to_gif?).with(any_args).and_return(true)
668 ImagerTest.stub(:load).with(any_args).and_return(false)
669 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
672 r = @p.store(@imager)
675 it 'gif画像の保存は呼ばれていない' do
677 Picture.any_instance.should_receive(:store_picture).with(any_args).exactly(1)
678 r = @p.store(@imager)
681 context 'gif画像の保存に失敗したとき' do
683 @gifimager = @imager.to_gif
684 ImagerTest.any_instance.stub(:to_gif).with(any_args).and_return(@gifimager)
685 Picture.any_instance.stub(:filename).with(any_args).and_return('1.png')
686 Picture.any_instance.stub(:gifname).with(any_args).and_return('1.gif')
687 Picture.any_instance.stub(:store_picture).with(@imager, '1.png').and_return(true)
688 Picture.any_instance.stub(:to_gif?).with(any_args).and_return(true)
689 Picture.any_instance.stub(:store_picture).with(@gifimager, '1.gif').and_return(false)
690 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
693 r = @p.store(@imager)
699 describe '画像ファイルの作成に於いて' do
700 #PictureIo経由で画像を保存するための機能。ファイル名に自身のidを使うので事前に自身の保存が必要。
702 @imager = ImagerTest.load "abc\ndef\nghi"
703 #原画ファイル削除だけは必ず成功するものとしておく
704 PictureIO::LocalPicture.any_instance.stub(:delete).with(any_args).and_return(true)
706 Picture.any_instance.stub(:subdirs).with(any_args).and_return(['', 'v', 'h', 'vh'])
707 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :ext => 'png'
\r
711 #すべての処理を正常パターンで通過させ、保存機能をチェックする。
712 PictureIO.picture_io.stub(:put).with(any_args).and_return(true)
714 it '画像ファイルの保存が4回呼ばれる' do
715 PictureIO.picture_io.should_receive(:put).with(any_args).exactly(4)
716 r = @p.store_picture(@imager, '1.png')
718 it '画像ファイルのベースへの保存が1回呼ばれる' do
719 PictureIO.picture_io.should_receive(:put).with("abc\ndef\nghi", '1.png', '').exactly(1)
720 r = @p.store_picture(@imager, '1.png')
722 it '画像ファイルの垂直反転への保存が1回呼ばれる' do
723 PictureIO.picture_io.should_receive(:put).with("cba\nfed\nihg", '1.png', 'v').exactly(1)
724 r = @p.store_picture(@imager, '1.png')
726 it '画像ファイルの水平反転への保存が1回呼ばれる' do
727 PictureIO.picture_io.should_receive(:put).with("ghi\ndef\nabc", '1.png', 'h').exactly(1)
728 r = @p.store_picture(@imager, '1.png')
730 it '画像ファイルの垂直水平反転への保存が1回呼ばれる' do
731 PictureIO.picture_io.should_receive(:put).with("ihg\nfed\ncba", '1.png', 'vh').exactly(1)
732 r = @p.store_picture(@imager, '1.png')
735 context 'つつがなく終わるとき' do
737 #すべての処理を正常パターンで通過させ、保存機能をチェックする。
738 PictureIO.picture_io.stub(:put).with(any_args).and_return(true)
741 r = @p.store_picture(@imager, '1.png')
747 PictureIO.picture_io.stub(:put).with(any_args).and_return(false)
750 r = @p.store_picture(@imager, '1.png')
757 describe 'フラグ展開に於いて' do
759 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id,
760 :settings => "{\"open\": 1, \"commercial\": 2, \"official\": 3, \"attribution\": 4, \"derive\": 5, \"thumbnail\": 6, \"gif_convert\": 7, \"reverse\": 8, \"resize\": 9, \"sync_vh\": 10, \"overlap\": 11}"
762 context 'json展開チェック' do
763 it '展開してなければ展開して@flagsに保管する' do
764 @p.flags.should_not be_nil
768 @p.flags.is_a?(Hash).should be_true
769 @p.flags.empty?.should be_true
772 context 'openについて' do
773 it '@flag_openに保管する' do
774 @p.flag_open.should_not be_nil
776 it '本当にフラグHashからじゃなく、変数から取得してる?' do
779 @p.flag_open.should_not be_nil
782 @p.flag_open.should eq 1
785 context 'commercialについて' do
786 it '@flag_commercialに保管する' do
787 @p.flag_commercial.should_not be_nil
789 it '本当にフラグHashからじゃなく、変数から取得してる?' do
792 @p.flag_commercial.should_not be_nil
795 @p.flag_commercial.should eq 2
798 context 'officialについて' do
799 it '@flag_officialに保管する' do
800 @p.flag_official.should_not be_nil
802 it '本当にフラグHashからじゃなく、変数から取得してる?' do
805 @p.flag_official.should_not be_nil
808 @p.flag_official.should eq 3
811 context 'attributionについて' do
812 it '@flag_attributionに保管する' do
813 @p.flag_attribution.should_not be_nil
815 it '本当にフラグHashからじゃなく、変数から取得してる?' do
818 @p.flag_attribution.should_not be_nil
821 @p.flag_attribution.should eq 4
824 context 'deriveについて' do
825 it '@flag_deriveに保管する' do
826 @p.flag_derive.should_not be_nil
828 it '本当にフラグHashからじゃなく、変数から取得してる?' do
831 @p.flag_derive.should_not be_nil
834 @p.flag_derive.should eq 5
837 context 'thumbnailについて' do
838 it '@flag_thumbnailに保管する' do
839 @p.flag_thumbnail.should_not be_nil
841 it '本当にフラグHashからじゃなく、変数から取得してる?' do
844 @p.flag_thumbnail.should_not be_nil
847 @p.flag_thumbnail.should eq 6
850 context 'gif_convertについて' do
851 it '@flag_gif_convertに保管する' do
852 @p.flag_gif_convert.should_not be_nil
854 it '本当にフラグHashからじゃなく、変数から取得してる?' do
857 @p.flag_gif_convert.should_not be_nil
860 @p.flag_gif_convert.should eq 7
863 context 'reverseについて' do
864 it '@flag_reverseに保管する' do
865 @p.flag_reverse.should_not be_nil
867 it '本当にフラグHashからじゃなく、変数から取得してる?' do
870 @p.flag_reverse.should_not be_nil
873 @p.flag_reverse.should eq 8
876 context 'resizeについて' do
877 it '@flag_resizeに保管する' do
878 @p.flag_resize.should_not be_nil
880 it '本当にフラグHashからじゃなく、変数から取得してる?' do
883 @p.flag_resize.should_not be_nil
886 @p.flag_resize.should eq 9
889 context 'sync_vhについて' do
890 it '@flag_sync_vhに保管する' do
891 @p.flag_sync_vh.should_not be_nil
893 it '本当にフラグHashからじゃなく、変数から取得してる?' do
896 @p.flag_sync_vh.should_not be_nil
899 @p.flag_sync_vh.should eq 10
902 context 'overlapについて' do
903 it '@flag_overlapに保管する' do
904 @p.flag_overlap.should_not be_nil
906 it '本当にフラグHashからじゃなく、変数から取得してる?' do
909 @p.flag_overlap.should_not be_nil
912 @p.flag_overlap.should eq 11
917 describe 'クレジットデータに於いて' do
919 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
920 @p = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :credit => '{"system_picture_id": 2}'
922 it 'system_picture_idが入っている' do
924 res["system_picture_id"].should eq 2