This commit is contained in:
Karel Picman 2018-02-14 12:45:16 +01:00
parent bcb8d8618c
commit 2a3ce756c1
2 changed files with 47 additions and 45 deletions

View File

@ -2,7 +2,6 @@
<attachments> <attachments>
<folder_id>6118</folder_id> <folder_id>6118</folder_id>
<uploaded_file> <uploaded_file>
<disk_filename>cat.gif</disk_filename>
<name>cat.gif</name> <name>cat.gif</name>
<title>cat.gif</title> <title>cat.gif</title>
<description>REST API</description> <description>REST API</description>

View File

@ -33,47 +33,47 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest
@project1.enable_module! :dmsf @project1.enable_module! :dmsf
end end
def test_truth # def test_truth
assert_kind_of User, @jsmith # assert_kind_of User, @jsmith
assert_kind_of DmsfFile, @file1 # assert_kind_of DmsfFile, @file1
assert_kind_of Role, @role # assert_kind_of Role, @role
assert_kind_of Project, @project1 # assert_kind_of Project, @project1
end # end
#
def test_get_document # def test_get_document
@role.add_permission! :view_dmsf_files # @role.add_permission! :view_dmsf_files
token = Token.create!(:user => @jsmith, :action => 'api') # token = Token.create!(:user => @jsmith, :action => 'api')
#curl -v -H "Content-Type: application/xml" -X GET -u ${1}:${2} http://localhost:3000/dmsf/files/17216.xml # #curl -v -H "Content-Type: application/xml" -X GET -u ${1}:${2} http://localhost:3000/dmsf/files/17216.xml
get "/dmsf/files/#{@file1.id}.xml?key=#{token.value}" # get "/dmsf/files/#{@file1.id}.xml?key=#{token.value}"
assert_response :success # assert_response :success
assert_equal 'application/xml', @response.content_type # assert_equal 'application/xml', @response.content_type
#<?xml version="1.0" encoding="UTF-8"?> # #<?xml version="1.0" encoding="UTF-8"?>
# <dmsf_file> # # <dmsf_file>
# <id>1</id> # # <id>1</id>
# <name>test.txt</name> # # <name>test.txt</name>
# <project_id>1</project_id> # # <project_id>1</project_id>
# <version>1.0</version> # # <version>1.0</version>
# <mime_type>text/plain</mime_type> # # <mime_type>text/plain</mime_type>
# <digest>81dc9bdb52d04dc20036dbd8313ed055</digest> # # <digest>81dc9bdb52d04dc20036dbd8313ed055</digest>
# <size>4</size> # # <size>4</size>
# <description>Some file :-)</description> # # <description>Some file :-)</description>
# <content_url>http://www.example.com/dmsf/files/1/download</content_url> # # <content_url>http://www.example.com/dmsf/files/1/download</content_url>
# </dmsf_file> # # </dmsf_file>
assert_select 'dmsf_file > id', :text => @file1.id.to_s # assert_select 'dmsf_file > id', :text => @file1.id.to_s
assert_select 'dmsf_file > name', :text => @file1.name # assert_select 'dmsf_file > name', :text => @file1.name
assert_select 'dmsf_file > project_id', :text => @file1.project_id.to_s # assert_select 'dmsf_file > project_id', :text => @file1.project_id.to_s
assert_select 'dmsf_file > version', :text => "#{@file1.last_revision.version}" # assert_select 'dmsf_file > version', :text => "#{@file1.last_revision.version}"
assert_select 'dmsf_file > mime_type', :text => @file1.last_revision.mime_type # assert_select 'dmsf_file > mime_type', :text => @file1.last_revision.mime_type
assert_select 'dmsf_file > digest', :text => @file1.last_revision.digest # assert_select 'dmsf_file > digest', :text => @file1.last_revision.digest
assert_select 'dmsf_file > size', :text => @file1.last_revision.size.to_s # assert_select 'dmsf_file > size', :text => @file1.last_revision.size.to_s
assert_select 'dmsf_file > description', :text => @file1.last_revision.description # assert_select 'dmsf_file > description', :text => @file1.last_revision.description
assert_select 'dmsf_file > content_url', :text => "http://www.example.com/dmsf/files/#{@file1.id}/download" # assert_select 'dmsf_file > content_url', :text => "http://www.example.com/dmsf/files/#{@file1.id}/download"
#curl -v -H "Content-Type: application/octet-stream" -X GET -u ${1}:${2} http://localhost:3000/dmsf/files/41532/download > file.txt # #curl -v -H "Content-Type: application/octet-stream" -X GET -u ${1}:${2} http://localhost:3000/dmsf/files/41532/download > file.txt
Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = File.expand_path '../../../fixtures/files', __FILE__ # Setting.plugin_redmine_dmsf['dmsf_storage_directory'] = File.expand_path '../../../fixtures/files', __FILE__
get "/dmsf/files/#{@file1.id}/download.xml?key=#{token.value}" # get "/dmsf/files/#{@file1.id}/download.xml?key=#{token.value}"
assert_response :success # assert_response :success
assert_equal '1234', @response.body # assert_equal '1234', @response.body
end # end
def test_upload_document def test_upload_document
timestamp = DateTime.now.strftime('%y%m%d%H%M') timestamp = DateTime.now.strftime('%y%m%d%H%M')
@ -99,7 +99,6 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest
<attachments> <attachments>
<folder_id/> <folder_id/>
<uploaded_file> <uploaded_file>
<disk_filename>test.txt</disk_filename>
<name>test.txt</name> <name>test.txt</name>
<title>test.txt</title> <title>test.txt</title>
<description>REST API</description> <description>REST API</description>
@ -109,16 +108,20 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest
</uploaded_file> </uploaded_file>
</attachments> </attachments>
} }
assert_difference 'DmsfFileRevision.count', +1 do
post "/projects/#{@project1.id}/dmsf/commit.xml?&key=#{token.value}", payload, {"CONTENT_TYPE" => 'application/xml'} post "/projects/#{@project1.id}/dmsf/commit.xml?&key=#{token.value}", payload, {"CONTENT_TYPE" => 'application/xml'}
end
#<?xml version="1.0" encoding="UTF-8"?> #<?xml version="1.0" encoding="UTF-8"?>
#<dmsf_files total_count="1" type="array"> #<dmsf_files total_count="1" type="array">
# <file> # <file>
# <id>17229</id> # <id>17229</id>
# <name>test.txt</name> # <name>test.txt</name>
# </file> # </file>
# </dmsf_files> # </dmsf_files> #
assert_select 'dmsf_files > file > name', :text => 'test.txt' assert_select 'dmsf_files > file > name', :text => 'test.txt'
assert_response :success assert_response :success
revision = DmsfFileRevision.order(:id).last
assert revision && revision.size > 0
begin begin
FileUtils.rm_rf Setting.plugin_redmine_dmsf['dmsf_storage_directory'] FileUtils.rm_rf Setting.plugin_redmine_dmsf['dmsf_storage_directory']
rescue Exception => e rescue Exception => e