@Test
	public void testReorderCopy2Expanded() throws Exception {
		// expand Everything
		ProgramNode evNode = root.getChild("Everything");
		expandNode(evNode);
		ProgramNode subrNode = root.getChild("Subroutines");
		expandNode(subrNode);
		ProgramNode node = subrNode.getChild("010030d8");

		// drag/copy 010030d8 from Subroutines to Everything and place after
		// Everything

		runSwingWithException(() -> {
			dndManager.add(evNode, new ProgramNode[] { node }, DnDConstants.ACTION_COPY, 1);
		});
		waitForProgram(program);

		// verify that 010030d8 is the first child in Everything
		assertEquals("010030d8", evNode.getFirstChild().toString());
		assertNotNull(subrNode.getChild("010030d8"));

		// collapse Everything
		collapseNode(evNode);

		// from Subroutines drag 01004a15 below Everything
		ProgramNode node2 = subrNode.getChild("01004a15");

		runSwingWithException(() -> {
			dndManager.add(evNode, new ProgramNode[] { node2 }, DnDConstants.ACTION_COPY, 1);
		});
		waitForProgram(program);

		// verify that 01004a15 is copied to the root node and placed
		// after Everything
		assertNotNull(root.getChild("01004a15"));
		ProgramNode e = root.getChild("Everything");
		assertEquals("01004a15", root.getChildAfter(e).toString());
	}
Tests for drag/drop/reorder for copy and move in the program tree.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/programtree/ProgramTreePlugin3Test.java