add test case for duplicated images in image index test
authorDmitro Batko <dmitry.batkovich@jetbrains.com>
Thu, 20 Feb 2020 11:17:30 +0000 (14:17 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Thu, 20 Feb 2020 11:46:48 +0000 (11:46 +0000)
GitOrigin-RevId: 0087e82c52899216cd9a3fb06c1242154c6a9686

images/test/org/intellij/images/index/ImageInfoIndexTest.java

index 95c5ca52c7cf643b7245b1429196ac886f438c0c..d61b5e7aa400c569500176db3a090abc0298fc0b 100644 (file)
@@ -6,6 +6,7 @@ import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.testFramework.fixtures.BasePlatformTestCase;
 import com.intellij.util.indexing.FileBasedIndex;
 import org.intellij.images.util.ImageInfo;
+import org.jetbrains.annotations.NotNull;
 
 import java.io.IOException;
 
@@ -28,12 +29,26 @@ public class ImageInfoIndexTest extends BasePlatformTestCase {
     assertEquals(value, getIndexValue(file));
   }
 
+  public void testIndexingSameImages() throws IOException {
+    String text = "<svg width='300' height='300' xmlns='http://www.w3.org/2000/svg'></svg>";
+    VirtualFile file1 = myFixture.addFileToProject("image1.svg", text).getVirtualFile();
+    VirtualFile file2 = myFixture.addFileToProject("image2.svg", text).getVirtualFile();
+
+    assertEquals(getIndexValue(file1), getIndexValue(file2));
+    assertEquals(300, getIndexValue(file1).width);
+    assertEquals(300, getIndexValue(file2).width);
+
+    VfsUtil.saveText(file1, "<svg width='500' height='300' xmlns='http://www.w3.org/2000/svg'></svg>");
+    assertEquals(500, getIndexValue(file1).width);
+    assertEquals(300, getIndexValue(file2).width);
+  }
+
   private long getIndexStamp() {
     return FileBasedIndex.getInstance().getIndexModificationStamp(ImageInfoIndex.INDEX_ID, myFixture.getProject());
   }
 
-  private ImageInfo getIndexValue(VirtualFile file) {
-    return FileBasedIndex.getInstance().getFileData(ImageInfoIndex.INDEX_ID, file, myFixture.getProject()).values().iterator().next();
+  private ImageInfo getIndexValue(@NotNull VirtualFile file) {
+    return ImageInfoIndex.getInfo(file, myFixture.getProject());
   }
 
   @Override