### Question:
ExtensibleFirefoxDriver extends FirefoxDriver { public void uninstallAddon(AddonUninstallRequest request) throws IOException { addonSupport.uninstallAddon(request); } ExtensibleFirefoxDriver(GeckoDriverService service, FirefoxOptions options); void installAddon(AddonInstallRequest request); void uninstallAddon(AddonUninstallRequest request); static ArtifactInfo getArtifactInfo(); static ArtifactInfo getParentArtifactInfo();  }### Answer:
@Test public void uninstallAddon() throws Exception { File sampleExtensionZipFile = buildSampleExtension(); AddonInstallRequest installRequest = AddonInstallRequest.fromFile(sampleExtensionZipFile, AddonPersistence.TEMPORARY); BehaviorVerifier<Void> verifier = (driver, baseUri) -> { AddonUninstallRequest uninstallRequest = AddonUninstallRequest.fromId(SAMPLE_EXTENSION_ID); driver.uninstallAddon(uninstallRequest); driver.get(baseUri.toString()); try { new WebDriverWait(driver, 3).until(ExpectedConditions.presenceOfElementLocated(By.id("injected"))); fail("extension still installed it seems"); } catch (org.openqa.selenium.TimeoutException ignore) { } return (Void) null; }; testInstallAddon(installRequest, verifier); }