brew/Library/Homebrew/test/os/mac/diagnostic_spec.rb
2017-06-06 08:03:06 +01:00

62 lines
2.2 KiB
Ruby

require "diagnostic"
describe Homebrew::Diagnostic::Checks do
specify "#check_for_other_package_managers" do
allow(MacOS).to receive(:macports_or_fink).and_return(["fink"])
expect(subject.check_for_other_package_managers)
.to match("You have MacPorts or Fink installed:")
end
specify "#check_for_unsupported_macos" do
ENV.delete("HOMEBREW_DEVELOPER")
allow(OS::Mac).to receive(:prerelease?).and_return(true)
expect(subject.check_for_unsupported_macos)
.to match("We do not provide support for this pre-release version.")
end
specify "#check_for_unsupported_curl_vars" do
allow(MacOS).to receive(:version).and_return(OS::Mac::Version.new("10.10"))
ENV["SSL_CERT_DIR"] = "/some/path"
expect(subject.check_for_unsupported_curl_vars)
.to match("SSL_CERT_DIR support was removed from Apple's curl.")
end
specify "#check_for_beta_xquartz" do
allow(MacOS::XQuartz).to receive(:version).and_return("2.7.10_beta2")
expect(subject.check_for_beta_xquartz)
.to match("The following beta release of XQuartz is installed: 2.7.10_beta2")
end
specify "#check_xcode_8_without_clt_on_el_capitan" do
allow(MacOS).to receive(:version).and_return(OS::Mac::Version.new("10.11"))
allow(MacOS::Xcode).to receive(:installed?).and_return(true)
allow(MacOS::Xcode).to receive(:version).and_return("8.0")
allow(MacOS::Xcode).to receive(:without_clt?).and_return(true)
expect(subject.check_xcode_8_without_clt_on_el_capitan)
.to match("You have Xcode 8 installed without the CLT")
end
specify "#check_homebrew_prefix" do
# the integration tests are run in a special prefix
expect(subject.check_homebrew_prefix)
.to match("Your Homebrew's prefix is not /usr/local.")
end
specify "#check_ruby_version" do
allow(MacOS).to receive(:version).and_return(OS::Mac::Version.new("10.13"))
stub_const("RUBY_VERSION", "2.3.3p222")
expect(subject.check_ruby_version)
.to match <<-EOS.undent
Ruby version 2.3.3p222 is unsupported on 10.13. Homebrew
is developed and tested on Ruby 2.0, and may not work correctly
on other Rubies. Patches are accepted as long as they don't cause breakage
on supported Rubies.
EOS
end
end