mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +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
|