77 lines
2.9 KiB
Ruby
77 lines
2.9 KiB
Ruby
$LOAD_PATH << 'lib'
|
|
|
|
require 'open-uri' # allows to load URLs using open()
|
|
require 'deb_importer'
|
|
require 'test_helper'
|
|
|
|
include DebImporter
|
|
|
|
class PackagesHelperTest < ActionView::TestCase
|
|
|
|
test "should detect the proper order of package versions" do
|
|
assert(DebImporter::Version.new('2') > DebImporter::Version.new('1'))
|
|
assert(DebImporter::Version.new('1.0') > DebImporter::Version.new('0.9'))
|
|
assert(DebImporter::Version.new('2:1') > DebImporter::Version.new('1:2'))
|
|
assert(DebImporter::Version.new('1.0c') > DebImporter::Version.new('1.0aa'))
|
|
assert(DebImporter::Version.new('1.0.1') > DebImporter::Version.new('1.0.0.1'))
|
|
assert(DebImporter::Version.new('1.0.0') > DebImporter::Version.new('1.0c'))
|
|
assert(DebImporter::Version.new('1.0') > DebImporter::Version.new('1.0~pre'))
|
|
end
|
|
|
|
test "should split version files into epoch, upstream and revision" do
|
|
v = DebImporter::Version.new('1.0~git20170104-1')
|
|
assert_equal v.epoch, '0'
|
|
assert_equal v.upstream, '1.0~git20170104'
|
|
assert_equal v.revision, '1'
|
|
|
|
v = DebImporter::Version.new('0~20161219-1')
|
|
assert_equal v.epoch, '0'
|
|
assert_equal v.upstream, '0~20161219'
|
|
assert_equal v.revision, '1'
|
|
|
|
v = DebImporter::Version.new('17:2.0.0~git20161130.1.e60d0d5+dfsg1-1')
|
|
assert_equal v.epoch, '17'
|
|
assert_equal v.upstream, '2.0.0~git20161130.1.e60d0d5+dfsg1'
|
|
assert_equal v.revision, '1'
|
|
|
|
v = DebImporter::Version.new('42')
|
|
assert_equal v.epoch, '0'
|
|
assert_equal v.upstream, '42'
|
|
assert_nil v.revision
|
|
|
|
v = DebImporter::Version.new('100:9a_b~cdef')
|
|
assert_equal v.epoch, '100'
|
|
assert_equal v.upstream, '9a_b~cdef'
|
|
assert_nil v.revision
|
|
end
|
|
|
|
test "should be able to parse local Debian repository test files" do
|
|
Rails.logger = Logger.new(STDOUT)
|
|
# Rails.logger.level = Logger::ERROR
|
|
Rails.logger.level = Logger::INFO
|
|
# Rails.logger.level = Logger::DEBUG
|
|
|
|
# Load information about test repository from environments/test.rb
|
|
repositories = Rails.configuration.package_sources
|
|
|
|
Rails.logger.info "Test parsing local DEB-style repository"
|
|
|
|
repository = repositories.first
|
|
release = DebImporter::Release.new(repository[:url])
|
|
assert_equal release.components, 'main restricted universe multiverse'
|
|
|
|
# Packages enumerator must be restarted to start from position 1
|
|
packages = release.packages('main', 'amd64')
|
|
assert_instance_of Enumerator, packages
|
|
first_package = packages.first
|
|
assert_equal 'account-plugin-aim', first_package[:Package]
|
|
|
|
# Packages enumerator must be restarted to start from position 1
|
|
packages = release.packages('main', 'amd64')
|
|
assert_equal 8320, packages.count
|
|
|
|
# Get information from translation file
|
|
i18n = release.i18n('main', 'en')
|
|
assert_match /^Real-time strategy game of ancient warfare\n0 A\.D\./, i18n.first[:'Description-en']
|
|
end # test
|
|
end # class
|