aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorAdam Vandenberg2012-03-20 15:33:15 -0700
committerAdam Vandenberg2012-03-20 19:24:58 -0700
commit975459a75cc371d97ec381ed3ffa2aa2733d9f1f (patch)
tree66263e9a493202fa32c95332bf93baa832af49e6 /Library/Homebrew
parentfa837edcbbde0d921090aa54660fa4628252f581 (diff)
downloadbrew-975459a75cc371d97ec381ed3ffa2aa2733d9f1f.tar.bz2
Add tests for patches.rb
Diffstat (limited to 'Library/Homebrew')
-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