From 77105b809a83583e3da5726105dc9cd913112913 Mon Sep 17 00:00:00 2001 From: Gautham Goli Date: Sun, 13 Aug 2017 14:50:29 +0530 Subject: [PATCH] Add tests for macOS check --- Library/Homebrew/rubocops/lines_cop.rb | 14 ++++++------- .../Homebrew/test/rubocops/lines_cop_spec.rb | 21 +++++++++++++++++++ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/rubocops/lines_cop.rb b/Library/Homebrew/rubocops/lines_cop.rb index 8d4b998253..604de5af93 100644 --- a/Library/Homebrew/rubocops/lines_cop.rb +++ b/Library/Homebrew/rubocops/lines_cop.rb @@ -248,13 +248,13 @@ module RuboCop next unless method_called?(m, :new) problem "`depends_on` can take requirement classes instead of instances" end - # - # os = [:leopard?, :snow_leopard?, :lion?, :mountain_lion?] - # os.each do |version| - # find_instance_method_call(body_node, :MacOS, version) do |m| - # problem "\"#{m.source}\" is deprecated, use a comparison to MacOS.version instead" - # end - # end + + os = [:leopard?, :snow_leopard?, :lion?, :mountain_lion?] + os.each do |version| + find_instance_method_call(body_node, "MacOS", version) do |m| + problem "\"#{m.source}\" is deprecated, use a comparison to MacOS.version instead" + end + end # # dirPattern(body_node) do |m| # next unless m =~ /\[("[^\*{},]+")\]/ diff --git a/Library/Homebrew/test/rubocops/lines_cop_spec.rb b/Library/Homebrew/test/rubocops/lines_cop_spec.rb index aca9a72094..69caee80cf 100644 --- a/Library/Homebrew/test/rubocops/lines_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/lines_cop_spec.rb @@ -527,6 +527,27 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do inspect_source(cop, source) + expected_offenses.zip(cop.offenses).each do |expected, actual| + expect_offense(expected, actual) + end + end + it "with old style OS check" do + source = <<-EOS.undent + class Foo < Formula + desc "foo" + url 'http://example.com/foo-1.0.tgz' + depends_on :foo if MacOS.snow_leopard? + end + EOS + + expected_offenses = [{ message: "\"MacOS.snow_leopard?\" is deprecated, use a comparison to MacOS.version instead", + severity: :convention, + line: 4, + column: 21, + source: source }] + + inspect_source(cop, source) + expected_offenses.zip(cop.offenses).each do |expected, actual| expect_offense(expected, actual) end