require 'spec' require 'spec/runner/formatter/html_formatter' require "helper/helper_methods" module Spec module Runner module Formatter class HtmlFormatter < BaseTextFormatter def extra_failure_content(failure) "
#{$output}
"
end
end
end
end
end
describe 'jdigidoc (j) and cdigidoc (c) libraries' do
before :all do
prepare_environment()
`pkcs15-tool -r 1 > cert.pem`
end
before :each do
@file = "sample.txt"
system "cp -f sample_data/#{@file}.original sample_data/#{@file}"
$output = "CLASSPATH=#{ENV['CLASSPATH']}\n\n"
end
after :each do
system "rm sample_data/#{@file}"
end
after :all do
system "rm -f *.txt"
system "rm -f signer.pem"
system "rm -f sample_data/*.zip"
end
#["DIGIDOC-XML 1.3", "DIGIDOC-XML 1.2", "DIGIDOC-XML 1.1", "BDOC 1.0"].each do |format|
["DIGIDOC-XML 1.3", "DIGIDOC-XML 1.2", "DIGIDOC-XML 1.1"].each do |format|
it "should create (j), add (j), sign (j), verify (c) and extract (c) with format #{format}" do
sign_and_verify(:jdigidoc, :cdigidoc, format)
end
it "should create (c), add (c), sign (c), verify (j) and extract (j) with format #{format}" do
sign_and_verify(:cdigidoc, :jdigidoc, format)
end
it "should create (c), add (c), add (j), sign (j), verify (c) and extract (j) with format #{format}" do
add_sign_and_verify(:jdigidoc, :cdigidoc, format)
end
it "should create (j), add (j), add (c), sign (c), verify (j) and extract (c) with format #{format}" do
add_sign_and_verify(:cdigidoc, :jdigidoc, format)
end
end
it "should encrypt (j) and decrypt (c)" do
encrypt(:jdigidoc)
decrypt_and_verify(:cdigidoc)
end
it "should encrypt (c) and decrypt (j)" do
encrypt(:cdigidoc)
decrypt_and_verify(:jdigidoc)
end
it "should sign (j) large (100M) file durig acceptable time and verify (c) signature" do
@file = "large_file"
create_large_file(100)
zipping_time = get_zipping_time()
start_time = Time.now
sign_for_format(:jdigidoc, "DIGIDOC-XML 1.3")
time_spent = (Time.now - start_time)
# there is requirement that signing can take double of zipping time i.e. must not exeed 15 sec for 100MB file
max_acceptable_signing_time = 10 * zipping_time
if time_spent > max_acceptable_signing_time
raise "signin took to long (#{time_spent} sec, max acceptable signing time on this system is #{max_acceptable_signing_time} sec)"
end
# todo: add verify
end
end