rewrite ImageInfoIndex as gist
[idea/community.git] / images / test / org / intellij / images / index / ImageInfoIndexTest.java
1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package org.intellij.images.index;
3
4 import com.intellij.openapi.vfs.VfsUtil;
5 import com.intellij.openapi.vfs.VirtualFile;
6 import com.intellij.testFramework.fixtures.BasePlatformTestCase;
7 import org.intellij.images.util.ImageInfo;
8 import org.jetbrains.annotations.NotNull;
9
10 import java.io.IOException;
11
12 import static org.junit.Assert.assertNotEquals;
13
14 public class ImageInfoIndexTest extends BasePlatformTestCase {
15   public void testIndexModification() throws IOException {
16     VirtualFile file = myFixture.addFileToProject("image.svg", "<svg width='300' height='300' xmlns='http://www.w3.org/2000/svg'></svg>").getVirtualFile();
17     ImageInfo value = getIndexValue(file);
18
19     VfsUtil.saveText(file, "<svg width='500' height='300' xmlns='http://www.w3.org/2000/svg'></svg>");
20     assertNotEquals(value, getIndexValue(file));
21     value = getIndexValue(file);
22
23     VfsUtil.saveText(file, "<svg width='500' height='300' xmlns='http://www.w3.org/2000/svg'><path d=\"M10 10\"/></svg>");
24     assertEquals(value, getIndexValue(file));
25   }
26
27   public void testIndexingSameImages() throws IOException {
28     String text = "<svg width='300' height='300' xmlns='http://www.w3.org/2000/svg'></svg>";
29     VirtualFile file1 = myFixture.addFileToProject("image1.svg", text).getVirtualFile();
30     VirtualFile file2 = myFixture.addFileToProject("image2.svg", text).getVirtualFile();
31
32     assertEquals(getIndexValue(file1), getIndexValue(file2));
33     assertEquals(300, getIndexValue(file1).width);
34     assertEquals(300, getIndexValue(file2).width);
35
36     VfsUtil.saveText(file1, "<svg width='500' height='300' xmlns='http://www.w3.org/2000/svg'></svg>");
37     assertEquals(500, getIndexValue(file1).width);
38     assertEquals(300, getIndexValue(file2).width);
39   }
40
41   private ImageInfo getIndexValue(@NotNull VirtualFile file) {
42     return ImageInfoIndex.getInfo(file, myFixture.getProject());
43   }
44
45   @Override
46   protected boolean isWriteActionRequired() {
47     return true;
48   }
49 }