### Question:
NormalSitePathUrlFactory extends AbstractSitePathUrlFactory implements SiteUrlFactory { public boolean isRequestForSite(HttpServletRequest request) { String requestURI = request.getRequestURI(); if (hasMobilePath() && (requestURI.startsWith(getFullMobilePath()) || requestURI.equals(getCleanMobilePath()))) { return false; } else if (hasTabletPath() && (requestURI.startsWith(getFullTabletPath()) || requestURI.equals(getCleanTabletPath()))) { return false; } return true; } NormalSitePathUrlFactory(final String mobilePath);  NormalSitePathUrlFactory(final String mobilePath, final String rootPath);  NormalSitePathUrlFactory(final String mobilePath, final String tabletPath, final String rootPath); boolean isRequestForSite(HttpServletRequest request); String createSiteUrl(HttpServletRequest request);  }### Answer:
@Test public void notRequestForRootSiteWithPathTablet() { request.setRequestURI("/tab/marvelous/"); assertFalse(basicRootFactory.isRequestForSite(request)); }
@Test public void notRequestForPathSiteWithPathMobile() { request.setRequestURI("/showcase/mob/marvelous/"); assertFalse(basicPathFactory.isRequestForSite(request)); }
@Test public void notRequestForPathSiteWithPathTablet() { request.setRequestURI("/showcase/tab/marvelous/"); assertFalse(basicPathFactory.isRequestForSite(request)); }
@Test public void isRequestForRootSite() { request.setRequestURI("/"); assertTrue(basicRootFactory.isRequestForSite(request)); }
@Test public void isRequestForPathSite() { request.setRequestURI("/showcase/"); assertTrue(basicPathFactory.isRequestForSite(request)); }
@Test public void notRequestForRootSiteMobile() { request.setRequestURI("/mob/"); assertFalse(basicRootFactory.isRequestForSite(request)); }
@Test public void notRequestForRootSiteTablet() { request.setRequestURI("/tab/"); assertFalse(basicRootFactory.isRequestForSite(request)); }
@Test public void notRequestForPathSiteMobile() { request.setRequestURI("/showcase/mob/"); assertFalse(basicPathFactory.isRequestForSite(request)); }
@Test public void notRequestForPathSiteTablet() { request.setRequestURI("/showcase/tab/"); assertFalse(basicPathFactory.isRequestForSite(request)); }
@Test public void notRequestForRootSiteWithPathMobile() { request.setRequestURI("/mob/marvelous/"); assertFalse(basicRootFactory.isRequestForSite(request)); }