mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Assert CodeMirror modes and mime types are valid against source
This commit is contained in:
		| @@ -302,7 +302,7 @@ module Linguist | ||||
|  | ||||
|       @ace_mode = attributes[:ace_mode] | ||||
|       @codemirror_mode = attributes[:codemirror_mode] | ||||
|       @codemirror_mime_mode = attributes[:codemirror_mime_mode] | ||||
|       @codemirror_mime_type = attributes[:codemirror_mime_type] | ||||
|       @wrap = attributes[:wrap] || false | ||||
|  | ||||
|       # Set legacy search term | ||||
| @@ -423,7 +423,7 @@ module Linguist | ||||
|     #  # => "text/x-csrc" | ||||
|     # | ||||
|     # Returns a String name or nil | ||||
|     attr_reader :codemirror_mime_mode | ||||
|     attr_reader :codemirror_mime_type | ||||
|  | ||||
|     # Public: Should language lines be wrapped | ||||
|     # | ||||
| @@ -602,7 +602,7 @@ module Linguist | ||||
|       :tm_scope          => options['tm_scope'], | ||||
|       :ace_mode          => options['ace_mode'], | ||||
|       :codemirror_mode   => options['codemirror_mode'], | ||||
|       :codemirror_mime_mode => options['codemirror_mime_mode'], | ||||
|       :codemirror_mime_type => options['codemirror_mime_type'], | ||||
|       :wrap              => options['wrap'], | ||||
|       :group_name        => options['group'], | ||||
|       :searchable        => options.fetch('searchable', true), | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -126,7 +126,7 @@ class TestGrammars < Minitest::Test | ||||
|   private | ||||
|  | ||||
|   def submodule_paths | ||||
|     @submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last } | ||||
|     @submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last }.reject { |path| path =~ /CodeMirror/ } | ||||
|   end | ||||
|  | ||||
|   # Returns a hash of submodules in the form of submodule_path => license | ||||
|   | ||||
| @@ -358,11 +358,11 @@ class TestLanguage < Minitest::Test | ||||
|     assert_equal 'clike', Language['C++'].codemirror_mode | ||||
|   end | ||||
|  | ||||
|   def test_codemirror_mime_mode | ||||
|     assert_equal 'text/x-ruby', Language['Ruby'].codemirror_mime_mode | ||||
|     assert_equal 'text/javascript', Language['JavaScript'].codemirror_mime_mode | ||||
|     assert_equal 'text/x-csrc', Language['C'].codemirror_mime_mode | ||||
|     assert_equal 'text/x-c++src', Language['C++'].codemirror_mime_mode | ||||
|   def test_codemirror_mime_type | ||||
|     assert_equal 'text/x-ruby', Language['Ruby'].codemirror_mime_type | ||||
|     assert_equal 'text/javascript', Language['JavaScript'].codemirror_mime_type | ||||
|     assert_equal 'text/x-csrc', Language['C'].codemirror_mime_type | ||||
|     assert_equal 'text/x-c++src', Language['C++'].codemirror_mime_type | ||||
|   end | ||||
|  | ||||
|   def test_wrap | ||||
| @@ -454,9 +454,9 @@ class TestLanguage < Minitest::Test | ||||
|  | ||||
|   def test_codemirror_modes_present | ||||
|     Language.all.each do |language| | ||||
|       if language.codemirror_mode || language.codemirror_mime_mode | ||||
|       if language.codemirror_mode || language.codemirror_mime_type | ||||
|         assert language.codemirror_mode, "#{language.inspect} missing CodeMirror mode" | ||||
|         assert language.codemirror_mime_mode, "#{language.inspect} missing CodeMirror MIME mode" | ||||
|         assert language.codemirror_mime_type, "#{language.inspect} missing CodeMirror MIME mode" | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| @@ -472,17 +472,17 @@ class TestLanguage < Minitest::Test | ||||
|   def test_codemirror_mode_and_mime_defined_by_meta_mapping | ||||
|     meta = File.read(File.expand_path("../../vendor/CodeMirror/mode/meta.js", __FILE__)) | ||||
|     Language.all.each do |language| | ||||
|       next unless language.codemirror_mode && language.codemirror_mime_mode | ||||
|       assert meta.match(/^.+#{Regexp.escape(language.codemirror_mime_mode)}.+#{Regexp.escape(language.codemirror_mode)}.+$/), "#{language.inspect}: #{language.codemirror_mime_mode} not defined under #{language.codemirror_mode}" | ||||
|       next unless language.codemirror_mode && language.codemirror_mime_type | ||||
|       assert meta.match(/^.+#{Regexp.escape(language.codemirror_mime_type)}.+#{Regexp.escape(language.codemirror_mode)}.+$/), "#{language.inspect}: #{language.codemirror_mime_type} not defined under #{language.codemirror_mode}" | ||||
|     end | ||||
|   end | ||||
|  | ||||
|   def test_codemirror_mime_declared_in_mode_file | ||||
|     Language.all.each do |language| | ||||
|       next unless language.codemirror_mode && language.codemirror_mime_mode | ||||
|       next unless language.codemirror_mode && language.codemirror_mime_type | ||||
|       filename = File.expand_path("../../vendor/CodeMirror/mode/#{language.codemirror_mode}/#{language.codemirror_mode}.js", __FILE__) | ||||
|       assert File.exist?(filename), "#{filename} does not exist" | ||||
|       assert File.read(filename).match(language.codemirror_mime_mode), "#{language.inspect}: #{language.codemirror_mime_mode} not defined in #{filename}" | ||||
|       assert File.read(filename).match(language.codemirror_mime_type), "#{language.inspect}: #{language.codemirror_mime_type} not defined in #{filename}" | ||||
|     end | ||||
|   end | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user