@Test
	public void testShowList() throws Exception {
		setFrameSize(650, 500);

		programNames = new String[] { "notepad", "login", "tms", "taskman", "TestGhidraSearches" };
		openPrograms(programNames);

		assertEquals(programNames.length, panel.getTabCount());
		assertEquals(3, panel.getVisibleTabs().size());
		assertEquals(2, panel.getHiddenTabs().size());

		TabListPopup<?> tabListPopup = showList();

		@SuppressWarnings("unchecked")
		SearchList<Program> list = findComponent(tabListPopup, SearchList.class);
		assertNotNull(list);
		SearchListModel<Program> model = list.getModel();
		Program[] hiddenPrograms = new Program[] { programs[2], programs[3] };// 4 tabs fit before 5th program was open
		for (int i = 0; i < hiddenPrograms.length; i++) {
			assertEquals(hiddenPrograms[i], model.getElementAt(i).value());
		}

		Program[] shownPrograms = new Program[] { programs[0], programs[1], programs[4] };
		for (int i = 0; i < shownPrograms.length; i++) {
			assertEquals(shownPrograms[i], model.getElementAt(i + 2).value());
		}
	}
Tests for the plugin that manages the tab for multiple open programs.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/progmgr/MultiTabPluginTest.java