talia_core 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +41 -0
- data/bin/talia +33 -0
- data/lib/JXslt/jxslt.rb +60 -0
- data/lib/acts_as_roled.rb +11 -0
- data/lib/core_ext/platform.rb +9 -0
- data/lib/core_ext/string.rb +6 -0
- data/lib/core_ext.rb +1 -0
- data/lib/custom_template.rb +4 -0
- data/lib/loader_helper.rb +62 -0
- data/lib/mysql.rb +1214 -0
- data/lib/progressbar.rb +236 -0
- data/lib/role.rb +12 -0
- data/lib/talia_cl/command_line.rb +39 -0
- data/lib/talia_cl/commands/standalone/cl_options.rb +9 -0
- data/lib/talia_cl/commands/standalone/standalone_generate.rb +75 -0
- data/lib/talia_cl/commands/standalone.rb +25 -0
- data/lib/talia_cl/commands/talia_console/cl_options.rb +55 -0
- data/lib/talia_cl/commands/talia_console/console_commands.rb +37 -0
- data/lib/talia_cl/commands/talia_console/talia_commands.rb +131 -0
- data/lib/talia_cl/commands/talia_console.rb +47 -0
- data/lib/talia_cl/core_commands.rb +11 -0
- data/lib/talia_cl.rb +47 -0
- data/lib/talia_core/active_source.rb +372 -0
- data/lib/talia_core/active_source_parts/class_methods.rb +378 -0
- data/lib/talia_core/active_source_parts/predicate_handler.rb +89 -0
- data/lib/talia_core/active_source_parts/rdf.rb +131 -0
- data/lib/talia_core/active_source_parts/sql_helper.rb +36 -0
- data/lib/talia_core/active_source_parts/xml/base_builder.rb +47 -0
- data/lib/talia_core/active_source_parts/xml/generic_reader.rb +363 -0
- data/lib/talia_core/active_source_parts/xml/rdf_builder.rb +88 -0
- data/lib/talia_core/active_source_parts/xml/source_builder.rb +73 -0
- data/lib/talia_core/active_source_parts/xml/source_reader.rb +20 -0
- data/lib/talia_core/agent.rb +14 -0
- data/lib/talia_core/background_jobs/job.rb +82 -0
- data/lib/talia_core/background_jobs/progress_job.rb +68 -0
- data/lib/talia_core/collection.rb +13 -0
- data/lib/talia_core/data_types/data_loader.rb +92 -0
- data/lib/talia_core/data_types/data_record.rb +105 -0
- data/lib/talia_core/data_types/delayed_copier.rb +76 -0
- data/lib/talia_core/data_types/file_record.rb +59 -0
- data/lib/talia_core/data_types/file_store.rb +306 -0
- data/lib/talia_core/data_types/iip_data.rb +153 -0
- data/lib/talia_core/data_types/iip_loader.rb +127 -0
- data/lib/talia_core/data_types/image_data.rb +32 -0
- data/lib/talia_core/data_types/media_link.rb +19 -0
- data/lib/talia_core/data_types/mime_mapping.rb +45 -0
- data/lib/talia_core/data_types/path_helpers.rb +77 -0
- data/lib/talia_core/data_types/pdf_data.rb +42 -0
- data/lib/talia_core/data_types/simple_text.rb +36 -0
- data/lib/talia_core/data_types/temp_file_handling.rb +85 -0
- data/lib/talia_core/data_types/xml_data.rb +169 -0
- data/lib/talia_core/dc_resource.rb +20 -0
- data/lib/talia_core/dummy_handler.rb +34 -0
- data/lib/talia_core/dummy_source.rb +20 -0
- data/lib/talia_core/errors.rb +25 -0
- data/lib/talia_core/initializer.rb +427 -0
- data/lib/talia_core/ordered_source.rb +228 -0
- data/lib/talia_core/rails_ext/actionpack/action_controller/record_identifier.rb +13 -0
- data/lib/talia_core/rails_ext/actionpack/action_controller.rb +1 -0
- data/lib/talia_core/rails_ext/actionpack.rb +1 -0
- data/lib/talia_core/rails_ext.rb +1 -0
- data/lib/talia_core/rdf_import.rb +90 -0
- data/lib/talia_core/rdf_resource.rb +159 -0
- data/lib/talia_core/semantic_collection_item.rb +93 -0
- data/lib/talia_core/semantic_collection_wrapper.rb +324 -0
- data/lib/talia_core/semantic_property.rb +7 -0
- data/lib/talia_core/semantic_relation.rb +67 -0
- data/lib/talia_core/source.rb +323 -0
- data/lib/talia_core/source_transfer_object.rb +38 -0
- data/lib/talia_core/workflow/base.rb +15 -0
- data/lib/talia_core/workflow/publication_workflow.rb +62 -0
- data/lib/talia_core/workflow.rb +300 -0
- data/lib/talia_core.rb +9 -0
- data/lib/talia_dependencies.rb +12 -0
- data/lib/talia_util/bar_progressor.rb +15 -0
- data/lib/talia_util/configuration/config_file.rb +48 -0
- data/lib/talia_util/configuration/database_config.rb +40 -0
- data/lib/talia_util/configuration/mysql_database_setup.rb +104 -0
- data/lib/talia_util/data_import.rb +91 -0
- data/lib/talia_util/image_conversions.rb +82 -0
- data/lib/talia_util/import_job_helper.rb +132 -0
- data/lib/talia_util/io_helper.rb +54 -0
- data/lib/talia_util/progressable.rb +38 -0
- data/lib/talia_util/progressbar.rb +236 -0
- data/lib/talia_util/rdf_update.rb +80 -0
- data/lib/talia_util/some_sigla.xml +1960 -0
- data/lib/talia_util/test_helpers.rb +151 -0
- data/lib/talia_util/util.rb +226 -0
- data/lib/talia_util/yaml_import.rb +80 -0
- data/lib/talia_util.rb +13 -0
- data/lib/user.rb +116 -0
- data/lib/version.rb +15 -0
- data/test/core_ext/string_test.rb +11 -0
- data/test/custom_template_test.rb +8 -0
- data/test/talia_core/active_source_predicate_test.rb +54 -0
- data/test/talia_core/active_source_rdf_test.rb +89 -0
- data/test/talia_core/active_source_test.rb +631 -0
- data/test/talia_core/data_types/data_loader_test.rb +123 -0
- data/test/talia_core/data_types/data_record_test.rb +40 -0
- data/test/talia_core/data_types/file_record_test.rb +171 -0
- data/test/talia_core/data_types/iip_data_test.rb +130 -0
- data/test/talia_core/data_types/image_data_test.rb +88 -0
- data/test/talia_core/data_types/pdf_data_test.rb +68 -0
- data/test/talia_core/data_types/xml_data_test.rb +134 -0
- data/test/talia_core/generic_xml_test.rb +83 -0
- data/test/talia_core/initializer_test.rb +36 -0
- data/test/talia_core/ordered_source_test.rb +398 -0
- data/test/talia_core/rdf_resource_test.rb +115 -0
- data/test/talia_core/semantic_collection_item_test.rb +129 -0
- data/test/talia_core/source_reader_test.rb +33 -0
- data/test/talia_core/source_test.rb +484 -0
- data/test/talia_core/source_transfer_object_test.rb +24 -0
- data/test/talia_core/workflow/publication_workflow_test.rb +242 -0
- data/test/talia_core/workflow/user_class_for_workflow.rb +35 -0
- data/test/talia_core/workflow/workflow_base_test.rb +21 -0
- data/test/talia_core/workflow_test.rb +19 -0
- data/test/talia_util/import_job_helper_test.rb +46 -0
- data/test/test_helper.rb +68 -0
- metadata +262 -0
@@ -0,0 +1,123 @@
|
|
1
|
+
# Load the helper class
|
2
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
3
|
+
|
4
|
+
module TaliaCore
|
5
|
+
# Test the DataRecord storage class
|
6
|
+
class DataLoaderTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
fixtures :active_sources, :data_records
|
9
|
+
|
10
|
+
WEB_TEST_URL = 'http://net7sviluppo.com/talia_test_files/'
|
11
|
+
|
12
|
+
def setup
|
13
|
+
setup_once(:web_test) do
|
14
|
+
web_test_good = false
|
15
|
+
begin
|
16
|
+
open(WEB_TEST_URL + 'generic_test.xml') do |io|
|
17
|
+
io.read
|
18
|
+
end
|
19
|
+
web_test_good = true
|
20
|
+
rescue
|
21
|
+
puts "*** Cannot find: #{WEB_TEST_URL + 'generic_test.xml'}, web loading test will be disabled!"
|
22
|
+
end
|
23
|
+
web_test_good
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_create_from_file
|
28
|
+
loaded = DataTypes::FileRecord.create_from_url(fixture_file('generic_test.xml'))
|
29
|
+
assert_equal(1, loaded.size)
|
30
|
+
assert_kind_of(DataTypes::XmlData, loaded.first)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_options
|
34
|
+
loaded = DataTypes::FileRecord.create_from_url(fixture_file('generic_test.xml'), :location => 'foo.xml', :mime_type => 'application/pdf')
|
35
|
+
assert_equal(1, loaded.size)
|
36
|
+
assert_equal('foo.xml', loaded.first.location)
|
37
|
+
assert_equal('application/pdf', loaded.first.mime)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_data_loaded
|
41
|
+
loaded = DataTypes::FileRecord.create_from_url(fixture_file('generic_test.xml')).first
|
42
|
+
loaded.source = active_sources(:something)
|
43
|
+
loaded.save!
|
44
|
+
File.open(fixture_file('generic_test.xml')) do |io|
|
45
|
+
assert_equal(io.read, loaded.all_text)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_create_from_web
|
50
|
+
return unless(@web_test)
|
51
|
+
loaded = DataTypes::FileRecord.create_from_url(WEB_TEST_URL + 'generic_test.xml')
|
52
|
+
assert_equal(1, loaded.size)
|
53
|
+
loaded = loaded.first
|
54
|
+
loaded.source = active_sources(:something)
|
55
|
+
loaded.save!
|
56
|
+
File.open(fixture_file('generic_test.xml')) do |io|
|
57
|
+
assert_equal(io.read, loaded.all_text)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_create_from_image
|
62
|
+
loaded = DataTypes::FileRecord.create_from_url(fixture_file('tiny.jpg'))
|
63
|
+
assert_equal(2, loaded.size)
|
64
|
+
assert_equal([DataTypes::IipData, DataTypes::ImageData], loaded.collect { |t| t.class })
|
65
|
+
assert_equal('tiny.jpg', loaded.last.location)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_web_create_from_image
|
69
|
+
return unless(@web_test)
|
70
|
+
loaded = DataTypes::FileRecord.create_from_url(WEB_TEST_URL + 'tiny.jpg')
|
71
|
+
assert_equal(2, loaded.size)
|
72
|
+
assert_equal([DataTypes::IipData, DataTypes::ImageData], loaded.collect { |t| t.class })
|
73
|
+
assert_equal('tiny.jpg', loaded.last.location)
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_image_creation
|
77
|
+
loaded = DataTypes::FileRecord.create_from_url(fixture_file('tiny.jpg')).last
|
78
|
+
loaded.source = active_sources(:something)
|
79
|
+
loaded.save!
|
80
|
+
assert_equal(loaded.all_bytes, File.open(fixture_file('tiny.jpg')) { |io| io.read.unpack("C*") } )
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_web_image_creation
|
84
|
+
return unless(@web_test)
|
85
|
+
loaded = DataTypes::FileRecord.create_from_url(WEB_TEST_URL + 'tiny.jpg').last
|
86
|
+
loaded.source = active_sources(:something)
|
87
|
+
loaded.save!
|
88
|
+
assert_equal(loaded.all_bytes, File.open(fixture_file('tiny.jpg')) { |io| io.read.unpack("C*") } )
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_create_from_image_and_convert
|
92
|
+
loaded = DataTypes::FileRecord.create_from_url(fixture_file('tiny.gif'))
|
93
|
+
assert_equal(2, loaded.size)
|
94
|
+
assert_equal([DataTypes::IipData, DataTypes::ImageData], loaded.collect { |t| t.class })
|
95
|
+
loaded.each { |element| element.source = active_sources(:something) ; element.save! }
|
96
|
+
assert_equal('image/png', loaded.last.mime)
|
97
|
+
assert_equal('tiny.png', loaded.last.location)
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_web_create_from_image_and_convert
|
101
|
+
return unless(@web_test)
|
102
|
+
loaded = DataTypes::FileRecord.create_from_url(WEB_TEST_URL + 'tiny.gif')
|
103
|
+
assert_equal(2, loaded.size)
|
104
|
+
assert_equal([DataTypes::IipData, DataTypes::ImageData], loaded.collect { |t| t.class })
|
105
|
+
loaded.each { |element| element.source = active_sources(:something) ; element.save! }
|
106
|
+
assert_equal('image/png', loaded.last.mime)
|
107
|
+
assert_equal('tiny.png', loaded.last.location)
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_convert_original_method
|
111
|
+
assert(DataTypes::FileRecord.convert_original?(Mime::Type.lookup('image/tiff')))
|
112
|
+
assert(!DataTypes::FileRecord.convert_original?(Mime::Type.lookup('image/jpeg')))
|
113
|
+
assert(!DataTypes::FileRecord.convert_original?(:jpeg))
|
114
|
+
end
|
115
|
+
|
116
|
+
private
|
117
|
+
|
118
|
+
def fixture_file(name)
|
119
|
+
@fixture_files = File.join(Test::Unit::TestCase.fixture_path, name)
|
120
|
+
end
|
121
|
+
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Load the helper class
|
2
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
3
|
+
|
4
|
+
module TaliaCore
|
5
|
+
# Test the DataRecord storage class
|
6
|
+
class DataRecordTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
fixtures :active_sources, :data_records
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@test_records = DataTypes::DataRecord.find_data_records(Fixtures.identify(:something))
|
12
|
+
|
13
|
+
@image_mime_types = ['image/gif', 'image/jpeg', 'image/png', 'image/tiff', 'image/bmp']
|
14
|
+
end
|
15
|
+
|
16
|
+
# test not nil and records numbers
|
17
|
+
def test_records_numbers
|
18
|
+
assert_not_equal [], @test_records
|
19
|
+
assert_equal 15, @test_records.size
|
20
|
+
end
|
21
|
+
|
22
|
+
# test class type and mime_type
|
23
|
+
def test_mime_types
|
24
|
+
assert_kind_of(DataTypes::SimpleText, @test_records[0])
|
25
|
+
assert_kind_of(DataTypes::SimpleText, @test_records[1])
|
26
|
+
assert_equal("text/plain", @test_records[0].mime_type)
|
27
|
+
assert_equal("text/plain", @test_records[1].mime_type)
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
# test for specific classes methods
|
33
|
+
def test_specific_classes_methods
|
34
|
+
# Get a line
|
35
|
+
line = "LINE1: This is a simple text to check the DataRecords class\n"
|
36
|
+
assert_equal(line, @test_records[0].get_line)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
# Load the helper class
|
5
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
6
|
+
|
7
|
+
class UploadedFile < File
|
8
|
+
include ActionController::UploadedFile
|
9
|
+
attr_accessor_with_default(:content_type) { 'text/plain' }
|
10
|
+
alias_method :original_path, :path
|
11
|
+
|
12
|
+
def size
|
13
|
+
self.class.size(original_path)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
module TaliaCore
|
18
|
+
|
19
|
+
# Test the DataRecord storage class
|
20
|
+
class FileRecordTest < Test::Unit::TestCase
|
21
|
+
|
22
|
+
fixtures :active_sources, :data_records
|
23
|
+
|
24
|
+
def setup
|
25
|
+
@test_records = DataTypes::DataRecord.find_data_records(Fixtures.identify(:something))
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_create_from_data
|
29
|
+
create_from do |record|
|
30
|
+
record.create_from_data('loc', 'abc')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_create_from_file_and_delete
|
35
|
+
from_file = File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'test_source_file')
|
36
|
+
tmp_file = File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'test_source_file_copy')
|
37
|
+
FileUtils.copy(from_file, tmp_file)
|
38
|
+
assert(File.exist?(tmp_file))
|
39
|
+
create_from do |record|
|
40
|
+
record.create_from_file('loc', tmp_file, true)
|
41
|
+
end
|
42
|
+
assert(!File.exist?(tmp_file))
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_create_from_file
|
46
|
+
create_from do |record|
|
47
|
+
from_file = File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'test_source_file')
|
48
|
+
record.create_from_file('loc', from_file)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_extract_filename
|
53
|
+
assert_equal('1', DataTypes::FileRecord.extract_filename(file))
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_file_should_always_return_nil
|
57
|
+
assert_nil(DataTypes::FileRecord.new.file)
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_full_filename
|
61
|
+
data_record = DataTypes::FileRecord.new do |dr|
|
62
|
+
dr.source_id = 1
|
63
|
+
dr.location = 'image.jpg'
|
64
|
+
dr.assign_type 'image/jpeg'
|
65
|
+
end
|
66
|
+
data_record.save
|
67
|
+
expected = File.expand_path(File.join(File.dirname(__FILE__), '..','..', 'data_for_test', 'FileRecord', ("00" + data_record.id.to_s)[-3..-1], data_record.id.to_s)) #File.join(DataTypes::DataRecord.data_path, data_record.type, data_record.location)
|
68
|
+
assert_equal(expected, data_record.send(:full_filename))
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
def test_paths
|
73
|
+
tempfile_path = File.join(TALIA_ROOT, 'tmp', 'data_records')
|
74
|
+
data_path = File.join(TALIA_ROOT, 'data')
|
75
|
+
assert_equal(tempfile_path, DataTypes::FileRecord.tempfile_path)
|
76
|
+
assert_equal(tempfile_path, DataTypes::FileRecord.new.send(:tempfile_path))
|
77
|
+
assert_equal(data_path, DataTypes::FileRecord.data_path)
|
78
|
+
assert_equal(data_path, DataTypes::FileRecord.new.send(:data_path))
|
79
|
+
end
|
80
|
+
|
81
|
+
# test binary access
|
82
|
+
def test_binary_access
|
83
|
+
# Check initial position
|
84
|
+
assert_equal(0, @test_records[0].position)
|
85
|
+
|
86
|
+
# Try to read all bytes
|
87
|
+
bytes = @test_records[0].all_bytes
|
88
|
+
assert_equal(180, bytes.size)
|
89
|
+
assert_equal(false, @test_records[0].is_file_open?)
|
90
|
+
|
91
|
+
# Re-check position (it should be 0)
|
92
|
+
assert_equal(0, @test_records[0].position)
|
93
|
+
|
94
|
+
# Read only one bytes and check position
|
95
|
+
byte = @test_records[0].get_byte
|
96
|
+
# check byte by code (76 == 'L')
|
97
|
+
assert_equal(76, byte)
|
98
|
+
# Re-check position (it should be 1)
|
99
|
+
assert_equal(1, @test_records[0].position)
|
100
|
+
end
|
101
|
+
|
102
|
+
# test data directory
|
103
|
+
def test_data_directory
|
104
|
+
dir_for_test = File.expand_path(@test_records[0].data_directory)
|
105
|
+
assert_equal(data_path_test(@test_records[0].id), dir_for_test)
|
106
|
+
assert( File.exists?(dir_for_test) )
|
107
|
+
assert_equal('temp1.txt', @test_records[0].location)
|
108
|
+
assert( File.exists?(File.join(data_path_test(@test_records[0]),@test_records[0].id.to_s)), "#{File.join(data_path_test(@test_records[0]), @test_records[0].id.to_s)} does not exist" )
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_should_find_or_create_and_assign_file
|
112
|
+
# FIXME: I use #file and #source_id instead of fixtures,
|
113
|
+
# due to unpredictable ids assignment.
|
114
|
+
# Because test process doesn't drop tables, but just empty and re-fill them.
|
115
|
+
params = {:file => file, :source_id => source_id}
|
116
|
+
assert(DataTypes::FileRecord.find_or_create_and_assign_file(params))
|
117
|
+
end
|
118
|
+
|
119
|
+
# test file size
|
120
|
+
def test_file_size
|
121
|
+
assert_equal(180, @test_records[0].size)
|
122
|
+
end
|
123
|
+
|
124
|
+
|
125
|
+
def test_should_save_attachment
|
126
|
+
assert(!DataTypes::FileRecord.new.send(:save_attachment?))
|
127
|
+
data_record = DataTypes::FileRecord.new do |dr|
|
128
|
+
dr.file = file
|
129
|
+
end
|
130
|
+
assert(data_record.send(:save_attachment?))
|
131
|
+
end
|
132
|
+
|
133
|
+
private
|
134
|
+
def data_path_test(id=nil)
|
135
|
+
@data_path_test ||= File.expand_path(File.join(File.dirname(__FILE__), '..','..', 'data_for_test', 'SimpleText', ("00" + id.to_s)[-3..-1]))
|
136
|
+
end
|
137
|
+
|
138
|
+
def file
|
139
|
+
UploadedFile.new(File.join(data_path_test(DataTypes::DataRecord.find(:first).id), DataTypes::DataRecord.find(:first).id.to_s))
|
140
|
+
end
|
141
|
+
|
142
|
+
|
143
|
+
def source_id
|
144
|
+
Source.find(:first)[:id]
|
145
|
+
end
|
146
|
+
|
147
|
+
def create_from(expected_content = 'abc')
|
148
|
+
data_record = DataTypes::FileRecord.new
|
149
|
+
yield(data_record)
|
150
|
+
data_record.source = TaliaCore::Source.find(:first)
|
151
|
+
data_record.save!
|
152
|
+
new_rec = DataTypes::DataRecord.find(data_record.id)
|
153
|
+
assert_equal(expected_content, new_rec.content_string)
|
154
|
+
end
|
155
|
+
|
156
|
+
def test_class_type_from
|
157
|
+
['text/plain'].each do |mime|
|
158
|
+
assert_equal('SimpleText', DataTypes::FileRecord.class_type_from(mime))
|
159
|
+
end
|
160
|
+
|
161
|
+
@image_mime_types.each { |mime| assert_equal('ImageData', DataTypes::FileRecord.class_type_from(mime)) }
|
162
|
+
|
163
|
+
['text/xml', 'application/xml'].each do |mime|
|
164
|
+
assert_equal('XmlData', DataTypes::FileRecord.class_type_from(mime))
|
165
|
+
end
|
166
|
+
|
167
|
+
assert_equal('DataRecord', DataTypes::FileRecord.class_type_from('application/rtf'))
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
171
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
# Load the helper class
|
4
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
5
|
+
|
6
|
+
module TaliaCore
|
7
|
+
module DataType
|
8
|
+
|
9
|
+
# Test the DataRecord storage class
|
10
|
+
class IipDataTest < Test::Unit::TestCase
|
11
|
+
|
12
|
+
fixtures :active_sources, :data_records
|
13
|
+
|
14
|
+
def setup
|
15
|
+
# Sets the file that is used by one test
|
16
|
+
@test_record = data_records(:fifteen)
|
17
|
+
end
|
18
|
+
|
19
|
+
def teardown
|
20
|
+
# remove all subdirectory of iip root
|
21
|
+
Dir.foreach(TaliaCore::CONFIG["iip_root_directory_location"]) do |entry|
|
22
|
+
path = File.join(TaliaCore::CONFIG["iip_root_directory_location"], entry)
|
23
|
+
if(!['.', '..', '.svn'].include?(entry) && File.exist?(path))
|
24
|
+
FileUtils.remove_dir(path)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_get_static_path
|
30
|
+
TaliaCore::CONFIG['static_data_prefix'] = nil
|
31
|
+
assert_nil(@test_record.static_path)
|
32
|
+
TaliaCore::CONFIG['static_data_prefix'] = 'preef'
|
33
|
+
assert_equal((N::LOCAL + 'preef/IipData/015/15').to_s, @test_record.static_path)
|
34
|
+
end
|
35
|
+
|
36
|
+
# test class type and mime_type and subtype
|
37
|
+
def test_mime_types
|
38
|
+
assert_kind_of DataTypes::IipData, @test_record
|
39
|
+
assert_equal 'image/tiff', @test_record.mime_type
|
40
|
+
end
|
41
|
+
|
42
|
+
# test data directory
|
43
|
+
def test_data_directory
|
44
|
+
dir_for_test = File.expand_path(@test_record.data_directory)
|
45
|
+
assert_equal(base_dir_name(@test_record.id), dir_for_test)
|
46
|
+
assert(File.exists?(dir_for_test))
|
47
|
+
assert_equal('PATH/TO/IIPSERVER', @test_record.location)
|
48
|
+
assert_equal('PATH/TO/IIPSERVER', @test_record.iip_server_path)
|
49
|
+
assert(File.exists?(File.join(dir_for_test, @test_record.id.to_s)), "#{File.join(dir_for_test, @test_record.id.to_s)} does not exist" )
|
50
|
+
end
|
51
|
+
|
52
|
+
# test file size
|
53
|
+
def test_file_size
|
54
|
+
assert_equal(711, @test_record.size)
|
55
|
+
end
|
56
|
+
|
57
|
+
# test binary access
|
58
|
+
def test_binary_access
|
59
|
+
# Check initial position
|
60
|
+
assert_equal(0, @test_record.position)
|
61
|
+
|
62
|
+
# Try to read all bytes
|
63
|
+
bytes = @test_record.all_bytes
|
64
|
+
assert_equal(711, bytes.size)
|
65
|
+
assert_equal(false, @test_record.is_file_open?)
|
66
|
+
|
67
|
+
# Try to read all bytes by alias method
|
68
|
+
bytes = @test_record.get_thumbnail
|
69
|
+
assert_equal(711, bytes.size)
|
70
|
+
assert_equal(false, @test_record.is_file_open?)
|
71
|
+
|
72
|
+
# Re-check position (it should be 0)
|
73
|
+
assert_equal(0, @test_record.position)
|
74
|
+
end
|
75
|
+
|
76
|
+
# test create from data method
|
77
|
+
def test_create_from_data
|
78
|
+
data = @test_record.all_text
|
79
|
+
|
80
|
+
creation_test do |record|
|
81
|
+
record.create_from_data('', data)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_create_from_file
|
86
|
+
creation_test do |record|
|
87
|
+
data_file = File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'test.jpg')
|
88
|
+
record.create_from_file('', data_file)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_create_from_existing
|
93
|
+
creation_test do |record|
|
94
|
+
data_file = File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'test.jpg')
|
95
|
+
data_file = File.expand_path(data_file)
|
96
|
+
record.create_from_existing(data_file, data_file)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
private
|
101
|
+
def base_dir_name(id=nil)
|
102
|
+
@data_path_test ||= File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'IipData', ("00" + id.to_s)[-3..-1]))
|
103
|
+
end
|
104
|
+
|
105
|
+
def creation_test
|
106
|
+
new_record = DataTypes::IipData.new
|
107
|
+
new_record.location = ''
|
108
|
+
new_record.source_id = "something"
|
109
|
+
yield(new_record)
|
110
|
+
new_record.save!
|
111
|
+
|
112
|
+
# Try to read all bytes by alias method
|
113
|
+
bytes = new_record.get_thumbnail
|
114
|
+
assert(bytes.size > 100)
|
115
|
+
assert_equal(false, new_record.is_file_open?)
|
116
|
+
# Check if the mime was written correctly
|
117
|
+
assert_equal('image/gif', DataTypes::IipData.find(new_record.id).mime_type)
|
118
|
+
|
119
|
+
assert(File.exists?(new_record.file_path))
|
120
|
+
|
121
|
+
# delete record and file
|
122
|
+
File.delete(new_record.file_path)
|
123
|
+
Dir.delete new_record.data_directory
|
124
|
+
DataTypes::IipData.delete new_record.id
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
# Load the helper class
|
4
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
5
|
+
|
6
|
+
module TaliaCore
|
7
|
+
|
8
|
+
# Test the DataRecord storage class
|
9
|
+
class ImageDataTest < Test::Unit::TestCase
|
10
|
+
|
11
|
+
fixtures :active_sources, :data_records
|
12
|
+
|
13
|
+
def setup
|
14
|
+
@test_records = DataTypes::DataRecord.find_data_records(Fixtures.identify(:something))
|
15
|
+
end
|
16
|
+
|
17
|
+
# test not nil and records numbers
|
18
|
+
def test_records_numbers
|
19
|
+
assert_not_equal [], @test_records
|
20
|
+
assert_equal 15, @test_records.size
|
21
|
+
end
|
22
|
+
|
23
|
+
# test class type and mime_type and subtype
|
24
|
+
def test_mime_types
|
25
|
+
assert_kind_of(DataTypes::ImageData, @test_records[7])
|
26
|
+
assert_kind_of(DataTypes::ImageData, @test_records[8])
|
27
|
+
assert_kind_of(DataTypes::ImageData, @test_records[9])
|
28
|
+
assert_kind_of(DataTypes::ImageData, @test_records[10])
|
29
|
+
assert_kind_of(DataTypes::ImageData, @test_records[11])
|
30
|
+
assert_kind_of(DataTypes::ImageData, @test_records[12])
|
31
|
+
assert_equal("image/bmp", @test_records[7].mime_type)
|
32
|
+
assert_equal("image/fits", @test_records[8].mime_type)
|
33
|
+
assert_equal("image/gif", @test_records[9].mime_type)
|
34
|
+
assert_equal("image/jpeg", @test_records[10].mime_type)
|
35
|
+
assert_equal("image/png", @test_records[11].mime_type)
|
36
|
+
assert_equal("image/tiff", @test_records[12].mime_type)
|
37
|
+
end
|
38
|
+
|
39
|
+
# test data directory
|
40
|
+
def test_data_directory
|
41
|
+
#base_dir_name = File.expand_path(File.join(File.dirname(__FILE__), '..', '..' , 'data_for_test', 'ImageData'))
|
42
|
+
dir_for_test = File.expand_path(@test_records[7].data_directory)
|
43
|
+
assert_equal(base_dir_name(@test_records[7].id), dir_for_test)
|
44
|
+
assert(File.exists?(dir_for_test))
|
45
|
+
assert_equal(File.join(base_dir_name(@test_records[7].id), 'temp1.bmp'), File.join(dir_for_test, @test_records[7].location))
|
46
|
+
assert( File.exists?(File.join(dir_for_test, @test_records[7].id.to_s)), "#{File.join(dir_for_test, @test_records[7].id.to_s)} does not exist" )
|
47
|
+
end
|
48
|
+
|
49
|
+
# test file size
|
50
|
+
def test_file_size
|
51
|
+
assert_equal(1254, @test_records[7].size)
|
52
|
+
end
|
53
|
+
|
54
|
+
# test binary access
|
55
|
+
def test_binary_access
|
56
|
+
# Check initial position
|
57
|
+
assert_equal(0, @test_records[7].position)
|
58
|
+
|
59
|
+
# Try to read all bytes
|
60
|
+
bytes = @test_records[7].all_bytes
|
61
|
+
assert_equal(1254, bytes.size)
|
62
|
+
assert_equal(false, @test_records[7].is_file_open?)
|
63
|
+
|
64
|
+
|
65
|
+
# Re-check position (it should be 0)
|
66
|
+
assert_equal(0, @test_records[7].position)
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_attach_image
|
70
|
+
test_uri = 'http://testy.com/image_attach'
|
71
|
+
src = Source.new(test_uri)
|
72
|
+
data_record = DataTypes::ImageData.new do |dr|
|
73
|
+
dr.location = 'my_file.jpg'
|
74
|
+
end
|
75
|
+
src.data_records << data_record
|
76
|
+
src.save!
|
77
|
+
rel = Source.find(src.id)
|
78
|
+
assert_equal(1, rel.data_records.size)
|
79
|
+
assert_kind_of(DataTypes::ImageData, rel.data_records[0])
|
80
|
+
end
|
81
|
+
|
82
|
+
private
|
83
|
+
def base_dir_name(id=nil)
|
84
|
+
@data_path_test ||= File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'ImageData', ("00" + id.to_s)[-3..-1]))
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
# Load the helper class
|
4
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
5
|
+
|
6
|
+
module TaliaCore
|
7
|
+
module DataType
|
8
|
+
|
9
|
+
# Test the DataRecord storage class
|
10
|
+
class PdfDataTest < Test::Unit::TestCase
|
11
|
+
|
12
|
+
fixtures :active_sources, :data_records
|
13
|
+
|
14
|
+
def setup
|
15
|
+
# Sets the file that is used by one test
|
16
|
+
@test_records = DataTypes::DataRecord.find_data_records(Fixtures.identify(:something))
|
17
|
+
end
|
18
|
+
|
19
|
+
# test not nil and records numbers
|
20
|
+
def test_records_numbers
|
21
|
+
assert_not_equal [], @test_records
|
22
|
+
assert_equal 15, @test_records.size
|
23
|
+
end
|
24
|
+
|
25
|
+
# test class type and mime_type and subtype
|
26
|
+
def test_mime_types
|
27
|
+
assert_kind_of DataTypes::PdfData, @test_records[13]
|
28
|
+
assert_equal 'application/pdf', @test_records[13].mime_type
|
29
|
+
end
|
30
|
+
|
31
|
+
# test data directory
|
32
|
+
def test_data_directory
|
33
|
+
dir_for_test = File.expand_path(@test_records[13].data_directory)
|
34
|
+
assert_equal(base_dir_name(@test_records[13].id), dir_for_test)
|
35
|
+
assert(File.exists?(dir_for_test))
|
36
|
+
assert_equal(File.join(base_dir_name(@test_records[13].id), 'temp1.pdf'), File.join(dir_for_test, @test_records[13].location))
|
37
|
+
assert( File.exists?(File.join(dir_for_test, @test_records[13].id.to_s)), "#{File.join(dir_for_test, @test_records[13].id.to_s)} does not exist" )
|
38
|
+
end
|
39
|
+
|
40
|
+
# test file size
|
41
|
+
def test_file_size
|
42
|
+
assert_equal(104463, @test_records[13].size)
|
43
|
+
end
|
44
|
+
|
45
|
+
# test binary access
|
46
|
+
def test_binary_access
|
47
|
+
# Check initial position
|
48
|
+
assert_equal(0, @test_records[13].position)
|
49
|
+
|
50
|
+
# Try to read all bytes
|
51
|
+
bytes = @test_records[13].all_bytes
|
52
|
+
assert_equal(104463, bytes.size)
|
53
|
+
assert_equal(false, @test_records[13].is_file_open?)
|
54
|
+
|
55
|
+
|
56
|
+
# Re-check position (it should be 0)
|
57
|
+
assert_equal(0, @test_records[13].position)
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
def base_dir_name(id=nil)
|
62
|
+
@data_path_test ||= File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'PdfData', ("00" + id.to_s)[-3..-1]))
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|