| /******************************************************************************* |
| * Copyright (c) 2000, 2012 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.core.tests.resources.regression; |
| |
| import junit.framework.Test; |
| import junit.framework.TestSuite; |
| import org.eclipse.core.resources.*; |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.QualifiedName; |
| import org.eclipse.core.tests.resources.ResourceTest; |
| |
| /** |
| * When a container was moved, its children were not added to phantom space. |
| * |
| */ |
| public class Bug_029671 extends ResourceTest { |
| |
| public Bug_029671(String name) { |
| super(name); |
| } |
| |
| public static Test suite() { |
| return new TestSuite(Bug_029671.class); |
| } |
| |
| public void testBug() { |
| final QualifiedName partner = new QualifiedName("org.eclipse.core.tests.resources", "myTarget"); |
| IWorkspace workspace = getWorkspace(); |
| final ISynchronizer synchronizer = workspace.getSynchronizer(); |
| synchronizer.add(partner); |
| |
| IProject project = workspace.getRoot().getProject("MyProject"); |
| IFolder folder = project.getFolder("source"); |
| IFile file = folder.getFile("file.txt"); |
| |
| ensureExistsInWorkspace(file, true); |
| |
| try { |
| // sets sync info for the folder and its children |
| try { |
| synchronizer.setSyncInfo(partner, folder, getRandomString().getBytes()); |
| synchronizer.setSyncInfo(partner, file, getRandomString().getBytes()); |
| } catch (CoreException ce) { |
| fail("1.0", ce); |
| } |
| |
| IFolder targetFolder = project.getFolder("target"); |
| IFile targetFile = targetFolder.getFile(file.getName()); |
| |
| try { |
| folder.move(targetFolder.getFullPath(), false, false, getMonitor()); |
| } catch (CoreException e) { |
| fail("2.0", e); |
| } |
| assertTrue("3.0", folder.isPhantom()); |
| assertTrue("4.0", file.isPhantom()); |
| |
| assertExistsInWorkspace("5.0", targetFolder); |
| assertTrue("5.1", !targetFolder.isPhantom()); |
| |
| assertExistsInWorkspace("6.0", targetFile); |
| assertTrue("6.1", !targetFile.isPhantom()); |
| } finally { |
| synchronizer.remove(partner); |
| } |
| } |
| } |