human_version_to_cfbundle_version_test.rb from redshed at Krugle
Show human_version_to_cfbundle_version_test.rb syntax highlighted
#! /usr/bin/ruby
#
# human_version_to_cfbundle_version_test.rb
# Based on <http://www.dribin.org/dave/blog/archives/2006/08/02/versioning_os_x_apps/>
# Copyright (c) 2006 Jonathan 'Wolf' Rentzsch.
# Some rights reserved: <http://creativecommons.org/licenses/by/2.0/>
require 'test/unit'
require 'human_version_to_cfbundle_version'
class Test::Unit::TestCase
def assert_equal_s(a,b)
assert_equal(a.to_s,b.to_s)
end
end
class VersionNumberTest < Test::Unit::TestCase
def test_version_number
# Human -> Human
assert_raise(ArgumentError) { VersionNumber.new('')}
assert_raise(ArgumentError) { VersionNumber.new('.')}
assert_equal_s VersionNumber.new('1'), '1.0'
assert_raise(ArgumentError) { VersionNumber.new('1.')}
assert_equal_s VersionNumber.new('1.2'), '1.2'
assert_raise(ArgumentError) { VersionNumber.new('1.2.')}
assert_equal_s VersionNumber.new('1.2.3'), '1.2.3'
assert_raise(ArgumentError) { VersionNumber.new('1.2.3d')}
assert_equal_s VersionNumber.new('1.2.3d4'), '1.2.3d4'
assert_equal_s VersionNumber.new('1.2.3a4'), '1.2.3a4'
assert_equal_s VersionNumber.new('1.2.3b4'), '1.2.3b4'
assert_equal_s VersionNumber.new('1.2.3fc4'), '1.2.3fc4'
assert_equal_s VersionNumber.new('01.2.3fc4'), '1.2.3fc4' # We normalize.
assert_equal_s VersionNumber.new('1.02.3fc4'), '1.2.3fc4'
assert_equal_s VersionNumber.new('1.2.03fc4'), '1.2.3fc4'
assert_equal_s VersionNumber.new('1.2.3fc04'), '1.2.3fc4'
assert_equal_s VersionNumber.new('1fc4'), '1.0fc4'
assert_equal_s VersionNumber.new('99.99.99fc99'), '99.99.99fc99'
assert_raise(ArgumentError) { VersionNumber.new('999.99.99fc99')}
assert_raise(ArgumentError) { VersionNumber.new('99.999.99fc99')}
assert_raise(ArgumentError) { VersionNumber.new('99.99.999fc99')}
assert_raise(ArgumentError) { VersionNumber.new('99.99.99fc999')}
# CFBundleVersion -> CFBundleVersion
assert_equal_s VersionNumber.new('01031.02.04').cfbundle_version, '01031.02.04'
assert_equal_s VersionNumber.new('02000.19.00').cfbundle_version, '02000.19.00'
assert_equal_s VersionNumber.new('99999.93.99').cfbundle_version, '99999.93.99'
assert_raise(ArgumentError) { VersionNumber.new('99999.96.99')} # 6, 7, 8 don't have stage mappings.
assert_raise(ArgumentError) { VersionNumber.new('99999.97.99')}
assert_raise(ArgumentError) { VersionNumber.new('99999.98.99')}
# CFBundleVersion -> Human
assert_equal_s VersionNumber.new('01031.02.04'), '1.3.10b4'
assert_equal_s VersionNumber.new('02000.19.00'), '2.0.1'
assert_equal_s VersionNumber.new('99999.93.99'), '99.99.99fc99'
# Human -> CFBundleVersion
assert_equal_s VersionNumber.new('1.3.10b4').cfbundle_version, '01031.02.04'
assert_equal_s VersionNumber.new('2.0.1').cfbundle_version, '02000.19.00'
assert_equal_s VersionNumber.new('99.99.99fc99').cfbundle_version, '99999.93.99'
end
end
See more files for this project here