aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/rubocops/urls_cop_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/test/rubocops/urls_cop_spec.rb')
-rw-r--r--Library/Homebrew/test/rubocops/urls_cop_spec.rb121
1 files changed, 41 insertions, 80 deletions
diff --git a/Library/Homebrew/test/rubocops/urls_cop_spec.rb b/Library/Homebrew/test/rubocops/urls_cop_spec.rb
index 0bda7f110..494028bd5 100644
--- a/Library/Homebrew/test/rubocops/urls_cop_spec.rb
+++ b/Library/Homebrew/test/rubocops/urls_cop_spec.rb
@@ -1,6 +1,3 @@
-require "rubocop"
-require "rubocop/rspec/support"
-require_relative "../../extend/string"
require_relative "../../rubocops/urls_cop"
describe RuboCop::Cop::FormulaAudit::Urls do
@@ -129,65 +126,40 @@ describe RuboCop::Cop::FormulaAudit::Urls do
inspect_source(source)
expected_offenses.zip(cop.offenses.reverse).each do |expected, actual|
- expect_offense(expected, actual)
+ expect(actual.message).to eq(expected[:message])
+ expect(actual.severity).to eq(expected[:severity])
+ expect(actual.line).to eq(expected[:line])
+ expect(actual.column).to eq(expected[:column])
end
end
end
it "with offenses in stable/devel/head block" do
- formulas = [{
- "url" => "git://github.com/foo.git",
- "msg" => "Please use https:// for git://github.com/foo.git",
- "col" => 4,
- }]
- formulas.each do |formula|
- source = <<~EOS
- class Foo < Formula
- desc "foo"
- url "https://foo.com"
+ expect_offense(<<~RUBY)
+ class Foo < Formula
+ desc "foo"
+ url "https://foo.com"
- devel do
- url "#{formula["url"]}",
- :tag => "v1.0.0-alpha.1",
- :revision => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- version "1.0.0-alpha.1"
- end
+ devel do
+ url "git://github.com/foo.git",
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Please use https:// for git://github.com/foo.git
+ :tag => "v1.0.0-alpha.1",
+ :revision => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ version "1.0.0-alpha.1"
end
- EOS
- expected_offenses = [{ message: formula["msg"],
- severity: :convention,
- line: 6,
- column: formula["col"],
- source: source }]
-
- inspect_source(source)
-
- expected_offenses.zip(cop.offenses.reverse).each do |expected, actual|
- expect_offense(expected, actual)
end
- end
+ RUBY
end
it "with duplicate mirror" do
- source = <<~EOS
+ expect_offense(<<~RUBY)
class Foo < Formula
desc "foo"
url "https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz"
mirror "https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz"
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ URL should not be duplicated as a mirror: https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz
end
- EOS
-
- expected_offenses = [{ message: "URL should not be duplicated as a mirror: https://ftpmirror.fnu.org/foo/foo-1.0.tar.gz",
- severity: :convention,
- line: 4,
- column: 2,
- source: source }]
-
- inspect_source(source)
-
- expected_offenses.zip(cop.offenses.reverse).each do |expected, actual|
- expect_offense(expected, actual)
- end
+ RUBY
end
end
end
@@ -195,42 +167,31 @@ end
describe RuboCop::Cop::FormulaAuditStrict::PyPiUrls do
subject(:cop) { described_class.new }
- context "When auditing urls" do
- it "with pypi offenses" do
- formulas = [{
- "url" => "https://pypi.python.org/packages/source/foo/foo-0.1.tar.gz",
- "msg" => "https://pypi.python.org/packages/source/foo/foo-0.1.tar.gz should be `https://files.pythonhosted.org/packages/source/foo/foo-0.1.tar.gz`",
- "col" => 2,
- "corrected_url" =>"https://files.pythonhosted.org/packages/source/foo/foo-0.1.tar.gz",
- }]
- formulas.each do |formula|
- source = <<~EOS
- class Foo < Formula
- desc "foo"
- url "#{formula["url"]}"
- end
- EOS
- corrected_source = <<~EOS
- class Foo < Formula
- desc "foo"
- url "#{formula["corrected_url"]}"
- end
- EOS
- expected_offenses = [{ message: formula["msg"],
- severity: :convention,
- line: 3,
- column: formula["col"],
- source: source }]
+ context "when a pypi.python.org URL is used" do
+ it "reports an offense" do
+ expect_offense(<<~RUBY)
+ class Foo < Formula
+ desc "foo"
+ url "https://pypi.python.org/packages/source/foo/foo-0.1.tar.gz"
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ https://pypi.python.org/packages/source/foo/foo-0.1.tar.gz should be `https://files.pythonhosted.org/packages/source/foo/foo-0.1.tar.gz`
+ end
+ RUBY
+ end
- inspect_source(source)
- # Check for expected offenses
- expected_offenses.zip(cop.offenses.reverse).each do |expected, actual|
- expect_offense(expected, actual)
+ it "support auto-correction" do
+ corrected = autocorrect_source(<<~RUBY)
+ class Foo < Formula
+ desc "foo"
+ url "https://pypi.python.org/packages/source/foo/foo-0.1.tar.gz"
end
- # Check for expected auto corrected source
- new_source = autocorrect_source(source)
- expect(new_source).to eq(corrected_source)
- end
+ RUBY
+
+ expect(corrected).to eq <<~RUBY
+ class Foo < Formula
+ desc "foo"
+ url "https://files.pythonhosted.org/packages/source/foo/foo-0.1.tar.gz"
+ end
+ RUBY
end
end
end