+Before:
+ call ale#test#SetDirectory('/testplugin/test/handler')
+
+ " Load sca2d
+ runtime ale_linters/openscad/sca2d.vim
+
+After:
+ call ale#test#RestoreDirectory()
+ call ale#linter#Reset()
+
+Execute(The openscad handler should handle sca2d output):
+ AssertEqual
+ \ [
+ \ {
+ \ 'filename': ale#path#Simplify(g:dir . '/awesome_project.scad'),
+ \ 'lnum': 7,
+ \ 'type': 'E',
+ \ 'col': 42,
+ \ 'text': 'Module `corcle` used but never defined.',
+ \ 'detail': 'E2002: Module `corcle` used but never defined.',
+ \ },
+ \ ],
+ \ ale#handlers#openscad#SCA2D_callback(bufnr(''), [
+ \ 'awesome_project.scad:7:42: E2002: Module `corcle` used but never defined.',
+ \ '',
+ \ 'SCA2D message summary',
+ \ '=====================',
+ \ 'Fatal errors: 0',
+ \ 'Errors: 1',
+ \ 'Warnings: 0',
+ \ 'Info: 0',
+ \ 'Depreciated 0',
+ \ ])
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'filename': ale#path#Simplify(g:dir . '/awesome_project.scad'),
+ \ 'lnum': 1,
+ \ 'type': 'E',
+ \ 'col': 37,
+ \ 'text': 'Cannot read file due to syntax error: - No terminal matches ''}'' in the current parser context',
+ \ 'detail': 'F0001: Cannot read file due to syntax error: - No terminal matches ''}'' in the current parser context',
+ \ },
+ \ ],
+ \ ale#handlers#openscad#SCA2D_callback(bufnr(''), [
+ \ 'awesome_project.scad:1:1: F0001: Cannot read file due to syntax error:',
+ \ ' - No terminal matches ''}'' in the current parser context, at line 1 col 37',
+ \ ' - ',
+ \ ' - translate([ 0, 0, 0 ]) { circle(10) }',
+ \ ' - ^',
+ \ ' - Expected one of: ',
+ \ ' - * IF',
+ \ ' - * LET',
+ \ ' - * FOR',
+ \ ' - * FUNC_CALL_NAME',
+ \ ' - * TERMINATION',
+ \ ' - * STAR',
+ \ ' - * LBRACE',
+ \ ' - * BANG',
+ \ ' - * ASSIGN',
+ \ ' - * PERCENT',
+ \ ' - * HASH',
+ \ ' - * INTERSECTION_FOR',
+ \ ' - ',
+ \ 'If you believe this is a bug in SCA2D please report it to us.',
+ \ '',
+ \ '',
+ \ 'SCA2D message summary',
+ \ '=====================',
+ \ 'Fatal errors: 1',
+ \ 'Errors: 0',
+ \ 'Warnings: 0',
+ \ 'Info: 0',
+ \ 'Depreciated 0',
+ \ ])