From 9ebb71c8136fd9366d13dd11c306cd2e53bd8da5 Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Thu, 19 Jan 2017 18:55:13 +0300 Subject: [PATCH] [groovy] modify original logback tests to test IDEA-159869 --- .../GroovyLightProjectDescriptor.groovy | 4 +- .../groovy/ext/logback/LogbackTest.groovy | 102 +++++------------- .../mock/logback/logback-mock-src.jar | Bin 0 -> 3464 bytes .../testdata/mock/logback/logback-mock.jar | Bin 0 -> 4684 bytes 4 files changed, 29 insertions(+), 77 deletions(-) create mode 100644 plugins/groovy/testdata/mock/logback/logback-mock-src.jar create mode 100644 plugins/groovy/testdata/mock/logback/logback-mock.jar diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/GroovyLightProjectDescriptor.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/GroovyLightProjectDescriptor.groovy index ca8d4c9b6923..cb4a610bf47b 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/GroovyLightProjectDescriptor.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/GroovyLightProjectDescriptor.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ class GroovyLightProjectDescriptor extends DefaultLightProjectDescriptor { } private final String myLibPath - protected GroovyLightProjectDescriptor(String libPath) { + GroovyLightProjectDescriptor(String libPath) { myLibPath = libPath } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/ext/logback/LogbackTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/ext/logback/LogbackTest.groovy index 3d642a57f12e..6ef3b7ad598b 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/ext/logback/LogbackTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/ext/logback/LogbackTest.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,91 +16,43 @@ package org.jetbrains.plugins.groovy.ext.logback import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction +import com.intellij.openapi.module.Module +import com.intellij.openapi.roots.ContentEntry +import com.intellij.openapi.roots.DependencyScope +import com.intellij.openapi.roots.ModifiableRootModel +import com.intellij.openapi.roots.OrderRootType +import com.intellij.openapi.vfs.JarFileSystem import com.intellij.pom.PomTargetPsiElement import com.intellij.testFramework.LightProjectDescriptor import groovy.transform.CompileStatic +import org.jetbrains.annotations.NotNull +import org.jetbrains.jps.model.java.JavaResourceRootType +import org.jetbrains.jps.model.module.JpsModuleSourceRootType import org.jetbrains.plugins.groovy.GroovyLightProjectDescriptor import org.jetbrains.plugins.groovy.LightGroovyTestCase import org.jetbrains.plugins.groovy.codeInspection.untypedUnresolvedAccess.GrUnresolvedAccessInspection +import static org.jetbrains.plugins.groovy.config.GroovyFacetUtil.getBundledGroovyJar +import static org.jetbrains.plugins.groovy.util.TestUtils.getAbsoluteTestDataPath + @CompileStatic class LogbackTest extends LightGroovyTestCase { - LightProjectDescriptor projectDescriptor = GroovyLightProjectDescriptor.GROOVY_LATEST + final LightProjectDescriptor projectDescriptor = new GroovyLightProjectDescriptor(bundledGroovyJar as String) { - @Override - void setUp() throws Exception { - super.setUp() - fixture.with { - addClass ''' -package ch.qos.logback.classic; -public interface Level { - Level ERROR = null; - Level INFO = null; - Level WARN = null; -} -''' - addClass ''' -package ch.qos.logback.classic.gaffer; -import ch.qos.logback.classic.Level; -public class ConfigurationDelegate { - void scan(String scanPeriodStr) {} - void statusListener(Class listenerClass) {} - void conversionRule(String conversionWord, Class converterClass) {} - void root(Level level) {} - void root(Level level, List appenderNames) {} - void logger(String name, Level level) {} - void logger(String name, Level level, List appenderNames) {} - void logger(String name, Level level, List appenderNames, Boolean b) {} - void appender(String name, Class clazz) {} - void appender(String name, Class clazz, Closure closure) {} - void receiver(String name, Class aClass) {} - void receiver(String name, Class aClass, Closure closure) {} - void turboFilter(Class clazz) {} - void turboFilter(Class clazz, Closure closure) {} - String timestamp(String datePattern, long timeReference) {} - void jmxConfigurator() {} - void jmxConfigurator(String name) {} -} -''' - addClass ''' -package ch.qos.logback.classic.gaffer; -public class ComponentDelegate {} -''' - addClass ''' -package ch.qos.logback.classic.gaffer; -public class AppenderDelegate extends ComponentDelegate {} -''' - addClass ''' -package ch.qos.logback.core.encoder; -public interface Encoder {} -''' - addClass ''' -package ch.qos.logback.classic.encoder; -public interface PatternLayoutEncoder extends ch.qos.logback.core.encoder.Encoder { - String getPattern(); - void setPattern(String s); -} -''' - addClass ''' -package ch.qos.logback.core; -import ch.qos.logback.core.encoder.Encoder; -public interface ConsoleAppender { - Encoder getEncoder(); - void setEncoder(Encoder e); -} -''' - addClass ''' -package ch.qos.logback.core; -import ch.qos.logback.core.encoder.Encoder; -public interface FileAppender { - Encoder getEncoder(); - void setEncoder(Encoder e); - boolean isAppend(); - void setAppend(boolean a); - void setFile(String file); -} -''' + @NotNull + final JpsModuleSourceRootType sourceRootType = JavaResourceRootType.RESOURCE + + @Override + void configureModule(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ContentEntry contentEntry) { + super.configureModule(module, model, contentEntry) + def library = model.moduleLibraryTable.createLibrary("Logback") + library.modifiableModel.with { + def root = JarFileSystem.instance.refreshAndFindFileByPath(absoluteTestDataPath + "mock/logback/logback-mock.jar!/") + addRoot(root, OrderRootType.CLASSES) + commit() + } + model.findLibraryOrderEntry(library).scope = DependencyScope.RUNTIME } } diff --git a/plugins/groovy/testdata/mock/logback/logback-mock-src.jar b/plugins/groovy/testdata/mock/logback/logback-mock-src.jar new file mode 100644 index 0000000000000000000000000000000000000000..d87a360986aab07e3fb3c125be9e425d02fcbccf GIT binary patch literal 3464 zcmWIWW@h1HVBlb2;GSgc#ef8u8CV#SGxYzRVqgfssfZn@0jQ`jzgQo)B7TIToc#2p z#N=!|ip4P%C+8#<7iT8p(Ik&sQ)*sveoAT)ShENN2L}fO%S2RS;s1Lk2vo7i^b*;PBSFFteAjQ+P)ors9^lYysZv9Q6t7bsB(v zI03}CBS8+gFVhp#(ojOEWddpl857j&SWu9f2MlJH)ST4x#FA8S;Mkr#$lIU*3>@p= z5+<<^DJ2tw>@!?eG<0?rmiMx+f3JD^6r;-KyTw}#*}r#9J+W0UiMhJ}lH}s{?(PfE zudG(`)lgPqG8Z`a&1tD({w(33-_LiQWd`}UW}TFOD9BAvA4B5x9h$362)f!iKer%1 zFEy_O#o5{(KIi;={6js?UC=(Gf9>>1e}AT~7pl)y#KhCpUN2Q&wsfgjWO1SB6t$-* zYT6A)Mdy4j=Kl0K=(AT$P;t;@VecT(RoRRncZPjp*Kq^7!V|AM@uWX!%sA)grDdj< z7A2Ns=I5cfb#3rzzrzLsd%kPe@B}@P*LdV0xST8W>4D0}IlbMjW=iSX8Xt}G_&IQ{AAH93$RFiU?b|CIH~3#TS@cImFUsUa!Ll6qD+Yl^^xx9L6e zj;)$h$*5M%>nAz$U-*kDx|)T@zqK1jGziqLZeWYu=J8|~cd*G3?rf=&c`nxjll2Qu z?TZY5_Qs?5Ok1GbE1Q%|DWC1{U$3^zmc1u`RZilH=`5kU+#wYQy_u(9aesbVpdo8{ zN?yZ%->*`E=j7I2Xqi;`ZOldw4GiE;gvuck5#cHICy?maY)4cQ$Yd zzmdN5@cWI@FSD3TeDCh$>~fP{u&TORHMU=r<&mLfZa90Sa%_~zqP5HWJkA;jZ=JW< znE&>x*Cn^toNnXO4?llwVnh2)eo$nF8%>N(XJlZoVu55c?1hOU?nLL4T9%pv&KP)8 zSTsCor97LuL~N<5+H$QQOQtP-rV&!C$-vn1R!ZcF{E~##6T)XrPVQBC_wxC(epib- zh9~&-VotLHO8|C`I9{8_F+hhjLDL=f0$v1*Q}c^b@syMrICKEhXK{W`Dy$Fy`!ToM zkdMibhvoO4L#ihK4uo=ioG>S!Q&7>&bAjU@S#G|I57NS|le>%hI91g5Wj$Y%`K{Ge zdYQndqg#6GCj`2Ro7mM{O5J@{mHVmHg}y+C>b0@lWoawcT~MBI|Ca-2^4i&Nzo?a; z<^FpAkLkldl5rq!-?N_4ln->`D!ks7!QlzaiUPeD#N~aMPUMOKR}_mceYNzN>htAG zkctpQJnwK?BC;xbCpZ$_U-Ug0B4<_zM?<8h%tvuAd_WwNH^mcJ^jt@EcLAg^Nm~PZ)bxZy+Yw4Ey3qejZ zSKK&!DfC>qykukWVk2u6i=rj9=cY_Ke7PZPyJEoW#~Y;gKT))C{Cjk@=iKUv9(s(| zpFSyDzkKyGvmc*N7i6^tH$AwQRoJ`{V&*ej7(e%*b^zJ6@m)jZ4%s? zK&=u4KnkJ&Z`_(dtrP_C0y3cu8$_E0w`NeQ1p&%|Of=1iHVketrCI_`L5P+MB zkXf+e2Bkto4iZp<0J#bVH3$&kAVCYTHxJNlK&}^113i2N2*P7ULkb0wU%>4ni($K?NfM2(w{22xJ1bS^}TDKm|1d+`wTf zw!8pJS;)mFs{4e1#RGaO1-TDq5^^z)9u3IF7N}f7fMqyL#VCjayjg)>VPFsd!gs*J Jt%U=`0|0mI=tTek literal 0 HcmV?d00001 diff --git a/plugins/groovy/testdata/mock/logback/logback-mock.jar b/plugins/groovy/testdata/mock/logback/logback-mock.jar new file mode 100644 index 0000000000000000000000000000000000000000..c1b055fb3f6a3cc02739311147a0ab031fc3792b GIT binary patch literal 4684 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