mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'test/unit'
 | |
| 
 | |
| class TestPedantic < Test::Unit::TestCase
 | |
|   Lib = File.expand_path("../../lib/linguist", __FILE__)
 | |
| 
 | |
|   def file(name)
 | |
|     File.read(File.join(Lib, name))
 | |
|   end
 | |
| 
 | |
|   def test_language_names_are_sorted
 | |
|     languages = []
 | |
|     file("languages.yml").lines.each do |line|
 | |
|       if line =~ /^(\w+):$/
 | |
|         languages << $1
 | |
|       end
 | |
|     end
 | |
|     assert_sorted languages
 | |
|   end
 | |
| 
 | |
|   def test_extensions_are_sorted
 | |
|     extensions = nil
 | |
|     file("languages.yml").lines.each do |line|
 | |
|       if line =~ /^  extensions:$/
 | |
|         extensions = []
 | |
|       elsif extensions && line =~ /^  - \.([\w\-\.]+)( *#.*)?$/
 | |
|         extensions << $1
 | |
|       else
 | |
|         assert_sorted extensions[1..-1] if extensions
 | |
|         extensions = nil
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def test_filenames_are_sorted
 | |
|     filenames = nil
 | |
|     file("languages.yml").lines.each do |line|
 | |
|       if line =~ /^  filenames:$/
 | |
|         filenames = []
 | |
|       elsif filenames && line =~ /^  - \.(\w+)$/
 | |
|         filenames << $1
 | |
|       else
 | |
|         assert_sorted filenames if filenames
 | |
|         filenames = nil
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def assert_sorted(list)
 | |
|     previous = nil
 | |
|     list.each do |item|
 | |
|       if previous && previous > item
 | |
|         flunk "#{previous} should come after #{item}"
 | |
|       end
 | |
|       previous = item
 | |
|     end
 | |
|   end
 | |
| end
 |