add tests for formula path string 1
This commit is contained in:
		
							parent
							
								
									65ae6bacd8
								
							
						
					
					
						commit
						9c9c280c8a
					
				@ -118,24 +118,24 @@ module RuboCop
 | 
			
		||||
            end
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # # Prefer formula path shortcuts in strings
 | 
			
		||||
          # formula_path_strings(body_node, :prefix) do |p|
 | 
			
		||||
          #   next unless match = regex_match_group(p, %r{(/(man))[/'"]})
 | 
			
		||||
          #   problem "\"\#\{prefix}#{match[1]}\" should be \"\#{#{match[3]}}\""
 | 
			
		||||
          # end
 | 
			
		||||
          #
 | 
			
		||||
          # formula_path_strings(body_node, :share) do |p|
 | 
			
		||||
          #   if match = regex_match_group(p, %r{/(bin|include|libexec|lib|sbin|share|Frameworks)}i)
 | 
			
		||||
          #     problem "\"\#\{prefix}#{match[1]}\" should be \"\#{#{match[1].downcase}}\""
 | 
			
		||||
          #   end
 | 
			
		||||
          #   if match = regex_match_group(p, %r{((/share/man/|\#\{man\}/)(man[1-8]))})
 | 
			
		||||
          #     problem "\"\#\{prefix}#{match[1]}\" should be \"\#{#{match[3]}}\""
 | 
			
		||||
          #   end
 | 
			
		||||
          #   if match = regex_match_group(p, %r{(/share/(info|man))})
 | 
			
		||||
          #     problem "\"\#\{prefix}#{match[1]}\" should be \"\#{#{match[2]}}\""
 | 
			
		||||
          #   end
 | 
			
		||||
          # end
 | 
			
		||||
          #
 | 
			
		||||
          # Prefer formula path shortcuts in strings
 | 
			
		||||
          formula_path_strings(body_node, :share) do |p|
 | 
			
		||||
            next unless match = regex_match_group(p, %r{(/(man))/?})
 | 
			
		||||
            problem "\"\#\{share}#{match[1]}\" should be \"\#{#{match[2]}}\""
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          formula_path_strings(body_node, :share) do |p|
 | 
			
		||||
            if match = regex_match_group(p, %r{/(bin|include|libexec|lib|sbin|share|Frameworks)}i)
 | 
			
		||||
              problem "\"\#\{prefix}#{match[1]}\" should be \"\#{#{match[1].downcase}}\""
 | 
			
		||||
            end
 | 
			
		||||
            if match = regex_match_group(p, %r{((/share/man/|\#\{man\}/)(man[1-8]))})
 | 
			
		||||
              problem "\"\#\{prefix}#{match[1]}\" should be \"\#{#{match[3]}}\""
 | 
			
		||||
            end
 | 
			
		||||
            if match = regex_match_group(p, %r{(/share/(info|man))})
 | 
			
		||||
              problem "\"\#\{prefix}#{match[1]}\" should be \"\#{#{match[2]}}\""
 | 
			
		||||
            end
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # find_every_method_call_by_name(body_node, :depends_on) do |m|
 | 
			
		||||
          #   key, value = destructure_hash(paramters(m).first)
 | 
			
		||||
          #   next unless key.str_type?
 | 
			
		||||
@ -349,7 +349,7 @@ module RuboCop
 | 
			
		||||
          (hash (pair $_ $_))
 | 
			
		||||
        EOS
 | 
			
		||||
 | 
			
		||||
        def_node_matcher :formula_path_strings, <<-EOS.undent
 | 
			
		||||
        def_node_search :formula_path_strings, <<-EOS.undent
 | 
			
		||||
          (dstr (begin (send nil %1)) $(str _ ))
 | 
			
		||||
        EOS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -955,6 +955,30 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do
 | 
			
		||||
        expect_offense(expected, actual)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it "with formula path shortcut long form" do
 | 
			
		||||
      source = <<-EOS.undent
 | 
			
		||||
        class Foo < Formula
 | 
			
		||||
          desc "foo"
 | 
			
		||||
          url 'http://example.com/foo-1.0.tgz'
 | 
			
		||||
          def install
 | 
			
		||||
            mv "\#{share}/man", share
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
      EOS
 | 
			
		||||
 | 
			
		||||
      expected_offenses = [{  message: "\"\#\{share}/man\" should be \"\#{man}\"",
 | 
			
		||||
                              severity: :convention,
 | 
			
		||||
                              line: 5,
 | 
			
		||||
                              column: 17,
 | 
			
		||||
                              source: source }]
 | 
			
		||||
 | 
			
		||||
      inspect_source(cop, source)
 | 
			
		||||
 | 
			
		||||
      expected_offenses.zip(cop.offenses).each do |expected, actual|
 | 
			
		||||
        expect_offense(expected, actual)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  def expect_offense(expected, actual)
 | 
			
		||||
    expect(actual.message).to eq(expected[:message])
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user