@Test
	public void testCopyPasteAcrossServiceProviders_CodeBrowser_To_ByteViewer() throws Exception {
		DockingAction codeBrowserCopyAction =
			getAction(codeBrowserClipboardProvider, COPY_ACTION_NAME);
		final DockingAction byteViewerPasteAction =
			getAction(byteViewerClipboardProvider, PASTE_ACTION_NAME);

		// code browser to byte viewer and decompiler
		makeSelection(codeViewerWrapper);
		copy(codeViewerWrapper, codeBrowserCopyAction);

		// now perform a 'copy special' and choose a type that the paste will accept
		DockingAction codeBrowserCopySpecialAction =
			getAction(codeBrowserClipboardProvider, COPY_SPECIAL_ACTION_NAME);
		copySpecial(codeViewerWrapper, codeBrowserCopySpecialAction);

		String clipboardContents = getClipboardContents();

		// move the cursor down to paste our bytes; clear the code we need to be able to paste
		ProgramSelection currentSelection = codeBrowserPlugin.getCurrentSelection();
		Address pasteAddress = currentSelection.getMaxAddress();
		long pasteLength = currentSelection.getNumAddresses();
		clearSelectedBytes(pasteAddress, pasteLength);

		codeBrowserPlugin.goTo(new ProgramLocation(program, pasteAddress));

		// change the edit state of the byte viewer and make sure we can paste
		setByteViewerEditable(true);

		assertTrue(byteViewerPasteAction.isEnabled());

		runSwing(() -> byteViewerPasteAction.actionPerformed(getActionContext(byteViewerWrapper)),
			false);

		OptionDialog d = waitForDialogComponent(OptionDialog.class);
		pressButton(d.getDefaultButton());

		waitForBusyTool(tool);

		assertByteViewerBytes(clipboardContents, pasteAddress);
	}
Note: This test is sensitive to focus. So, don't click any windows while this test is running.
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/core/clipboard/ClipboardPluginTest.java