@Test public void resolveViewNameTabletDeviceSuffixFallback() throws Exception { device.setDeviceType(DeviceType.TABLET); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); viewResolver.setTabletSuffix(".tab"); viewResolver.setEnableFallback(true); expect(delegateViewResolver.resolveViewName(viewName + ".tab", locale)).andReturn(null); expect(delegateViewResolver.resolveViewName(viewName, locale)).andReturn(view); replay(delegateViewResolver, view); View result = viewResolver.resolveViewName(viewName, locale); assertSame("Invalid view", view, result); verify(delegateViewResolver, view); }
@Test public void resolveViewNameTabletDeviceTabletSuffixRedirect() throws Exception { this.viewName = "redirect:about"; device.setDeviceType(DeviceType.TABLET); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); viewResolver.setTabletSuffix(".tab"); replayMocks("redirect:about"); }
@Test public void resolveViewNameTabletDeviceNoSitePreferenceTabletSuffix() throws Exception { device.setDeviceType(DeviceType.TABLET); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); viewResolver.setTabletSuffix(".tab"); replayMocks(viewName + ".tab"); }
@Test public void resolveViewNameTabletDeviceNoSitePreferenceTabletPrefixAndSuffix() throws Exception { device.setDeviceType(DeviceType.TABLET); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); viewResolver.setTabletPrefix("tablet/"); viewResolver.setTabletSuffix(".tab"); replayMocks("tablet/" + viewName + ".tab"); }
@Test public void resolveViewNameTabletDeviceTabletSitePreferenceTabletSuffix() throws Exception { device.setDeviceType(DeviceType.TABLET); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET); viewResolver.setTabletSuffix(".tab"); replayMocks(viewName + ".tab"); }
@Test public void resolveViewNameNormalDeviceTabletSitePreferenceTabletSuffix() throws Exception { device.setDeviceType(DeviceType.NORMAL); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET); viewResolver.setTabletSuffix(".tab"); replayMocks(viewName + ".tab"); }
@Test public void resolveViewNameMobileDeviceTabletSitePreferenceTabletSuffix() throws Exception { device.setDeviceType(DeviceType.MOBILE); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET); viewResolver.setTabletSuffix(".tab"); replayMocks(viewName + ".tab"); }
@Test public void resolveViewNameMobileDeviceTabletSitePreferenceTabletPrefixAndSuffix() throws Exception { device.setDeviceType(DeviceType.MOBILE); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET); viewResolver.setTabletPrefix("tablet/"); viewResolver.setTabletSuffix(".tab"); replayMocks("tablet/" + viewName + ".tab"); }
@Test public void resolveViewNameNormalDeviceTabletSitePreferenceTabletPrefixAndSuffix() throws Exception { device.setDeviceType(DeviceType.NORMAL); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET); viewResolver.setTabletPrefix("tablet/"); viewResolver.setTabletSuffix(".tab"); replayMocks("tablet/" + viewName + ".tab"); }
@Test public void resolveViewNameTabletDeviceTabletSitePreferenceTabletPrefixAndSuffix() throws Exception { device.setDeviceType(DeviceType.TABLET); request.setAttribute(DeviceUtils.CURRENT_DEVICE_ATTRIBUTE, device); request.setAttribute(SitePreferenceHandler.CURRENT_SITE_PREFERENCE_ATTRIBUTE, SitePreference.TABLET); viewResolver.setTabletPrefix("tablet/"); viewResolver.setTabletSuffix(".tab"); replayMocks("tablet/" + viewName + ".tab"); }
/** * Create a {@link LiteDeviceDelegatingViewResolver} delegating to the specified * {@link ViewResolver}. * @param delegate the view resolver to delegate to * @param delegatingOrder the order of the {@link LiteDeviceDelegatingViewResolver} * @return a {@link LiteDeviceDelegatingViewResolver} handling the specified resolver */ public LiteDeviceDelegatingViewResolver createViewResolver(ViewResolver delegate, int delegatingOrder) { LiteDeviceDelegatingViewResolver resolver = new LiteDeviceDelegatingViewResolver( delegate); resolver.setEnableFallback(this.properties.isEnableFallback()); resolver.setNormalPrefix(this.properties.getNormalPrefix()); resolver.setNormalSuffix(this.properties.getNormalSuffix()); resolver.setMobilePrefix(this.properties.getMobilePrefix()); resolver.setMobileSuffix(this.properties.getMobileSuffix()); resolver.setTabletPrefix(this.properties.getTabletPrefix()); resolver.setTabletSuffix(this.properties.getTabletSuffix()); resolver.setOrder(delegatingOrder); return resolver; }
/** * Create a {@link LiteDeviceDelegatingViewResolver} delegating to the specified * {@link ViewResolver}. * @param delegate the view resolver to delegate to * @param delegatingOrder the order of the {@link LiteDeviceDelegatingViewResolver} * @return a {@link LiteDeviceDelegatingViewResolver} handling the specified resolver */ public LiteDeviceDelegatingViewResolver createViewResolver(ViewResolver delegate, int delegatingOrder) { LiteDeviceDelegatingViewResolver resolver = new LiteDeviceDelegatingViewResolver( delegate); resolver.setEnableFallback(this.properties.isEnableFallback()); resolver.setNormalPrefix(this.properties.getNormalPrefix()); resolver.setNormalSuffix(this.properties.getNormalSuffix()); resolver.setMobilePrefix(this.properties.getMobilePrefix()); resolver.setMobileSuffix(this.properties.getMobileSuffix()); resolver.setTabletPrefix(this.properties.getTabletPrefix()); resolver.setTabletSuffix(this.properties.getTabletSuffix()); resolver.setOrder(delegatingOrder); return resolver; }