aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/test_patches.rb93
1 files changed, 93 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_patches.rb b/Library/Homebrew/test/test_patches.rb
new file mode 100644
index 000000000..4d36bd1fe
--- /dev/null
+++ b/Library/Homebrew/test/test_patches.rb
@@ -0,0 +1,93 @@
+require 'testing_env'
+
+require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser
+ARGV.extend(HomebrewArgvExtension)
+
+require 'test/testball'
+require 'utils'
+require 'set'
+
+# Expose some internals
+class Patches
+ attr_reader :patches
+end
+
+class Patch
+ attr_reader :patch_p
+ attr_reader :patch_filename
+end
+
+
+class PatchingTests < Test::Unit::TestCase
+ def test_patchSingleString
+ patches = Patches.new("http://example.com/patch.diff")
+ assert_equal 1, patches.patches.length
+ p = patches.patches[0]
+ assert_equal :p1, p.patch_p
+ end
+
+ def test_patchArray
+ patches = Patches.new(["http://example.com/patch1.diff", "http://example.com/patch2.diff"])
+ assert_equal 2, patches.patches.length
+
+ p1 = patches.patches[0]
+ assert_equal :p1, p1.patch_p
+
+ p2 = patches.patches[0]
+ assert_equal :p1, p2.patch_p
+ end
+
+ def test_p0_hash_to_string
+ patches = Patches.new({
+ :p0 => "http://example.com/patch.diff"
+ })
+ assert_equal 1, patches.patches.length
+
+ p = patches.patches[0]
+ assert_equal :p0, p.patch_p
+ end
+
+ def test_p1_hash_to_string
+ patches = Patches.new({
+ :p1 => "http://example.com/patch.diff"
+ })
+ assert_equal 1, patches.patches.length
+
+ p = patches.patches[0]
+ assert_equal :p1, p.patch_p
+ end
+
+ def test_mixed_hash_to_strings
+ expected = {
+ :p1 => "http://example.com/patch1.diff",
+ :p0 => "http://example.com/patch0.diff"
+ }
+ patches = Patches.new(expected)
+ assert_equal 2, patches.patches.length
+
+ # Make sure unique filenames were assigned
+ filenames = Set.new
+ patches.each do |p|
+ filenames << p.patch_filename
+ end
+
+ assert_equal 2, filenames.size
+ end
+
+ def test_mixed_hash_to_arrays
+ expected = {
+ :p1 => ["http://example.com/patch10.diff","http://example.com/patch11.diff"],
+ :p0 => ["http://example.com/patch00.diff","http://example.com/patch01.diff"]
+ }
+ patches = Patches.new(expected)
+ assert_equal 4, patches.patches.length
+
+ # Make sure unique filenames were assigned
+ filenames = Set.new
+ patches.each do |p|
+ filenames << p.patch_filename
+ end
+
+ assert_equal 4, filenames.size
+ end
+end