@Test
	public void testImportDefaultTools() throws Exception {
		final ToolChest tc = frontEndTool.getToolServices().getToolChest();
		int count = tc.getToolCount();
		ToolTemplate[] origConfigs = tc.getToolTemplates();

		Set<String> defaultTools = ResourceManager.getResourceNames("defaultTools", ".tool");
		Set<String> extraToolsList = ResourceManager.getResourceNames("extraTools", ".tool");

		DockingActionIf importAction = getAction("Import Ghidra Tools");
		performAction(importAction, false);
		waitForSwing();
		ImportGhidraToolsDialog d = waitForDialogComponent(ImportGhidraToolsDialog.class);
		assertNotNull(d);

		JList<?> defList = findComponent(d, JList.class);
		assertNotNull(defList);

		@SuppressWarnings("rawtypes")
		ListCellRenderer renderer = defList.getCellRenderer();
		for (int i = 0; i < defaultTools.size(); i++) {
			@SuppressWarnings("unchecked")
			JCheckBox cb =
				(JCheckBox) renderer.getListCellRendererComponent(defList, null, i, false, false);
			assertTrue(!cb.isSelected());
		}

		JButton selectAllButton = findButtonByText(d, "Select All");
		runSwing(() -> selectAllButton.doClick());

		pressButtonByText(d, "OK");
		waitForSwing();
		assertEquals(count + defaultTools.size() + extraToolsList.size(), tc.getToolCount());

		ToolTemplate[] configs = tc.getToolTemplates();

		// remove default tools that were just added
		ArrayList<String> origList = new ArrayList<>();
		for (ToolTemplate origConfig : origConfigs) {
			origList.add(origConfig.getName());
		}
		final ArrayList<String> newList = new ArrayList<>();
		for (ToolTemplate config : configs) {
			newList.add(config.getName());
		}
		newList.removeAll(origList);
		runSwing(() -> {
			for (String element : newList) {
				tc.remove(element);
			}
		});
		assertEquals(origList.size(), tc.getToolCount());
	}
Tests for tool actions on the front end (Ghidra project window)
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/framework/main/ToolActionManagerTest.java