@Test
 public void browserRestartCreatesNewInstance() throws MalformedURLException {
   String uri = deriveMappingForUI(PlainUI.class);
   openWindow(uri);
   assertTrue("PlainUI should contain a label", firstWindow.isElementPresent(LABEL));
   assertThat(PlainUI.getNumberOfInstances(), is(1));
   // reset session
   firstWindow.restartBrowser();
   openWindow(uri);
   assertTrue("PlainUI should contain a label", firstWindow.isElementPresent(LABEL));
   assertThat(PlainUI.getNumberOfInstances(), is(2));
   assertDefaultRootNotInstantiated();
 }
 @Test
 @OperateOnDeployment("alternativeUiPathCollision")
 public void alternativeDoesNotColideWithPath() throws MalformedURLException {
   final String plainUIPath = deriveMappingForUI(PlainUI.class);
   final String plainAlternativeUI = deriveMappingForUI(PlainColidingAlternativeUI.class);
   assertThat(plainUIPath, is(plainAlternativeUI));
   openWindow(plainUIPath);
   waitModel.until(elementPresent.locator(LABEL));
   assertThat(PlainUI.getNumberOfInstances(), is(1));
   assertThat(PlainColidingAlternativeUI.getNumberOfInstances(), is(0));
 }
 @Before
 public void resetCounter() {
   PlainUI.resetCounter();
   PlainAlternativeUI.resetCounter();
   PlainColidingAlternativeUI.resetCounter();
   InstrumentedUI.resetCounter();
   InstrumentedView.resetCounter();
   ScopedInstrumentedView.resetCounter();
   ViewWithoutAnnotation.resetCounter();
   WithAnnotationRegisteredView.resetCounter();
   SecondUI.resetCounter();
   RootUI.resetCounter();
   RootWithCustomMappingUI.resetCounter();
   UIWithCDIDependentListener.resetCounter();
   UIWithCDISelfListener.resetCounter();
   DependentCDIEventListener.resetCounter();
   DependentCDIEventListener.resetEventCounter();
   ParameterizedNavigationUI.reset();
   NoViewProviderNavigationUI.resetCounter();
   firstWindow.restartBrowser();
 }