From 536800f9f50d527c2e61beec99758068b3f10444 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 22 Apr 2014 15:47:49 -0500 Subject: [PATCH] Towards testing for presence of sample files --- test/test_samples.rb | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/test/test_samples.rb b/test/test_samples.rb index 5073f7b8..8a149860 100644 --- a/test/test_samples.rb +++ b/test/test_samples.rb @@ -1,7 +1,8 @@ require 'linguist/samples' +require 'linguist/language' require 'tempfile' require 'yajl' - +require 'pry' require 'test/unit' class TestSamples < Test::Unit::TestCase @@ -35,4 +36,25 @@ class TestSamples < Test::Unit::TestCase assert_equal data['tokens_total'], data['language_tokens'].inject(0) { |n, (_, c)| n += c } assert_equal data['tokens_total'], data['tokens'].inject(0) { |n, (_, ts)| n += ts.inject(0) { |m, (_, c)| m += c } } end + + # If a language extension isn't globally unique then make sure there are samples + def test_presence + Linguist::Language.all.each do |language| + # TODO - feels like there should be a better way to do this. + extensions = [language.primary_extension] + language.extensions + + extensions.uniq.each do |extension| + language_matches = Language.find_by_filename("foo.#{extension}") + + # If there is more than one language match for a given extension + # then check that there are examples for that language with the extension + if language_matches.length > 1 + language_matches.each do |language| + assert File.directory?("samples/#{language.name}") + assert Dir.glob("samples/#{language.name}/*#{extension}").any? + end + end + end + end + end end