From 18a9996e5f32bc5da143e9a706d87a3c28d210d0 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Fri, 13 Mar 2015 17:38:38 +0300 Subject: [PATCH] IDEA-82135 Missing images in Quick Documentation Java Doc loaded from jars fixed existing test, added new test --- .../codeInsight/documentation/inherit.gif | Bin 57 -> 0 bytes .../documentation/library-javadoc.jar | Bin 0 -> 20437 bytes .../codeInsight/documentation/library.jar | Bin 0 -> 559 bytes .../codeInsight/javadocIG/annotations.html | 2 +- .../javadocIG/annotationsInParams.html | 2 +- .../javadocIG/anonymousAndSuperJavadoc.html | 2 +- .../codeInsight/javadocIG/apiNotes.html | 2 +- .../javadocIG/classTypeParameter.html | 2 +- .../javadocIG/clickableFieldReference.html | 2 +- .../testData/codeInsight/javadocIG/code.html | 2 +- .../javadocIG/commaInsideArgsList.html | 2 +- .../javadocIG/constantFieldInitializer.html | 2 +- .../javadocIG/enumConstantOrdinal.html | 2 +- .../codeInsight/javadocIG/enumValueOf.html | 2 +- .../codeInsight/javadocIG/escapeValues.html | 2 +- .../codeInsight/javadocIG/fieldValue.html | 2 +- .../codeInsight/javadocIG/ideadev2326.html | 2 +- .../javadocIG/inheritedDocInThrows.html | 2 +- .../javadocIG/inheritedDocInThrows1.html | 2 +- .../javadocIG/inheritedParameter.html | 2 +- .../javadocIG/initializerWithLiteral.html | 2 +- .../javadocIG/initializerWithNew.html | 2 +- .../javadocIG/initializerWithReference.html | 2 +- .../javadocIG/lambdaParameter.html | 2 +- .../codeInsight/javadocIG/literal.html | 2 +- .../methodExpressionWithLiteral.html | 2 +- .../javadocIG/methodFormatting.html | 2 +- .../javadocIG/methodTypeParameter.html | 2 +- .../codeInsight/javadocIG/pInsidePre.html | 2 +- .../codeInsight/javadocIG/simpleField.html | 2 +- .../codeInsight/javadocIG/valueInMethod.html | 2 +- .../JavaExternalDocumentationTest.java | 127 ++++++++++++++++++ .../javadoc/JavaDocInfoGeneratorTest.java | 23 +++- .../documentation/DocumentationComponent.java | 2 +- .../documentation/DocumentationManager.java | 2 +- 35 files changed, 173 insertions(+), 37 deletions(-) delete mode 100644 java/java-tests/testData/codeInsight/documentation/inherit.gif create mode 100644 java/java-tests/testData/codeInsight/documentation/library-javadoc.jar create mode 100644 java/java-tests/testData/codeInsight/documentation/library.jar create mode 100644 java/java-tests/testSrc/com/intellij/codeInsight/JavaExternalDocumentationTest.java diff --git a/java/java-tests/testData/codeInsight/documentation/inherit.gif b/java/java-tests/testData/codeInsight/documentation/inherit.gif deleted file mode 100644 index c814867a13deb0ca7ea2156c6ca1d5a03372af7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57 zcmZ?wbhEHbIIT!9-C*e{wE9>Kx3D)-;0v)C; KYxQGgum%9JOA&7X diff --git a/java/java-tests/testData/codeInsight/documentation/library-javadoc.jar b/java/java-tests/testData/codeInsight/documentation/library-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b4c02715e2f080076321670e900a4fbac44d800 GIT binary patch literal 20437 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 ADF6Tf literal 0 HcmV?d00001 diff --git a/java/java-tests/testData/codeInsight/javadocIG/annotations.html b/java/java-tests/testData/codeInsight/javadocIG/annotations.html index 39e57472104c..7e9221d07a7c 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/annotations.html +++ b/java/java-tests/testData/codeInsight/javadocIG/annotations.html @@ -1,3 +1,3 @@ - Test
@Nullable 
+    Test
@Nullable 
 @Deprecated 
 public String field = null
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/annotationsInParams.html b/java/java-tests/testData/codeInsight/javadocIG/annotationsInParams.html index c9b08d63be93..4a2857980f66 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/annotationsInParams.html +++ b/java/java-tests/testData/codeInsight/javadocIG/annotationsInParams.html @@ -1,2 +1,2 @@ - Test
public void foo(@Deprecated String s,
+    Test
public void foo(@Deprecated String s,
                 @Deprecated String p)
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/anonymousAndSuperJavadoc.html b/java/java-tests/testData/codeInsight/javadocIG/anonymousAndSuperJavadoc.html index 05d80ff67146..d40287710f13 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/anonymousAndSuperJavadoc.html +++ b/java/java-tests/testData/codeInsight/javadocIG/anonymousAndSuperJavadoc.html @@ -1,4 +1,4 @@ -
+    
 public void foo()
Description copied from interface: Foo
some javadoc
Specified by:
foo in interface Foo
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/apiNotes.html b/java/java-tests/testData/codeInsight/javadocIG/apiNotes.html index b731e4ecefcc..7d457b471ff7 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/apiNotes.html +++ b/java/java-tests/testData/codeInsight/javadocIG/apiNotes.html @@ -1 +1 @@ - Test
public void foo()
apiNote
my api note
implSpec
my impl spec
implNote
my impl note
\ No newline at end of file + Test
public void foo()
apiNote
my api note
implSpec
my impl spec
implNote
my impl note
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/classTypeParameter.html b/java/java-tests/testData/codeInsight/javadocIG/classTypeParameter.html index 92254a82516c..49ff667bac70 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/classTypeParameter.html +++ b/java/java-tests/testData/codeInsight/javadocIG/classTypeParameter.html @@ -1,3 +1,3 @@ -
class MethodTypeParam<T>
+    
class MethodTypeParam<T>
 extends Object
Type parameters:
<T> - type param
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/clickableFieldReference.html b/java/java-tests/testData/codeInsight/javadocIG/clickableFieldReference.html index 5cc90365ea11..584065f277a4 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/clickableFieldReference.html +++ b/java/java-tests/testData/codeInsight/javadocIG/clickableFieldReference.html @@ -1,3 +1,3 @@ -
@Bar(Baz.CONST, value = {Baz.CONST}) 
+    
@Bar(Baz.CONST, value = {Baz.CONST}) 
 class Foo
 extends Object
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/code.html b/java/java-tests/testData/codeInsight/javadocIG/code.html index e75e09176a2f..fe44bd264515 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/code.html +++ b/java/java-tests/testData/codeInsight/javadocIG/code.html @@ -1,4 +1,4 @@ - Foo
int foo
+ Foo
int foo
      
       class Clazzz {
diff --git a/java/java-tests/testData/codeInsight/javadocIG/commaInsideArgsList.html b/java/java-tests/testData/codeInsight/javadocIG/commaInsideArgsList.html
index 4fb3721930dd..6dd479297932 100644
--- a/java/java-tests/testData/codeInsight/javadocIG/commaInsideArgsList.html
+++ b/java/java-tests/testData/codeInsight/javadocIG/commaInsideArgsList.html
@@ -1 +1 @@
-    Test
public String field = foo("", "")
\ No newline at end of file + Test
public String field = foo("", "")
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/constantFieldInitializer.html b/java/java-tests/testData/codeInsight/javadocIG/constantFieldInitializer.html index 3965d05b5cd8..b717a2f9fe12 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/constantFieldInitializer.html +++ b/java/java-tests/testData/codeInsight/javadocIG/constantFieldInitializer.html @@ -1,2 +1,2 @@ - Test
public static final int field = 
+    Test
public static final int field = 
 Resolved value: 2
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/enumConstantOrdinal.html b/java/java-tests/testData/codeInsight/javadocIG/enumConstantOrdinal.html index 613de9167782..263a86d9e844 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/enumConstantOrdinal.html +++ b/java/java-tests/testData/codeInsight/javadocIG/enumConstantOrdinal.html @@ -1,2 +1,2 @@ - E
E A
+    E
E A
 Enum constant ordinal: 0
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/enumValueOf.html b/java/java-tests/testData/codeInsight/javadocIG/enumValueOf.html index c17fb4e85adb..f4612645900a 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/enumValueOf.html +++ b/java/java-tests/testData/codeInsight/javadocIG/enumValueOf.html @@ -1,4 +1,4 @@ - En
@org.jetbrains.annotations.Contract(pure = true) 
+    En
@org.jetbrains.annotations.Contract(pure = true) 
 static int valueOf(int i)
myjavadoc
Parameters:
i -
Returns:
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/escapeValues.html b/java/java-tests/testData/codeInsight/javadocIG/escapeValues.html index e35bd271bef2..fb0fd6cfd520 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/escapeValues.html +++ b/java/java-tests/testData/codeInsight/javadocIG/escapeValues.html @@ -1,3 +1,3 @@ -
class Pattern
+    
class Pattern
 extends Object
\W \u03A9 \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/fieldValue.html b/java/java-tests/testData/codeInsight/javadocIG/fieldValue.html index b15488d777a2..aaed481d0b2a 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/fieldValue.html +++ b/java/java-tests/testData/codeInsight/javadocIG/fieldValue.html @@ -1 +1 @@ - A
public static int JAVADOC_ME = 23
The value of the field is 23. \ No newline at end of file + A
public static int JAVADOC_ME = 23
The value of the field is 23. \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/ideadev2326.html b/java/java-tests/testData/codeInsight/javadocIG/ideadev2326.html index e5f6c9fb03ba..cbd53c283549 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/ideadev2326.html +++ b/java/java-tests/testData/codeInsight/javadocIG/ideadev2326.html @@ -1,2 +1,2 @@ - Idea4780
public Object read()
+    Idea4780
public Object read()
            throws IOException
Throws:
IOException - if an I/O error occurs while reading.
EOFException - if this source is already closed when the read() is called, or is closed during the read().
InterruptedIOException - if the reading thread is interrupted.
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/inheritedDocInThrows.html b/java/java-tests/testData/codeInsight/javadocIG/inheritedDocInThrows.html index 7a32b50deb34..81df52edfebd 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/inheritedDocInThrows.html +++ b/java/java-tests/testData/codeInsight/javadocIG/inheritedDocInThrows.html @@ -1,2 +1,2 @@ - InheritedDocInThrows
void foo()
+    InheritedDocInThrows
void foo()
  throws IOException
Overrides:
foo in class A
Throws:
IOException - la-la-la
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/inheritedDocInThrows1.html b/java/java-tests/testData/codeInsight/javadocIG/inheritedDocInThrows1.html index 59796e76cd2a..f27a0850f389 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/inheritedDocInThrows1.html +++ b/java/java-tests/testData/codeInsight/javadocIG/inheritedDocInThrows1.html @@ -1,2 +1,2 @@ - InheritedDocInThrows1
void foo()
+    InheritedDocInThrows1
void foo()
  throws IOException
Overrides:
foo in class A
Throws:
IOException - comment
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/inheritedParameter.html b/java/java-tests/testData/codeInsight/javadocIG/inheritedParameter.html index a95cc830123b..7beb470a63d9 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/inheritedParameter.html +++ b/java/java-tests/testData/codeInsight/javadocIG/inheritedParameter.html @@ -1 +1 @@ -
String s
s - String parameter. \ No newline at end of file +
String s
s - String parameter. \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/initializerWithLiteral.html b/java/java-tests/testData/codeInsight/javadocIG/initializerWithLiteral.html index 57ca00a717a2..da0954aa05e1 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/initializerWithLiteral.html +++ b/java/java-tests/testData/codeInsight/javadocIG/initializerWithLiteral.html @@ -1 +1 @@ - A
public String strings = "A<BLANK>B"
\ No newline at end of file + A
public String strings = "A<BLANK>B"
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/initializerWithNew.html b/java/java-tests/testData/codeInsight/javadocIG/initializerWithNew.html index d11e238610a6..7032c0345290 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/initializerWithNew.html +++ b/java/java-tests/testData/codeInsight/javadocIG/initializerWithNew.html @@ -1 +1 @@ - A
public List<String> strings = new ArrayList<String>(new ArrayList<Integer>(), Collections.singleton(new ArrayList<Double>()))
\ No newline at end of file + A
public List<String> strings = new ArrayList<String>(new ArrayList<Integer>(), Collections.singleton(new ArrayList<Double>()))
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/initializerWithReference.html b/java/java-tests/testData/codeInsight/javadocIG/initializerWithReference.html index f4ba3cbff9d1..8780018d1a33 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/initializerWithReference.html +++ b/java/java-tests/testData/codeInsight/javadocIG/initializerWithReference.html @@ -1 +1 @@ - Test
public int field = anotherField
\ No newline at end of file + Test
public int field = anotherField
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.html b/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.html index 31697926bc91..bc06e7ab63ac 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.html +++ b/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.html @@ -1 +1 @@ -
int a
\ No newline at end of file +
int a
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/literal.html b/java/java-tests/testData/codeInsight/javadocIG/literal.html index a10aecb5f685..cc4d27b2ac7e 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/literal.html +++ b/java/java-tests/testData/codeInsight/javadocIG/literal.html @@ -1,2 +1,2 @@ - Foo
int foo
+ Foo
int foo
foo <> \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/methodExpressionWithLiteral.html b/java/java-tests/testData/codeInsight/javadocIG/methodExpressionWithLiteral.html index 5d73a26bc75f..9f87e83ded00 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/methodExpressionWithLiteral.html +++ b/java/java-tests/testData/codeInsight/javadocIG/methodExpressionWithLiteral.html @@ -1 +1 @@ - A
public byte[] bytes = "&amp;".getBytes()
\ No newline at end of file + A
public byte[] bytes = "&amp;".getBytes()
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/methodFormatting.html b/java/java-tests/testData/codeInsight/javadocIG/methodFormatting.html index 9cb61794114c..9d9f05b90d62 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/methodFormatting.html +++ b/java/java-tests/testData/codeInsight/javadocIG/methodFormatting.html @@ -1,3 +1,3 @@ - Producer
<E extends Exception> void drainTo(Consumer<? super T, E> consumer,
+    Producer
<E extends Exception> void drainTo(Consumer<? super T, E> consumer,
                                    Object someParameter)
                            throws E
Throws:
E
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/methodTypeParameter.html b/java/java-tests/testData/codeInsight/javadocIG/methodTypeParameter.html index 86ed662f15eb..f3258f5d7159 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/methodTypeParameter.html +++ b/java/java-tests/testData/codeInsight/javadocIG/methodTypeParameter.html @@ -1 +1 @@ - MethodTypeParam
<T> void foo(T t)
Type parameters:
<T> - type param
\ No newline at end of file + MethodTypeParam
<T> void foo(T t)
Type parameters:
<T> - type param
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/pInsidePre.html b/java/java-tests/testData/codeInsight/javadocIG/pInsidePre.html index fbfd2983208a..514fb157ca91 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/pInsidePre.html +++ b/java/java-tests/testData/codeInsight/javadocIG/pInsidePre.html @@ -1,4 +1,4 @@ - Test
public String field = null
+ Test
public String field = null
          foo
          

diff --git a/java/java-tests/testData/codeInsight/javadocIG/simpleField.html b/java/java-tests/testData/codeInsight/javadocIG/simpleField.html index 643ceac6cc4b..b2f9b93eb4cd 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/simpleField.html +++ b/java/java-tests/testData/codeInsight/javadocIG/simpleField.html @@ -1 +1 @@ - A
public static int JAVADOC_ME
Test \ No newline at end of file + A
public static int JAVADOC_ME
Test \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/valueInMethod.html b/java/java-tests/testData/codeInsight/javadocIG/valueInMethod.html index 9b2fe7285a70..8342feaa01c7 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/valueInMethod.html +++ b/java/java-tests/testData/codeInsight/javadocIG/valueInMethod.html @@ -1 +1 @@ - A
public static void JAVADOC_ME()
The value of A is 23. \ No newline at end of file + A
public static void JAVADOC_ME()
The value of A is 23. \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/JavaExternalDocumentationTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/JavaExternalDocumentationTest.java new file mode 100644 index 000000000000..1bb26cc0f3e5 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/codeInsight/JavaExternalDocumentationTest.java @@ -0,0 +1,127 @@ +/* + * Copyright 2000-2015 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.codeInsight; + +import com.intellij.JavaTestUtil; +import com.intellij.codeInsight.documentation.DocumentationComponent; +import com.intellij.codeInsight.documentation.DocumentationManager; +import com.intellij.lang.java.JavaLanguage; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.editor.Document; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.EditorFactory; +import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleManager; +import com.intellij.openapi.roots.JavadocOrderRootType; +import com.intellij.openapi.roots.ModuleRootModificationUtil; +import com.intellij.openapi.roots.OrderRootType; +import com.intellij.openapi.roots.libraries.Library; +import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; +import com.intellij.openapi.ui.popup.JBPopup; +import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.vfs.JarFileSystem; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.PsiDocumentManager; +import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiFileFactory; +import com.intellij.testFramework.PlatformTestCase; +import org.jetbrains.annotations.NotNull; + +import javax.swing.*; +import javax.swing.text.html.HTML; +import javax.swing.text.html.HTMLDocument; +import java.io.File; +import java.io.InputStream; +import java.net.URL; + +public class JavaExternalDocumentationTest extends PlatformTestCase { + public void testImagesInsideJavadocJar() throws Exception { + final VirtualFile libClasses = getJarFile("library.jar"); + final VirtualFile libJavadocJar = getJarFile("library-javadoc.jar"); + + ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override + public void run() { + final Library library = LibraryTablesRegistrar.getInstance().getLibraryTable(myProject).createLibrary("myLib"); + final Library.ModifiableModel model = library.getModifiableModel(); + model.addRoot(libClasses, OrderRootType.CLASSES); + model.addRoot(libJavadocJar, JavadocOrderRootType.getInstance()); + model.commit(); + + Module[] modules = ModuleManager.getInstance(myProject).getModules(); + assertSize(1, modules); + ModuleRootModificationUtil.addDependency(modules[0], library); + } + }); + + PsiFile psiFile = + PsiFileFactory.getInstance(myProject).createFileFromText(JavaLanguage.INSTANCE, "class Foo { com.jetbrains.Test field; }"); + Document document = PsiDocumentManager.getInstance(myProject).getDocument(psiFile); + assertNotNull(document); + Editor editor = EditorFactory.getInstance().createEditor(document, myProject); + try { + editor.getCaretModel().moveToOffset(document.getText().indexOf("Test")); + DocumentationManager documentationManager = DocumentationManager.getInstance(myProject); + documentationManager.showJavaDocInfo(editor, psiFile, false); + JBPopup popup = documentationManager.getDocInfoHint(); + assertNotNull(popup); + DocumentationComponent documentationComponent = (DocumentationComponent)popup.getContent().getComponent(0); + try { + byte[] imageData = getImageDataFromDocumentationComponent(documentationComponent); + assertEquals(228, imageData.length); + } + finally { + Disposer.dispose(documentationComponent); + } + } + finally { + EditorFactory.getInstance().releaseEditor(editor); + } + } + + @NotNull + private static VirtualFile getJarFile(String name) { + VirtualFile file = getVirtualFile(new File(JavaTestUtil.getJavaTestDataPath() + "/codeInsight/documentation/" + name)); + assertNotNull(file); + VirtualFile jarFile = JarFileSystem.getInstance().getJarRootForLocalFile(file); + assertNotNull(jarFile); + return jarFile; + } + + private static byte[] getImageDataFromDocumentationComponent(DocumentationComponent documentationComponent) throws Exception { + JEditorPane editorPane = (JEditorPane)documentationComponent.getComponent(); + HTMLDocument document = (HTMLDocument)editorPane.getDocument(); + HTMLDocument.Iterator it = document.getIterator(HTML.Tag.IMG); + assertTrue(it.isValid()); + String relativeUrl = (String)it.getAttributes().getAttribute(HTML.Attribute.SRC); + it.next(); + assertFalse(it.isValid()); + URL imageUrl = new URL(document.getBase(), relativeUrl); + InputStream stream = imageUrl.openStream(); + try { + return FileUtil.loadBytes(stream); + } + finally { + stream.close(); + } + } + + @Override + protected boolean isRunInWriteAction() { + return false; + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java index 5a58e6695ad2..7bb0de06ebf3 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java @@ -138,19 +138,22 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase { PsiField field = psiClass.getFields() [0]; String docInfo = new JavaDocumentationProvider().generateDoc(field, field); assertNotNull(docInfo); - assertEquals(exampleHtmlFileText(getTestName(true)), StringUtil.convertLineSeparators(docInfo.trim())); + assertEquals(exampleHtmlFileText(getTestName(true)), replaceEnvironmentDependentContent(docInfo)); docInfo = new JavaDocumentationProvider().getQuickNavigateInfo(field, field); assertNotNull(docInfo); - assertEquals(exampleHtmlFileText(getTestName(true) + "_quick"), StringUtil.convertLineSeparators(docInfo.trim())); + assertEquals(exampleHtmlFileText(getTestName(true) + "_quick"), replaceEnvironmentDependentContent(docInfo)); } public void testClickableFieldReference() throws Exception { PsiClass aClass = getTestClass(); PsiTypeElement element = aClass.getFields()[0].getTypeElement(); - String docInfo = new JavaDocumentationProvider().generateDoc(element.getInnermostComponentReferenceElement().resolve(), element); + assertNotNull(element); + PsiJavaCodeReferenceElement innermostComponentReferenceElement = element.getInnermostComponentReferenceElement(); + assertNotNull(innermostComponentReferenceElement); + String docInfo = new JavaDocumentationProvider().generateDoc(innermostComponentReferenceElement.resolve(), element); assertNotNull(docInfo); - assertEquals(exampleHtmlFileText(getTestName(true)), StringUtil.convertLineSeparators(docInfo.trim())); + assertEquals(exampleHtmlFileText(getTestName(true)), replaceEnvironmentDependentContent(docInfo)); } private static String exampleHtmlFileText(String name) throws IOException { @@ -161,12 +164,13 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase { public void testClassTypeParamsPresentation() throws Exception { PsiClass psiClass = getTestClass(); final PsiReferenceList extendsList = psiClass.getExtendsList(); + assertNotNull(extendsList); final PsiJavaCodeReferenceElement referenceElement = extendsList.getReferenceElements()[0]; final PsiClass superClass = extendsList.getReferencedTypes()[0].resolve(); String docInfo = new JavaDocumentationProvider().getQuickNavigateInfo(superClass, referenceElement); assertNotNull(docInfo); - assertEquals(exampleHtmlFileText(getTestName(true)), StringUtil.convertLineSeparators(docInfo.trim())); + assertEquals(exampleHtmlFileText(getTestName(true)), replaceEnvironmentDependentContent(docInfo)); } public void testLambdaParameter() throws Exception { @@ -200,7 +204,7 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase { private void verifyJavaDoc(final PsiElement field) throws IOException { String docInfo = new JavaDocInfoGenerator(getProject(), field).generateDocInfo(null); assertNotNull(docInfo); - assertEquals(exampleHtmlFileText(getTestName(true)), StringUtil.convertLineSeparators(docInfo.trim())); + assertEquals(exampleHtmlFileText(getTestName(true)), replaceEnvironmentDependentContent(docInfo)); } public void testPackageInfo() throws Exception { @@ -211,13 +215,14 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase { new JavaDocInfoGenerator(getProject(), JavaPsiFacade.getInstance(getProject()).findPackage(getTestName(true))).generateDocInfo(null); String htmlText = FileUtil.loadFile(new File(packageInfo + File.separator + "packageInfo.html")); assertNotNull(info); - assertEquals(StringUtil.convertLineSeparators(htmlText.trim()), StringUtil.convertLineSeparators(info.trim())); + assertEquals(StringUtil.convertLineSeparators(htmlText.trim()), replaceEnvironmentDependentContent(info)); } public void testInheritedParameter() throws Exception { configureByFile("/codeInsight/javadocIG/" + getTestName(true) + ".java"); PsiClass outerClass = ((PsiJavaFile) myFile).getClasses()[0]; PsiClass innerClass = outerClass.findInnerClassByName("Impl", false); + assertNotNull(innerClass); PsiParameter parameter = innerClass.getMethods()[0].getParameterList().getParameters()[0]; verifyJavaDoc(parameter); } @@ -226,4 +231,8 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase { protected String getTestDataPath() { return JavaTestUtil.getJavaTestDataPath(); } + + private static String replaceEnvironmentDependentContent(String html) { + return StringUtil.convertLineSeparators(html.trim()).replaceAll("", ""); + } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java index 86116ff6373a..af9dc5f2c869 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java @@ -553,7 +553,7 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr setElement(element); boolean justShown = false; - if (!myIsShown && myHint != null) { + if (!myIsShown && myHint != null && !ApplicationManager.getApplication().isUnitTestMode()) { myEditorPane.setText(text); applyFontSize(); myManager.showHint(myHint); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java index bddd5acc5b5b..9f80b16c868f 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java @@ -642,7 +642,7 @@ public class DocumentationManager extends DockablePopupManager