From b8c9684b0268c601cf170792aa2fd054864c65c4 Mon Sep 17 00:00:00 2001 From: Valeriy Svydenko Date: Mon, 18 Jul 2016 13:48:49 +0300 Subject: [PATCH] CHE-1523: update related virtual file when resource was changed Signed-off-by: Valeriy Svydenko --- .../widgets/editortab/EditorTabWidget.java | 4 ++-- .../editortab/EditorTabWidgetTest.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/part/widgets/editortab/EditorTabWidget.java b/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/part/widgets/editortab/EditorTabWidget.java index 102925879ba..c2dc7f645ed 100644 --- a/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/part/widgets/editortab/EditorTabWidget.java +++ b/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/part/widgets/editortab/EditorTabWidget.java @@ -151,8 +151,8 @@ public void update(@NotNull PartPresenter part) { title.setText(part.getTitle()); if (part instanceof EditorPartPresenter) { - VirtualFile changedFile = ((EditorPartPresenter)part).getEditorInput().getFile(); - FileType fileType = fileTypeRegistry.getFileTypeByFile(changedFile); + file = ((EditorPartPresenter)part).getEditorInput().getFile(); + FileType fileType = fileTypeRegistry.getFileTypeByFile(file); icon = fileType.getImage(); iconPanel.setWidget(getIcon()); } diff --git a/ide/che-core-ide-app/src/test/java/org/eclipse/che/ide/part/widgets/editortab/EditorTabWidgetTest.java b/ide/che-core-ide-app/src/test/java/org/eclipse/che/ide/part/widgets/editortab/EditorTabWidgetTest.java index 7630e92b0b7..42057cc4ac7 100644 --- a/ide/che-core-ide-app/src/test/java/org/eclipse/che/ide/part/widgets/editortab/EditorTabWidgetTest.java +++ b/ide/che-core-ide-app/src/test/java/org/eclipse/che/ide/part/widgets/editortab/EditorTabWidgetTest.java @@ -35,6 +35,8 @@ import org.vectomatic.dom.svg.ui.SVGResource; import static org.eclipse.che.ide.api.parts.PartStackView.TabPosition.BELOW; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -161,4 +163,22 @@ public void tabIconShouldBeUpdatedWhenMediaTypeChanged() { verify(fileTypeRegistry).getFileTypeByFile(file); verify(tab.iconPanel).setWidget(Matchers.anyObject()); } + + @Test + public void virtualFileShouldBeUpdated() throws Exception { + EditorInput editorInput = mock(EditorInput.class); + FileType fileType = mock(FileType.class); + VirtualFile newFile = mock(VirtualFile.class); + + when(editorPartPresenter.getEditorInput()).thenReturn(editorInput); + when(fileTypeRegistry.getFileTypeByFile(newFile)).thenReturn(fileType); + when(fileType.getImage()).thenReturn(icon); + when(editorInput.getFile()).thenReturn(newFile); + + assertNotEquals(tab.getFile(), newFile); + + tab.update(editorPartPresenter); + + assertEquals(tab.getFile(), newFile); + } }