115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "testing_env"
 | |
| require "extend/string"
 | |
| require "utils/inreplace"
 | |
| 
 | |
| class InreplaceTest < Homebrew::TestCase
 | |
|   def test_change_make_var
 | |
|     # Replace flag
 | |
|     s1 = "OTHER=def\nFLAG = abc\nFLAG2=abc"
 | |
|     s1.extend(StringInreplaceExtension)
 | |
|     s1.change_make_var! "FLAG", "def"
 | |
|     assert_equal "OTHER=def\nFLAG=def\nFLAG2=abc", s1
 | |
|   end
 | |
| 
 | |
|   def test_change_make_var_empty
 | |
|     # Replace empty flag
 | |
|     s1 = "OTHER=def\nFLAG = \nFLAG2=abc"
 | |
|     s1.extend(StringInreplaceExtension)
 | |
|     s1.change_make_var! "FLAG", "def"
 | |
|     assert_equal "OTHER=def\nFLAG=def\nFLAG2=abc", s1
 | |
|   end
 | |
| 
 | |
|   def test_change_make_var_empty_2
 | |
|     # Replace empty flag
 | |
|     s1 = "FLAG = \nmv file_a file_b"
 | |
|     s1.extend(StringInreplaceExtension)
 | |
|     s1.change_make_var! "FLAG", "def"
 | |
|     assert_equal "FLAG=def\nmv file_a file_b", s1
 | |
|   end
 | |
| 
 | |
|   def test_change_make_var_append
 | |
|     # Append to flag
 | |
|     s1 = "OTHER=def\nFLAG = abc\nFLAG2=abc"
 | |
|     s1.extend(StringInreplaceExtension)
 | |
|     s1.change_make_var! "FLAG", "\\1 def"
 | |
|     assert_equal "OTHER=def\nFLAG=abc def\nFLAG2=abc", s1
 | |
|   end
 | |
| 
 | |
|   def test_change_make_var_shell_style
 | |
|     # Shell variables have no spaces around =
 | |
|     s1 = "OTHER=def\nFLAG=abc\nFLAG2=abc"
 | |
|     s1.extend(StringInreplaceExtension)
 | |
|     s1.change_make_var! "FLAG", "def"
 | |
|     assert_equal "OTHER=def\nFLAG=def\nFLAG2=abc", s1
 | |
|   end
 | |
| 
 | |
|   def test_remove_make_var
 | |
|     # Replace flag
 | |
|     s1 = "OTHER=def\nFLAG = abc\nFLAG2 = def"
 | |
|     s1.extend(StringInreplaceExtension)
 | |
|     s1.remove_make_var! "FLAG"
 | |
|     assert_equal "OTHER=def\nFLAG2 = def", s1
 | |
|   end
 | |
| 
 | |
|   def test_remove_make_vars
 | |
|     # Replace flag
 | |
|     s1 = "OTHER=def\nFLAG = abc\nFLAG2 = def\nOTHER2=def"
 | |
|     s1.extend(StringInreplaceExtension)
 | |
|     s1.remove_make_var! ["FLAG", "FLAG2"]
 | |
|     assert_equal "OTHER=def\nOTHER2=def", s1
 | |
|   end
 | |
| 
 | |
|   def test_get_make_var
 | |
|     s = "CFLAGS = -Wall -O2\nLDFLAGS = -lcrypto -lssl"
 | |
|     s.extend(StringInreplaceExtension)
 | |
|     assert_equal "-Wall -O2", s.get_make_var("CFLAGS")
 | |
|   end
 | |
| 
 | |
|   def test_change_make_var_with_tabs
 | |
|     s = "CFLAGS\t=\t-Wall -O2\nLDFLAGS\t=\t-lcrypto -lssl"
 | |
|     s.extend(StringInreplaceExtension)
 | |
| 
 | |
|     assert_equal "-Wall -O2", s.get_make_var("CFLAGS")
 | |
| 
 | |
|     s.change_make_var! "CFLAGS", "-O3"
 | |
|     assert_equal "CFLAGS=-O3\nLDFLAGS\t=\t-lcrypto -lssl", s
 | |
| 
 | |
|     s.remove_make_var! "LDFLAGS"
 | |
|     assert_equal "CFLAGS=-O3\n", s
 | |
|   end
 | |
| 
 | |
|   def test_sub_gsub
 | |
|     s = "foo"
 | |
|     s.extend(StringInreplaceExtension)
 | |
| 
 | |
|     s.sub!("f", "b")
 | |
|     assert_equal "boo", s
 | |
| 
 | |
|     s.gsub!("o", "e")
 | |
|     assert_equal "bee", s
 | |
|   end
 | |
| 
 | |
|   def test_inreplace_errors
 | |
|     extend(Utils::Inreplace)
 | |
| 
 | |
|     open("test", "w") { |f| f.write "a\nb\nc\n" }
 | |
| 
 | |
|     assert_raises(Utils::InreplaceError) {
 | |
|       inreplace "test", "d", "f"
 | |
|     }
 | |
| 
 | |
|     assert_raises(Utils::InreplaceError) {
 | |
|       inreplace("test") { |s| s.gsub! "d", "f" }
 | |
|     }
 | |
| 
 | |
|     assert_raises(Utils::InreplaceError) {
 | |
|       inreplace("test") { |s|
 | |
|         s.change_make_var! "VAR", "value"
 | |
|         s.remove_make_var! "VAR2"
 | |
|       }
 | |
|     }
 | |
|   ensure
 | |
|     File.unlink("test")
 | |
|   end
 | |
| end
 | 
