123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- # encoding: utf-8
- require 'test_helper'
- class StoreTest < ActiveSupport::TestCase
- test 'store attachment' do
- files = [
- {
- :data => 'hello world',
- :filename => 'test.txt',
- :o_id => 1,
- },
- {
- :data => 'hello world äöüß',
- :filename => 'testäöüß.txt',
- :o_id => 2,
- },
- {
- :data => IO.read('test/fixtures/test1.pdf'),
- :filename => 'test.pdf',
- :o_id => 3,
- },
- {
- :data => IO.read('test/fixtures/test1.pdf'),
- :filename => 'test-again.pdf',
- :o_id => 4,
- },
- ]
- files.each { |file|
- sha = Digest::SHA256.hexdigest( file[:data] )
- # add attachments
- store = Store.add(
- :object => 'Test',
- :o_id => file[:o_id],
- :data => file[:data],
- :filename => file[:filename],
- :preferences => {},
- :created_by_id => 1,
- )
- assert store
- # get list of attachments
- attachments = Store.list(
- :object => 'Test',
- :o_id => file[:o_id],
- )
- assert attachments
- # sha check
- sha_new = Digest::SHA256.hexdigest( attachments[0].content )
- assert_equal( sha, sha_new, "check file #{ file[:filename] }")
- # filename check
- assert_equal( file[:filename], attachments[0].filename )
- # provider check
- assert_equal( 'DB', attachments[0].provider )
- }
- success = Store::File.verify
- assert success, "verify ok"
- Store::File.move( 'DB', 'File' )
- files.each { |file|
- sha = Digest::SHA256.hexdigest( file[:data] )
- # get list of attachments
- attachments = Store.list(
- :object => 'Test',
- :o_id => file[:o_id],
- )
- assert attachments
- # sha check
- sha_new = Digest::SHA256.hexdigest( attachments[0].content )
- assert_equal( sha, sha_new, "check file #{ file[:filename] }")
- # filename check
- assert_equal( file[:filename], attachments[0].filename )
- # provider check
- assert_equal( 'File', attachments[0].provider )
- }
- success = Store::File.verify
- assert success, "verify ok"
- Store::File.move( 'File', 'DB' )
- files.each { |file|
- sha = Digest::SHA256.hexdigest( file[:data] )
- # get list of attachments
- attachments = Store.list(
- :object => 'Test',
- :o_id => file[:o_id],
- )
- assert attachments
- # sha check
- sha_new = Digest::SHA256.hexdigest( attachments[0].content )
- assert_equal( sha, sha_new, "check file #{ file[:filename] }")
- # filename check
- assert_equal( file[:filename], attachments[0].filename )
- # provider check
- assert_equal( 'DB', attachments[0].provider )
- # delete attachments
- success = Store.remove(
- :object => 'Test',
- :o_id => file[:o_id],
- )
- assert success
- # check attachments again
- attachments = Store.list(
- :object => 'Test',
- :o_id => file[:o_id],
- )
- assert !attachments[0]
- }
- end
- end
|