@Test public void oneToOneRelationBetweenBrowserAndUI() throws MalformedURLException { openWindow(INSTRUMENTED_UI_URI); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); int clickCount = number(firstWindow.getText(LABEL)); assertThat(clickCount, is(1)); assertThat(InstrumentedUI.getNumberOfInstances(), is(1)); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); clickCount = number(firstWindow.getText(LABEL)); assertThat(clickCount, is(2)); assertThat(InstrumentedUI.getNumberOfInstances(), is(1)); firstWindow.restartBrowser(); openWindow(INSTRUMENTED_UI_URI); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); clickCount = number(firstWindow.getText(LABEL)); assertThat(clickCount, is(1)); assertThat(InstrumentedUI.getNumberOfInstances(), is(2)); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); clickCount = number(firstWindow.getText(LABEL)); assertThat(clickCount, is(2)); assertThat(InstrumentedUI.getNumberOfInstances(), is(2)); assertDefaultRootNotInstantiated(); }
@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 public void interceptedScopedEventListener() throws MalformedURLException { assertThat(InterceptedUI.getNumberOfInstances(), is(0)); assertThat(InstrumentedInterceptor.getCounter(), is(0)); String uri = deriveMappingForUI(InterceptedUI.class); openWindow(uri); waitModel.until(elementPresent.locator(LABEL)); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(InstrumentedInterceptor.getCounter(), is(1)); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(InstrumentedInterceptor.getCounter(), is(2)); }
public void takeScreenshot(String command) { BrowserType browser = configuration.getBrowser().getType(); BufferedImage screenshot = null; File imageOutputFile = new File( screenshotsOutputDir, MetamerTestInfo.getAssociatedFilename(method) + "/" + getFileName(command)); if (browser == BrowserType.FIREFOX) { screenshot = selenium.captureEntirePageScreenshot(); File directory = imageOutputFile.getParentFile(); String newHash = calculateHash(screenshot); if (lastImageHash == null || !lastImageHash.equals(newHash)) { try { FileUtils.forceMkdir(directory); calculateHash(screenshot); ImageIO.write(screenshot, "PNG", imageOutputFile); } catch (IOException e) { throw new RuntimeException(e); } lastImageHash = newHash; } } }
@Test public void cdiEventsArrivesInTheSameUIScopedInstance() throws MalformedURLException { assertThat(UIWithCDISelfListener.getNumberOfInstances(), is(0)); assertThat(UIWithCDISelfListener.getNumberOfDeliveredEvents(), is(0)); String uri = deriveMappingForUI(UIWithCDISelfListener.class); openWindow(uri); waitModel.until(elementPresent.locator(LABEL)); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(UIWithCDISelfListener.getNumberOfInstances(), is(1)); assertThat(UIWithCDISelfListener.getNumberOfDeliveredEvents(), is(1)); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(UIWithCDISelfListener.getNumberOfInstances(), is(1)); assertThat(UIWithCDISelfListener.getNumberOfDeliveredEvents(), is(2)); }
@Test public void dependentScopedViewIsInstantiatedOnce() throws MalformedURLException { String uri = deriveMappingForUI(NoViewProviderNavigationUI.class); openWindow(uri); assertThat(InstrumentedView.getNumberOfInstances(), is(1)); firstWindow.click(NAVIGATE_BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(InstrumentedView.getNumberOfInstances(), is(1)); assertThat(NoViewProviderNavigationUI.getNumberOfInstances(), is(1)); assertThat(NoViewProviderNavigationUI.getNumberOfNavigations(), is(1)); firstWindow.click(NAVIGATE_BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(InstrumentedView.getNumberOfInstances(), is(1)); assertThat(NoViewProviderNavigationUI.getNumberOfInstances(), is(1)); assertThat(NoViewProviderNavigationUI.getNumberOfNavigations(), is(2)); }
@Test public void dependentScopedViewIsInstantiatedTwiceWithViewProvider() throws MalformedURLException { openWindow(firstWindow, INSTRUMENTED_VIEW_URI); firstWindow.click(NAVIGATE_BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(InstrumentedView.getNumberOfInstances(), is(2)); }
@Test public void danglingViewCauses404() throws MalformedURLException { openWindow(DANGLING_VIEW_URI); waitModel.until(elementPresent.locator(LABEL)); firstWindow.click(NAVIGATE_BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(SecondUI.getNumberOfInstances(), is(1)); assertThat(DanglingView.getNumberOfInstances(), is(0)); }
@Test public void refreshButtonCreatesNewUIInstance() throws MalformedURLException { openWindow(INSTRUMENTED_UI_URI); assertThat(InstrumentedUI.getNumberOfInstances(), is(1)); firstWindow.refresh(); waitModel.until(elementPresent.locator(LABEL)); assertThat(InstrumentedUI.getNumberOfInstances(), is(2)); assertDefaultRootNotInstantiated(); }
@Test public void recognitionOfViewWithoutAnnotation() throws MalformedURLException { ParameterizedNavigationUI.NAVIGATE_TO = "viewWithoutAnnotation"; openWindow(deriveMappingForUI(ParameterizedNavigationUI.class)); firstWindow.click(NAVIGATE_BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(ViewWithoutAnnotation.getNumberOfInstances(), is(1)); assertDefaultRootNotInstantiated(); }
@Test public void ejbInvocation() throws MalformedURLException { openWindow(deriveMappingForUI(EnterpriseUI.class)); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(EnterpriseUI.getNumberOfInstances(), is(1)); firstWindow.click(BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); final String labelText = retrieveText.locator(LABEL).retrieve(); assertThat(labelText, startsWith("Echo:")); assertThat(EnterpriseUI.getNumberOfInstances(), is(1)); assertDefaultRootNotInstantiated(); }
@Test public void navigationToRestrictedViewFails() throws MalformedURLException { assertThat(ParameterizedNavigationUI.getNumberOfInstances(), is(0)); assertThat(RestrictedView.getNumberOfInstances(), is(0)); ParameterizedNavigationUI.NAVIGATE_TO = deriveMappingForView(RestrictedView.class); openWindow(deriveMappingForUI(ParameterizedNavigationUI.class)); firstWindow.click(NAVIGATE_BUTTON); waitModel.waitForChange(retrieveText.locator(LABEL)); assertThat(ParameterizedNavigationUI.getNumberOfInstances(), is(1)); assertThat(RestrictedView.getNumberOfInstances(), is(0)); assertDefaultRootNotInstantiated(); }
@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(); }
@Test public void unsecuredUI() throws MalformedURLException { String uri = deriveMappingForUI(UnsecuredUI.class); openWindow(uri); final String principalName = firstWindow.getText(id("principalName")); final String isUserInRole = firstWindow.getText(id("isUserInRole")); final String isUserInSomeRole = firstWindow.getText(id("isUserInSomeRole")); final String currentRequestNotNull = firstWindow.getText(id("currentRequestNotNull")); final String isUserSignedIn = firstWindow.getText(id("isUserSignedIn")); final String disabled = firstWindow.getText(id("disabled")); try { firstWindow.getText(id("invisible")); fail("Invisible element should not be accessible"); } catch (SeleniumException ex) { } assertFalse(Boolean.parseBoolean(principalName)); assertFalse(Boolean.parseBoolean(isUserInRole)); assertFalse(Boolean.parseBoolean(isUserInSomeRole)); assertTrue(Boolean.parseBoolean(currentRequestNotNull)); assertFalse(Boolean.parseBoolean(isUserSignedIn)); assertThat(disabled, is("DisabledLabel")); }
void openWindowNoWait(GrapheneSelenium window, String uri) throws MalformedURLException { URL url = new URL(contextPath.toString() + uri); window.open(url); }