add test case for duplicated images in image index test
[idea/community.git] / 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