| 
									
										
										
										
											2015-04-28 22:37:26 -04:00
										 |  |  | $:.unshift File.expand_path("../..", __FILE__) | 
					
						
							|  |  |  | $:.unshift File.expand_path("../lib", __FILE__) | 
					
						
							| 
									
										
										
										
											2010-02-14 21:23:38 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-27 21:50:30 +01:00
										 |  |  | require "simplecov" if ENV["HOMEBREW_TESTS_COVERAGE"] | 
					
						
							| 
									
										
										
										
											2015-04-28 22:37:26 -04:00
										 |  |  | require "global" | 
					
						
							| 
									
										
										
										
											2013-04-01 15:53:42 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Test environment setup | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  | %w[ENV Formula].each { |d| HOMEBREW_LIBRARY.join(d).mkpath } | 
					
						
							|  |  |  | %w[cache formula_cache cellar logs].each { |d| HOMEBREW_PREFIX.parent.join(d).mkpath } | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:58 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-14 21:23:38 -08:00
										 |  |  | # Test fixtures and files can be found relative to this path | 
					
						
							| 
									
										
										
										
											2014-06-10 21:49:41 -05:00
										 |  |  | TEST_DIRECTORY = File.dirname(File.expand_path(__FILE__)) | 
					
						
							| 
									
										
										
										
											2010-02-14 21:23:38 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:56 -06:00
										 |  |  | begin | 
					
						
							| 
									
										
										
										
											2014-06-10 22:43:47 -05:00
										 |  |  |   require "rubygems" | 
					
						
							|  |  |  |   require "minitest/autorun" | 
					
						
							|  |  |  |   require "mocha/setup" | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:56 -06:00
										 |  |  | rescue LoadError | 
					
						
							| 
									
										
										
										
											2015-07-22 15:37:34 +01:00
										 |  |  |   abort "Run `bundle install` or install the mocha and minitest gems before running the tests" | 
					
						
							| 
									
										
										
										
											2012-10-25 22:09:23 -05:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2013-05-25 17:19:18 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |   module VersionAssertions | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     def version(v) | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |       Version.new(v) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     def assert_version_equal(expected, actual) | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |       assert_equal Version.new(expected), actual | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     def assert_version_detected(expected, url) | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |       assert_equal expected, Version.parse(url).to_s | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     def assert_version_nil(url) | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |       assert_nil Version.parse(url) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-23 19:38:28 -05:00
										 |  |  |   module FSLeakLogger | 
					
						
							|  |  |  |     def self.included(klass) | 
					
						
							|  |  |  |       require "find" | 
					
						
							|  |  |  |       @@log = File.open("fs_leak_log", "w") | 
					
						
							|  |  |  |       klass.make_my_diffs_pretty! | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def before_setup | 
					
						
							|  |  |  |       @__files_before_test = [] | 
					
						
							|  |  |  |       Find.find(TEST_TMPDIR) { |f| @__files_before_test << f.sub(TEST_TMPDIR, "") } | 
					
						
							|  |  |  |       super | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def after_teardown | 
					
						
							|  |  |  |       super | 
					
						
							|  |  |  |       files_after_test = [] | 
					
						
							|  |  |  |       Find.find(TEST_TMPDIR) { |f| files_after_test << f.sub(TEST_TMPDIR, "") } | 
					
						
							|  |  |  |       if @__files_before_test != files_after_test | 
					
						
							|  |  |  |         @@log.puts location, diff(@__files_before_test, files_after_test) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 22:43:47 -05:00
										 |  |  |   class TestCase < ::Minitest::Test | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |     include VersionAssertions | 
					
						
							| 
									
										
										
										
											2015-07-22 15:59:33 +08:00
										 |  |  |     include FSLeakLogger | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |     TEST_SHA1   = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze | 
					
						
							|  |  |  |     TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze | 
					
						
							| 
									
										
										
										
											2013-12-09 15:57:50 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     def formula(name = "formula_name", path = Formulary.core_path(name), spec = :stable, &block) | 
					
						
							| 
									
										
										
										
											2014-06-19 21:35:46 -05:00
										 |  |  |       @_f = Class.new(Formula, &block).new(name, path, spec) | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def shutup | 
					
						
							| 
									
										
										
										
											2014-07-06 14:58:28 -05:00
										 |  |  |       err = $stderr.dup | 
					
						
							|  |  |  |       out = $stdout.dup | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |       begin | 
					
						
							| 
									
										
										
										
											2014-07-06 14:58:28 -05:00
										 |  |  |         $stderr.reopen("/dev/null") | 
					
						
							|  |  |  |         $stdout.reopen("/dev/null") | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |         yield | 
					
						
							|  |  |  |       ensure | 
					
						
							|  |  |  |         $stderr.reopen(err) | 
					
						
							|  |  |  |         $stdout.reopen(out) | 
					
						
							| 
									
										
										
										
											2014-07-06 14:58:28 -05:00
										 |  |  |         err.close | 
					
						
							|  |  |  |         out.close | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2014-06-10 22:43:47 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     def mktmpdir(prefix_suffix = nil, &block) | 
					
						
							| 
									
										
										
										
											2015-04-28 22:37:27 -04:00
										 |  |  |       Dir.mktmpdir(prefix_suffix, HOMEBREW_TEMP, &block) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 22:43:47 -05:00
										 |  |  |     def assert_nothing_raised | 
					
						
							|  |  |  |       yield | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2014-07-03 16:54:46 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     def assert_eql(exp, act, msg = nil) | 
					
						
							| 
									
										
										
										
											2014-07-03 16:54:46 -05:00
										 |  |  |       msg = message(msg, "") { diff exp, act } | 
					
						
							|  |  |  |       assert exp.eql?(act), msg | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     def refute_eql(exp, act, msg = nil) | 
					
						
							| 
									
										
										
										
											2014-07-03 16:54:46 -05:00
										 |  |  |       msg = message(msg) { | 
					
						
							|  |  |  |         "Expected #{mu_pp(act)} to not be eql to #{mu_pp(exp)}" | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       refute exp.eql?(act), msg | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2013-05-25 17:19:18 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | end |