summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-11-05 15:33:31 +0000
committerw0rp <devw0rp@gmail.com>2017-11-05 15:33:31 +0000
commit34674e088d7d990d21a4cee5e289200cee5f9d6c (patch)
treeb7a2625e08b20699b554a7ae160b1bdc67fede8d /test
parentd851f399c054d487232294d9f1c3a6974215f4a8 (diff)
downloadale-34674e088d7d990d21a4cee5e289200cee5f9d6c.zip
Fix #1061 - Handle the filenames returned by javac
Diffstat (limited to 'test')
-rw-r--r--test/command_callback/test_javac_command_callback.vader22
-rw-r--r--test/handler/test_javac_handler.vader34
2 files changed, 46 insertions, 10 deletions
diff --git a/test/command_callback/test_javac_command_callback.vader b/test/command_callback/test_javac_command_callback.vader
index 8033e4f6..77be1d59 100644
--- a/test/command_callback/test_javac_command_callback.vader
+++ b/test/command_callback/test_javac_command_callback.vader
@@ -28,12 +28,15 @@ Before:
call ale#test#SetFilename('dummy.java')
+ let g:prefix = 'cd ' . ale#Escape(expand('%:p:h')) . ' && javac -Xlint'
+
After:
call ale#test#RestoreDirectory()
Restore
unlet! g:cp_sep
+ unlet! g:prefix
delfunction GetCommand
@@ -43,20 +46,21 @@ After:
call ale#engine#Cleanup(bufnr(''))
Execute(The javac callback should return the correct default value):
- AssertEqual 'javac -Xlint -d TEMP %t', GetCommand([])
+ AssertEqual g:prefix . ' -d TEMP %t', GetCommand([])
Execute(The javac callback should use g:ale_java_javac_classpath correctly):
let g:ale_java_javac_classpath = 'foo.jar'
AssertEqual
- \ 'javac -Xlint'
+ \ g:prefix
\ . ' -cp ' . ale#Escape('foo.jar')
\ . ' -d TEMP %t',
\ GetCommand([])
Execute(The javac callback should include discovered classpaths):
AssertEqual
- \ 'javac -Xlint -cp '
+ \ g:prefix
+ \ . ' -cp '
\ . ale#Escape(join(['/foo/bar.jar', '/xyz/abc.jar'], g:cp_sep))
\ . ' -d TEMP %t',
\ GetCommand([
@@ -70,7 +74,8 @@ Execute(The javac callback should combine discovered classpaths and manual ones)
let g:ale_java_javac_classpath = 'configured.jar'
AssertEqual
- \ 'javac -Xlint -cp '
+ \ g:prefix
+ \ . ' -cp '
\ . ale#Escape(join(
\ [
\ '/foo/bar.jar',
@@ -90,7 +95,8 @@ Execute(The javac callback should combine discovered classpaths and manual ones)
let g:ale_java_javac_classpath = 'configured.jar' . g:cp_sep . 'configured2.jar'
AssertEqual
- \ 'javac -Xlint -cp '
+ \ g:prefix
+ \ . ' -cp '
\ . ale#Escape(join(
\ [
\ '/foo/bar.jar',
@@ -114,7 +120,7 @@ Execute(The javac callback should detect source directories):
call ale#engine#InitBufferInfo(bufnr(''))
AssertEqual
- \ 'javac -Xlint'
+ \ 'cd ' . ale#Escape(expand('%:p:h')) . ' && javac -Xlint'
\ . ' -sourcepath ' . ale#Escape(
\ ale#path#Winify(g:dir . '/java_paths/src/main/java/')
\ )
@@ -127,7 +133,7 @@ Execute(The javac callback should combine detected source directories and classp
call ale#engine#InitBufferInfo(bufnr(''))
AssertEqual
- \ 'javac -Xlint'
+ \ 'cd ' . ale#Escape(expand('%:p:h')) . ' && javac -Xlint'
\ . ' -cp ' . ale#Escape(join(['/foo/bar.jar', '/xyz/abc.jar'], g:cp_sep))
\ . ' -sourcepath ' . ale#Escape(
\ ale#path#Winify(g:dir . '/java_paths/src/main/java/')
@@ -146,6 +152,6 @@ Execute(The javac callback should use g:ale_java_javac_options correctly):
let b:command = ale_linters#java#javac#GetCommand(bufnr(''), [])
AssertEqual
- \ 'javac -Xlint'
+ \ g:prefix
\ . ' -d TEMP --anything --else %t',
\ GetCommand([])
diff --git a/test/handler/test_javac_handler.vader b/test/handler/test_javac_handler.vader
index 2cf32072..3997b42c 100644
--- a/test/handler/test_javac_handler.vader
+++ b/test/handler/test_javac_handler.vader
@@ -1,42 +1,51 @@
Before:
runtime ale_linters/java/javac.vim
+ call ale#test#SetDirectory('/testplugin/test')
+ call ale#test#SetFilename('dummy.java')
+
After:
+ call ale#test#RestoreDirectory()
call ale#linter#Reset()
Execute(The javac handler should handle cannot find symbol errors):
AssertEqual
\ [
\ {
+ \ 'filename': '/tmp/vLPr4Q5/33/foo.java',
\ 'lnum': 1,
\ 'text': 'error: some error',
\ 'type': 'E',
\ },
\ {
+ \ 'filename': '/tmp/vLPr4Q5/33/foo.java',
\ 'lnum': 2,
\ 'col': 5,
\ 'text': 'error: cannot find symbol: BadName',
\ 'type': 'E',
\ },
\ {
+ \ 'filename': '/tmp/vLPr4Q5/33/foo.java',
\ 'lnum': 34,
\ 'col': 5,
\ 'text': 'error: cannot find symbol: BadName2',
\ 'type': 'E',
\ },
\ {
+ \ 'filename': '/tmp/vLPr4Q5/33/foo.java',
\ 'lnum': 37,
\ 'text': 'warning: some warning',
\ 'type': 'W',
\ },
\ {
+ \ 'filename': '/tmp/vLPr4Q5/33/foo.java',
\ 'lnum': 42,
\ 'col': 11,
\ 'text': 'error: cannot find symbol: bar()',
\ 'type': 'E',
\ },
\ ],
- \ ale_linters#java#javac#Handle(347, [
+ \ ale_linters#java#javac#Handle(bufnr(''), [
\ '/tmp/vLPr4Q5/33/foo.java:1: error: some error',
\ '/tmp/vLPr4Q5/33/foo.java:2: error: cannot find symbol',
\ ' BadName foo() {',
@@ -49,9 +58,30 @@ Execute(The javac handler should handle cannot find symbol errors):
\ ' symbol: class BadName2',
\ ' location: class Bar',
\ '/tmp/vLPr4Q5/33/foo.java:37: warning: some warning',
- \ '/tmp/vLPr4Q5/264/foo.java:42: error: cannot find symbol',
+ \ '/tmp/vLPr4Q5/33/foo.java:42: error: cannot find symbol',
\ ' this.bar();',
\ ' ^',
\ ' symbol: method bar()',
\ '5 errors',
\ ])
+
+Execute(The javac handler should resolve files from different directories):
+ AssertEqual
+ \ [
+ \ {
+ \ 'filename': ale#path#Winify(g:dir . '/Foo.java'),
+ \ 'lnum': 1,
+ \ 'text': 'error: some error',
+ \ 'type': 'E',
+ \ },
+ \ {
+ \ 'filename': ale#path#Winify(g:dir . '/Bar.java'),
+ \ 'lnum': 1,
+ \ 'text': 'error: some error',
+ \ 'type': 'E',
+ \ },
+ \ ],
+ \ ale_linters#java#javac#Handle(bufnr(''), [
+ \ './Foo.java:1: error: some error',
+ \ './Bar.java:1: error: some error',
+ \ ])