Bug 577857 - check project existence also for import from archive

This fix checks also for existing projects in workspace when importing
an archive independent if the copyfiles flags was set or not.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=577857
Change-Id: Id215c0416c8acb7da2a1a148e0f70f401cd658ad
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/188937
Reviewed-by: Rolf Theunissen <rolf.theunissen@gmail.com>
Reviewed-by: Lars Vogel <Lars.Vogel@vogella.com>
Tested-by: Platform Bot <platform-bot@eclipse.org>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
index 6360d31..a176712 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
@@ -1506,8 +1506,8 @@
 		List<ProjectRecord> projectRecords = new ArrayList<>();
 		for (ProjectRecord selectedProject : selectedProjects) {
 			String projectName = selectedProject.getProjectName();
-			selectedProject.hasConflicts = (isProjectInWorkspacePath(projectName) && copyFiles)
-					|| isProjectInWorkspace(projectName);
+			selectedProject.hasConflicts = (isProjectInWorkspacePath(projectName)
+					&& (copyFiles || selectedProject.projectArchiveFile != null)) || isProjectInWorkspace(projectName);
 			projectRecords.add(selectedProject);
 		}
 		return projectRecords
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java
index ff2d4b2..6b75ccb 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java
@@ -1320,5 +1320,35 @@
 	}
 
 
+	@Test
+	public void test23DoNotShowProjectwithSameNameForZipImport() {
+		try {
+			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+
+			IProject[] workspaceProjects = root.getProjects();
+			for (IProject workspaceProject : workspaceProjects) {
+				FileUtil.deleteProject(workspaceProject);
+			}
+
+			FileUtil.createProject("HelloWorld");
+
+			URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
+					new Path(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
+			WizardProjectsImportPage wpip = getNewWizard();
+			// We want the other one selected as we are importing an archive file
+			wpip.getProjectFromDirectoryRadio().setSelection((false));
+			wpip.updateProjectsList(archiveFile.getPath());
+
+			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
+			for (ProjectRecord selectedProject : selectedProjects) {
+				if (selectedProject.getProjectName().equals("HelloWorld")) {
+					assertTrue(selectedProject.hasConflicts());
+				}
+			}
+		} catch (IOException | CoreException e) {
+			fail(e.toString());
+		}
+
+	}
 
 }