aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/os/mac
diff options
context:
space:
mode:
authorMarkus Reiter2016-11-13 22:00:15 +0100
committerMarkus Reiter2016-11-16 23:52:38 +0100
commit7457af2b231528e1287281f6cfe651600d5f3f5d (patch)
tree0da872ad2906fad53f176e05056181e0c6ccceaa /Library/Homebrew/test/os/mac
parent9dc1f8f3cd405bc299eb688075687f951afd3e13 (diff)
downloadbrew-7457af2b231528e1287281f6cfe651600d5f3f5d.tar.bz2
Move test files back directly to `test/`.
Diffstat (limited to 'Library/Homebrew/test/os/mac')
-rw-r--r--Library/Homebrew/test/os/mac/blacklist_test.rb12
-rw-r--r--Library/Homebrew/test/os/mac/bottle_collector_test.rb26
-rw-r--r--Library/Homebrew/test/os/mac/bottle_tag_test.rb79
-rw-r--r--Library/Homebrew/test/os/mac/dependency_collector_test.rb57
-rw-r--r--Library/Homebrew/test/os/mac/diagnostic_test.rb49
-rw-r--r--Library/Homebrew/test/os/mac/keg_test.rb69
-rw-r--r--Library/Homebrew/test/os/mac/language_test.rb19
-rw-r--r--Library/Homebrew/test/os/mac/mach_test.rb208
-rw-r--r--Library/Homebrew/test/os/mac/version_test.rb53
-rw-r--r--Library/Homebrew/test/os/mac/x11_requirement_test.rb13
10 files changed, 585 insertions, 0 deletions
diff --git a/Library/Homebrew/test/os/mac/blacklist_test.rb b/Library/Homebrew/test/os/mac/blacklist_test.rb
new file mode 100644
index 000000000..26dd84ed9
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/blacklist_test.rb
@@ -0,0 +1,12 @@
+require "testing_env"
+require "blacklist"
+
+class OSMacBlacklistTests < Homebrew::TestCase
+ def assert_blacklisted(s)
+ assert blacklisted?(s), "'#{s}' should be blacklisted"
+ end
+
+ def test_xcode
+ %w[xcode Xcode].each { |s| assert_blacklisted s }
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/bottle_collector_test.rb b/Library/Homebrew/test/os/mac/bottle_collector_test.rb
new file mode 100644
index 000000000..2f88050ae
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/bottle_collector_test.rb
@@ -0,0 +1,26 @@
+require "testing_env"
+require "utils/bottles"
+
+class OSMacBottleCollectorTests < Homebrew::TestCase
+ def setup
+ @collector = Utils::Bottles::Collector.new
+ end
+
+ def checksum_for(tag)
+ @collector.fetch_checksum_for(tag)
+ end
+
+ def test_collector_finds_or_later_tags
+ @collector[:lion_or_later] = "foo"
+ assert_equal ["foo", :lion_or_later], checksum_for(:mountain_lion)
+ assert_nil checksum_for(:snow_leopard)
+ end
+
+ def test_collector_finds_altivec_tags
+ @collector[:tiger_altivec] = "foo"
+ assert_equal ["foo", :tiger_altivec], checksum_for(:tiger_g4)
+ assert_equal ["foo", :tiger_altivec], checksum_for(:tiger_g4e)
+ assert_equal ["foo", :tiger_altivec], checksum_for(:tiger_g5)
+ assert_nil checksum_for(:tiger_g3)
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/bottle_tag_test.rb b/Library/Homebrew/test/os/mac/bottle_tag_test.rb
new file mode 100644
index 000000000..996bd4d53
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/bottle_tag_test.rb
@@ -0,0 +1,79 @@
+require "testing_env"
+require "utils/bottles"
+
+class OSMacBottleTagTests < Homebrew::TestCase
+ def test_tag_tiger_ppc
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.4"))
+ Hardware::CPU.stubs(:type).returns(:ppc)
+ Hardware::CPU.stubs(:family).returns(:foo)
+ MacOS.stubs(:prefer_64_bit?).returns(false)
+ assert_equal :tiger_foo, Utils::Bottles.tag
+ end
+
+ def test_tag_tiger_intel
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.4"))
+ Hardware::CPU.stubs(:type).returns(:intel)
+ MacOS.stubs(:prefer_64_bit?).returns(false)
+ assert_equal :tiger, Utils::Bottles.tag
+ end
+
+ def test_tag_tiger_ppc_64
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.4"))
+ Hardware::CPU.stubs(:type).returns(:ppc)
+ Hardware::CPU.stubs(:family).returns(:g5)
+ MacOS.stubs(:prefer_64_bit?).returns(true)
+ assert_equal :tiger_g5_64, Utils::Bottles.tag
+ end
+
+ # Note that this will probably never be used
+ def test_tag_tiger_intel_64
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.4"))
+ Hardware::CPU.stubs(:type).returns(:intel)
+ MacOS.stubs(:prefer_64_bit?).returns(true)
+ assert_equal :tiger_64, Utils::Bottles.tag
+ end
+
+ def test_tag_leopard_intel
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.5"))
+ Hardware::CPU.stubs(:type).returns(:intel)
+ MacOS.stubs(:prefer_64_bit?).returns(false)
+ assert_equal :leopard, Utils::Bottles.tag
+ end
+
+ def test_tag_leopard_ppc_64
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.5"))
+ Hardware::CPU.stubs(:type).returns(:ppc)
+ Hardware::CPU.stubs(:family).returns(:g5)
+ MacOS.stubs(:prefer_64_bit?).returns(true)
+ assert_equal :leopard_g5_64, Utils::Bottles.tag
+ end
+
+ def test_tag_leopard_intel_64
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.5"))
+ Hardware::CPU.stubs(:type).returns(:intel)
+ MacOS.stubs(:prefer_64_bit?).returns(true)
+ assert_equal :leopard_64, Utils::Bottles.tag
+ end
+
+ def test_tag_snow_leopard_32
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.6"))
+ Hardware::CPU.stubs(:is_64_bit?).returns(false)
+ assert_equal :snow_leopard_32, Utils::Bottles.tag
+ end
+
+ def test_tag_snow_leopard_64
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.6"))
+ Hardware::CPU.stubs(:is_64_bit?).returns(true)
+ assert_equal :snow_leopard, Utils::Bottles.tag
+ end
+
+ def test_tag_lion
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.7"))
+ assert_equal :lion, Utils::Bottles.tag
+ end
+
+ def test_tag_mountain_lion
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.8"))
+ assert_equal :mountain_lion, Utils::Bottles.tag
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/dependency_collector_test.rb b/Library/Homebrew/test/os/mac/dependency_collector_test.rb
new file mode 100644
index 000000000..4fdf3ebe4
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/dependency_collector_test.rb
@@ -0,0 +1,57 @@
+require "testing_env"
+require "dependency_collector"
+
+class OSMacDependencyCollectorTests < Homebrew::TestCase
+ def find_dependency(name)
+ @d.deps.find { |dep| dep.name == name }
+ end
+
+ def setup
+ @d = DependencyCollector.new
+ end
+
+ def teardown
+ DependencyCollector.clear_cache
+ end
+
+ def test_tar_needs_xz_dependency
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.9"))
+ refute DependencyCollector.tar_needs_xz_dependency?
+ end
+
+ def test_ld64_dep_pre_leopard
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.4"))
+ assert_equal LD64Dependency.new, @d.build(:ld64)
+ end
+
+ def test_ld64_dep_leopard_or_newer
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.5"))
+ assert_nil @d.build(:ld64)
+ end
+
+ def test_ant_dep_mavericks_or_newer
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.9"))
+ @d.add ant: :build
+ assert_equal find_dependency("ant"), Dependency.new("ant", [:build])
+ end
+
+ def test_ant_dep_pre_mavericks
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.7"))
+ @d.add ant: :build
+ assert_nil find_dependency("ant")
+ end
+
+ def test_resource_dep_xz_pre_mavericks
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.8"))
+ resource = Resource.new
+ resource.url("http://example.com/foo.tar.xz")
+ assert_equal Dependency.new("xz", [:build]), @d.add(resource)
+ end
+
+ def test_resource_dep_xz_mavericks_or_newer
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.9"))
+ resource = Resource.new
+ resource.url("http://example.com/foo.tar.xz")
+ assert_nil @d.add(resource)
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/diagnostic_test.rb b/Library/Homebrew/test/os/mac/diagnostic_test.rb
new file mode 100644
index 000000000..655aa1d46
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/diagnostic_test.rb
@@ -0,0 +1,49 @@
+require "testing_env"
+require "fileutils"
+require "pathname"
+require "diagnostic"
+
+class OSMacDiagnosticChecksTest < Homebrew::TestCase
+ def setup
+ @env = ENV.to_hash
+ @checks = Homebrew::Diagnostic::Checks.new
+ end
+
+ def teardown
+ ENV.replace(@env)
+ end
+
+ def test_check_for_other_package_managers
+ MacOS.stubs(:macports_or_fink).returns ["fink"]
+ assert_match "You have MacPorts or Fink installed:",
+ @checks.check_for_other_package_managers
+ end
+
+ def test_check_for_unsupported_macos
+ ARGV.stubs(:homebrew_developer?).returns false
+ OS::Mac.stubs(:prerelease?).returns true
+ assert_match "We do not provide support for this pre-release version.",
+ @checks.check_for_unsupported_macos
+ end
+
+ def test_check_for_unsupported_curl_vars
+ MacOS.stubs(:version).returns OS::Mac::Version.new("10.10")
+ ENV["SSL_CERT_DIR"] = "/some/path"
+
+ assert_match "SSL_CERT_DIR support was removed from Apple's curl.",
+ @checks.check_for_unsupported_curl_vars
+ end
+
+ def test_check_for_beta_xquartz
+ MacOS::XQuartz.stubs(:version).returns("2.7.10_beta2")
+ assert_match "The following beta release of XQuartz is installed: 2.7.10_beta2", @checks.check_for_beta_xquartz
+ end
+
+ def test_check_xcode_8_without_clt_on_el_capitan
+ MacOS.stubs(:version).returns OS::Mac::Version.new("10.11")
+ MacOS::Xcode.stubs(:installed?).returns true
+ MacOS::Xcode.stubs(:version).returns "8.0"
+ MacOS::Xcode.stubs(:without_clt?).returns true
+ assert_match "You have Xcode 8 installed without the CLT", @checks.check_xcode_8_without_clt_on_el_capitan
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/keg_test.rb b/Library/Homebrew/test/os/mac/keg_test.rb
new file mode 100644
index 000000000..e79cbc921
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/keg_test.rb
@@ -0,0 +1,69 @@
+require "testing_env"
+require "keg"
+require "stringio"
+
+class OSMacLinkTests < Homebrew::TestCase
+ include FileUtils
+
+ def setup
+ keg = HOMEBREW_CELLAR.join("foo", "1.0")
+ keg.join("bin").mkpath
+
+ %w[hiworld helloworld goodbye_cruel_world].each do |file|
+ touch keg.join("bin", file)
+ end
+
+ @keg = Keg.new(keg)
+ @dst = HOMEBREW_PREFIX.join("bin", "helloworld")
+ @nonexistent = Pathname.new("/some/nonexistent/path")
+
+ @mode = OpenStruct.new
+
+ @old_stdout = $stdout
+ $stdout = StringIO.new
+
+ mkpath HOMEBREW_PREFIX/"bin"
+ mkpath HOMEBREW_PREFIX/"lib"
+ end
+
+ def teardown
+ @keg.unlink
+ @keg.uninstall
+
+ $stdout = @old_stdout
+
+ rmtree HOMEBREW_PREFIX/"bin"
+ rmtree HOMEBREW_PREFIX/"lib"
+ end
+
+ def test_mach_o_files_skips_hardlinks
+ a = HOMEBREW_CELLAR/"a/1.0"
+ (a/"lib").mkpath
+ FileUtils.cp dylib_path("i386"), a/"lib/i386.dylib"
+ FileUtils.ln a/"lib/i386.dylib", a/"lib/i386_link.dylib"
+
+ keg = Keg.new(a)
+ keg.link
+
+ assert_equal 1, keg.mach_o_files.size
+ ensure
+ keg.unlink
+ keg.uninstall
+ end
+
+ def test_mach_o_files_isnt_confused_by_symlinks
+ a = HOMEBREW_CELLAR/"a/1.0"
+ (a/"lib").mkpath
+ FileUtils.cp dylib_path("i386"), a/"lib/i386.dylib"
+ FileUtils.ln a/"lib/i386.dylib", a/"lib/i386_link.dylib"
+ FileUtils.ln_s a/"lib/i386.dylib", a/"lib/1.dylib"
+
+ keg = Keg.new(a)
+ keg.link
+
+ assert_equal 1, keg.mach_o_files.size
+ ensure
+ keg.unlink
+ keg.uninstall
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/language_test.rb b/Library/Homebrew/test/os/mac/language_test.rb
new file mode 100644
index 000000000..e328db5e0
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/language_test.rb
@@ -0,0 +1,19 @@
+require "testing_env"
+require "locale"
+require "os/mac"
+
+class OSMacLanguageTests < Homebrew::TestCase
+ def test_languages_format
+ OS::Mac.languages.each do |language|
+ assert_nothing_raised do
+ Locale.parse(language)
+ end
+ end
+ end
+
+ def test_language_format
+ assert_nothing_raised do
+ Locale.parse(OS::Mac.language)
+ end
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/mach_test.rb b/Library/Homebrew/test/os/mac/mach_test.rb
new file mode 100644
index 000000000..a42f7316b
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/mach_test.rb
@@ -0,0 +1,208 @@
+require "testing_env"
+
+class MachOPathnameTests < Homebrew::TestCase
+ def test_fat_dylib
+ pn = dylib_path("fat")
+ assert_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ assert_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ assert_equal :universal, pn.arch
+ end
+
+ def test_i386_dylib
+ pn = dylib_path("i386")
+ refute_predicate pn, :universal?
+ assert_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ assert_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ refute_predicate pn, :mach_o_bundle?
+ end
+
+ def test_x86_64_dylib
+ pn = dylib_path("x86_64")
+ refute_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ assert_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ assert_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ refute_predicate pn, :mach_o_bundle?
+ end
+
+ def test_mach_o_executable
+ pn = Pathname.new("#{TEST_FIXTURE_DIR}/mach/a.out")
+ assert_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ refute_predicate pn, :dylib?
+ assert_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ refute_predicate pn, :mach_o_bundle?
+ end
+
+ def test_fat_bundle
+ pn = bundle_path("fat")
+ assert_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ refute_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ assert_predicate pn, :mach_o_bundle?
+ end
+
+ def test_i386_bundle
+ pn = bundle_path("i386")
+ refute_predicate pn, :universal?
+ assert_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ refute_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ assert_predicate pn, :mach_o_bundle?
+ end
+
+ def test_x86_64_bundle
+ pn = bundle_path("x86_64")
+ refute_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ assert_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ refute_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ assert_predicate pn, :mach_o_bundle?
+ end
+
+ def test_non_mach_o
+ pn = Pathname.new("#{TEST_FIXTURE_DIR}/tarballs/testball-0.1.tbz")
+ refute_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ refute_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ refute_predicate pn, :mach_o_bundle?
+ assert_equal :dunno, pn.arch
+ end
+end
+
+class ArchitectureListExtensionTests < MachOPathnameTests
+ def setup
+ @archs = [:i386, :x86_64, :ppc7400, :ppc64].extend(ArchitectureListExtension)
+ end
+
+ def test_architecture_list_extension_universal_checks
+ assert_predicate @archs, :universal?
+ assert_predicate @archs, :intel_universal?
+ assert_predicate @archs, :ppc_universal?
+ assert_predicate @archs, :cross_universal?
+ assert_predicate @archs, :fat?
+
+ non_universal = [:i386].extend ArchitectureListExtension
+ refute_predicate non_universal, :universal?
+
+ intel_only = [:i386, :x86_64].extend ArchitectureListExtension
+ assert_predicate intel_only, :universal?
+ refute_predicate intel_only, :ppc_universal?
+ refute_predicate intel_only, :cross_universal?
+
+ ppc_only = [:ppc970, :ppc64].extend ArchitectureListExtension
+ assert_predicate ppc_only, :universal?
+ refute_predicate ppc_only, :intel_universal?
+ refute_predicate ppc_only, :cross_universal?
+
+ cross = [:ppc7400, :i386].extend ArchitectureListExtension
+ assert_predicate cross, :universal?
+ refute_predicate cross, :intel_universal?
+ refute_predicate cross, :ppc_universal?
+ end
+
+ def test_architecture_list_extension_massaging_flags
+ @archs.remove_ppc!
+ assert_equal 2, @archs.length
+ assert_match(/-arch i386/, @archs.as_arch_flags)
+ assert_match(/-arch x86_64/, @archs.as_arch_flags)
+ end
+
+ def test_architecture_list_arch_flags_methods
+ pn = dylib_path("fat")
+ assert_predicate pn.archs, :intel_universal?
+ assert_equal "-arch x86_64 -arch i386", pn.archs.as_arch_flags
+ assert_equal "x86_64;i386", pn.archs.as_cmake_arch_flags
+ end
+end
+
+class TextExecutableTests < Homebrew::TestCase
+ attr_reader :pn
+
+ def setup
+ @pn = HOMEBREW_PREFIX.join("an_executable")
+ end
+
+ def teardown
+ HOMEBREW_PREFIX.join("an_executable").unlink
+ end
+
+ def test_simple_shebang
+ pn.write "#!/bin/sh"
+ refute_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ refute_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ assert_predicate pn, :text_executable?
+ assert_equal [], pn.archs
+ assert_equal :dunno, pn.arch
+ end
+
+ def test_shebang_with_options
+ pn.write "#! /usr/bin/perl -w"
+ refute_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ refute_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ assert_predicate pn, :text_executable?
+ assert_equal [], pn.archs
+ assert_equal :dunno, pn.arch
+ end
+
+ def test_malformed_shebang
+ pn.write " #!"
+ refute_predicate pn, :universal?
+ refute_predicate pn, :i386?
+ refute_predicate pn, :x86_64?
+ refute_predicate pn, :ppc7400?
+ refute_predicate pn, :ppc64?
+ refute_predicate pn, :dylib?
+ refute_predicate pn, :mach_o_executable?
+ refute_predicate pn, :text_executable?
+ assert_equal [], pn.archs
+ assert_equal :dunno, pn.arch
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/version_test.rb b/Library/Homebrew/test/os/mac/version_test.rb
new file mode 100644
index 000000000..f702c7097
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/version_test.rb
@@ -0,0 +1,53 @@
+require "testing_env"
+require "version"
+require "os/mac/version"
+
+class OSMacVersionTests < Homebrew::TestCase
+ def setup
+ @v = MacOS::Version.new("10.7")
+ end
+
+ def test_compare_with_symbol
+ assert_operator @v, :>, :snow_leopard
+ assert_operator @v, :==, :lion
+ assert_operator @v, :===, :lion
+ assert_operator @v, :<, :mountain_lion
+ end
+
+ def test_compare_with_fixnum
+ assert_operator @v, :>, 10
+ assert_operator @v, :<, 11
+ end
+
+ def test_compare_with_float
+ assert_operator @v, :>, 10.6
+ assert_operator @v, :==, 10.7
+ assert_operator @v, :===, 10.7
+ assert_operator @v, :<, 10.8
+ end
+
+ def test_compare_with_string
+ assert_operator @v, :>, "10.6"
+ assert_operator @v, :==, "10.7"
+ assert_operator @v, :===, "10.7"
+ assert_operator @v, :<, "10.8"
+ end
+
+ def test_compare_with_version
+ assert_operator @v, :>, Version.create("10.6")
+ assert_operator @v, :==, Version.create("10.7")
+ assert_operator @v, :===, Version.create("10.7")
+ assert_operator @v, :<, Version.create("10.8")
+ end
+
+ def test_from_symbol
+ assert_equal @v, MacOS::Version.from_symbol(:lion)
+ assert_raises(ArgumentError) { MacOS::Version.from_symbol(:foo) }
+ end
+
+ def test_pretty_name
+ assert_equal "El Capitan", MacOS::Version.new("10.11").pretty_name
+ assert_equal "Mountain Lion", MacOS::Version.new("10.8").pretty_name
+ assert_equal "Yosemite", MacOS::Version.new("10.10").pretty_name
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/x11_requirement_test.rb b/Library/Homebrew/test/os/mac/x11_requirement_test.rb
new file mode 100644
index 000000000..102937cb5
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/x11_requirement_test.rb
@@ -0,0 +1,13 @@
+require "testing_env"
+require "requirements/x11_requirement"
+
+class OSMacX11RequirementTests < Homebrew::TestCase
+ def test_satisfied
+ MacOS::XQuartz.stubs(:version).returns("2.7.5")
+ MacOS::XQuartz.stubs(:installed?).returns(true)
+ assert_predicate X11Requirement.new, :satisfied?
+
+ MacOS::XQuartz.stubs(:installed?).returns(false)
+ refute_predicate X11Requirement.new, :satisfied?
+ end
+end