public Component getActivePage() { String pageName = globals.getActivePageName(); return pageName == null ? null : getPage(pageName); }
public void reportException(Throwable exception) { rootException = exception; rootURL = baseURLSource.getBaseURL(request.isSecure()); // Capture this now ... before the gears are shifted around to make ExceptionReport the active page. failurePage = (request.getAttribute(InternalConstants.ACTIVE_PAGE_LOADED) == null) ? null : requestGlobals.getActivePageName(); }
if (canonical.equals(requestGlobals.getActivePageName()))
public void renderMarkup(MarkupWriter writer, MarkupRenderer delegate) { delegate.renderMarkup(writer); String pageName = globals.getActivePageName(); Document document = writer.getDocument(); Element element = document.find("html/head"); if (element != null) { element.element("meta", "name", "tapestry-page-name", "content", pageName); } } }
public Link createPageRenderLink(String pageName, boolean override, Object... pageActivationContext) { // Resolve the page name to its canonical format (the best version for URLs). This also // validates // the page name. String canonical = resolver.canonicalizePageName(pageName); Object[] context = (override || pageActivationContext.length != 0) ? pageActivationContext : contextCollector .collectPageActivationContext(canonical); boolean loopback = canonical.equals(requestGlobals.getActivePageName()) && pageCache.get(pageName).hasResetListeners(); PageRenderRequestParameters parameters = new PageRenderRequestParameters(canonical, new ArrayEventContext( typeCoercer, context), loopback); Link link = linkEncoder.createPageRenderLink(parameters); for (LinkCreationListener2 listener : listeners) listener.createdPageRenderLink(link, parameters); return link; }
public void processResultValue(StreamPageContent value) throws IOException { Class<?> pageClass = value.getPageClass(); Object[] activationContext = value.getPageActivationContext(); final String pageName = pageClass == null ? requestGlobals.getActivePageName() : resolver.resolvePageClassNameToPageName(pageClass.getName()); final EventContext context = activationContext == null ? new EmptyEventContext() : new ArrayEventContext(typeCoercer, activationContext); if (value.isBypassActivation()) { request.setAttribute(InternalConstants.BYPASS_ACTIVATION, true); } request.setAttribute(TapestryConstants.RESPONSE_RENDERER, new IOOperation<Void>() { public Void perform() throws IOException { handler.handle(new PageRenderRequestParameters(pageName, context, false)); return null; } }); } }
@Test public void get_active_page_before_known() { RequestGlobals globals = mockRequestGlobals(); expect(globals.getActivePageName()).andReturn(null); replay(); ComponentSource source = new ComponentSourceImpl(null, null, globals); assertNull(source.getActivePage()); verify(); } }
@Test public void get_active_page() { RequestPageCache cache = mockRequestPageCache(); Page page = mockPage(); Component component = mockComponent(); ComponentClassResolver resolver = mockComponentClassResolver(); RequestGlobals globals = mockRequestGlobals(); String pageName = "Active"; expect(globals.getActivePageName()).andReturn(pageName); train_get(cache, pageName, page); train_getRootComponent(page, component); replay(); ComponentSource source = new ComponentSourceImpl(cache, resolver, globals); assertSame(source.getActivePage(), component); verify(); }
@Test public void create_page_render_link_by_name() { String pageName = "order/Edit"; PageActivationContextCollector collector = mockPageActivationContextCollector(); ComponentEventLinkEncoder linkEncoder = mockComponentEventLinkEncoder(); Link link = mockLink(); ComponentClassResolver resolver = mockComponentClassResolver(); RequestGlobals globals = mockRequestGlobals(); expect(globals.getActivePageName()).andReturn("someOtherPage"); train_canonicalizePageName(resolver, pageName, pageName); train_collectPageActivationContext(collector, pageName, 3); EventContext pageActivationContext = new ArrayEventContext(typeCoercer, 3); PageRenderRequestParameters parameters = new PageRenderRequestParameters(pageName, pageActivationContext, false); expect(linkEncoder.createPageRenderLink(parameters)).andReturn(link); replay(); LinkSource source = new LinkSourceImpl(null, collector, typeCoercer, resolver, linkEncoder, globals, null, emptyConfiguration); Link actual = source.createPageRenderLink(pageName, false); // Make sure the same link is returned. assertEquals(actual, link); verify(); }
private void testPageLinkCreation2(String pageName, boolean overrideContext, Object... context) { PageActivationContextCollector collector = mockPageActivationContextCollector(); LinkCreationListener2 listener = mockLinkCreationListener2(); ComponentEventLinkEncoder linkEncoder = mockComponentEventLinkEncoder(); Link link = mockLink(); ComponentClassResolver resolver = mockComponentClassResolver(); String canonical = "CanonicalPageName"; RequestGlobals globals = mockRequestGlobals(); // Ensure that the loopback logic is off; loopback logic is fully tested via an // integration test. expect(globals.getActivePageName()).andReturn("someOtherPage"); train_canonicalizePageName(resolver, pageName, canonical); if (!overrideContext) train_collectPageActivationContext(collector, canonical, context); PageRenderRequestParameters parameters = new PageRenderRequestParameters(canonical, new ArrayEventContext( typeCoercer, context), false); expect(linkEncoder.createPageRenderLink(parameters)).andReturn(link); listener.createdPageRenderLink(link, parameters); replay(); LinkSource source = new LinkSourceImpl(null, collector, typeCoercer, resolver, linkEncoder, globals, null, emptyConfiguration); source.getLinkCreationHub().addListener(listener); Object[] passedContext = overrideContext ? context : new Object[0]; Link returnedLink = source.createPageRenderLink(pageName, overrideContext, passedContext); assertSame(returnedLink, link); verify(); }
private void testPageLinkCreation(String pageName, boolean overrideContext, Object... context) { PageActivationContextCollector collector = mockPageActivationContextCollector(); LinkCreationListener2 listener = mockLinkCreationListener2(); ComponentEventLinkEncoder linkEncoder = mockComponentEventLinkEncoder(); Link link = mockLink(); ComponentClassResolver resolver = mockComponentClassResolver(); String canonical = "CanonicalPageName"; RequestGlobals globals = mockRequestGlobals(); // Ensure that the loopback logic is off; loopback logic is fully tested via an // integration test. expect(globals.getActivePageName()).andReturn("someOtherPage"); train_canonicalizePageName(resolver, pageName, canonical); if (!overrideContext) train_collectPageActivationContext(collector, canonical, context); PageRenderRequestParameters parameters = new PageRenderRequestParameters(canonical, new ArrayEventContext( typeCoercer, context), false); expect(linkEncoder.createPageRenderLink(parameters)).andReturn(link); listener.createdPageRenderLink(link, parameters); replay(); LinkSource source = new LinkSourceImpl(null, collector, typeCoercer, resolver, linkEncoder, globals, null, emptyConfiguration); source.getLinkCreationHub().addListener(listener); Object[] passedContext = overrideContext ? context : new Object[0]; Link returnedLink = source.createPageRenderLink(pageName, overrideContext, passedContext); assertSame(returnedLink, link); verify(); }