Merge pull request #2950 from mansimarkaur/svn

Added tests for utils/svn
This commit is contained in:
Misty De Meo 2017-08-29 15:08:05 -07:00 committed by GitHub
commit 156bca7dfb
3 changed files with 45 additions and 1 deletions

View File

@ -1228,7 +1228,8 @@ class ResourceAuditor
end
elsif strategy <= SubversionDownloadStrategy
next unless DevelopmentTools.subversion_handles_most_https_certificates?
unless Utils.svn_remote_exists url
next unless Utils.svn_available?
if Utils.svn_remote_exists url
problem "The URL #{url} is not a valid svn URL"
end
end

View File

@ -0,0 +1,39 @@
require "utils/svn"
describe Utils do
describe "#self.svn_available?" do
before(:each) do
described_class.clear_svn_version_cache
end
it "returns svn version if svn available" do
expect(described_class.svn_available?).to be_truthy
end
end
describe "#self.svn_remote_exists" do
it "returns true when svn is not available" do
allow(Utils).to receive(:svn_available?).and_return(false)
expect(described_class.svn_remote_exists("blah")).to be_truthy
end
context "when svn is available" do
before do
allow(Utils).to receive(:svn_available?).and_return(true)
end
it "returns false when remote does not exist" do
expect(described_class.svn_remote_exists(HOMEBREW_CACHE/"install")).to be_falsey
end
it "returns true when remote exists", :needs_network do
remote = "http://github.com/Homebrew/install"
svn = HOMEBREW_SHIMS_PATH/"scm/svn"
HOMEBREW_CACHE.cd { system svn, "checkout", remote }
expect(described_class.svn_remote_exists(HOMEBREW_CACHE/"install")).to be_truthy
end
end
end
end

View File

@ -1,4 +1,8 @@
module Utils
def self.clear_svn_version_cache
remove_instance_variable(:@svn) if instance_variable_defined?(:@svn)
end
def self.svn_available?
return @svn if instance_variable_defined?(:@svn)
@svn = quiet_system HOMEBREW_SHIMS_PATH/"scm/svn", "--version"