protected void testCanonicalURL( String virtualHostname, String portalDomain, Group group, Layout layout, Locale[] groupAvailableLocales, Locale groupDefaultLocale, String i18nPath, String expectedLayoutFriendlyURL, boolean forceLayoutFriendlyURL) throws Exception { if (!group.isGuest()) { group = GroupTestUtil.updateDisplaySettings( group.getGroupId(), groupAvailableLocales, groupDefaultLocale); } String completeURL = generateURL(portalDomain, i18nPath, group.getFriendlyURL(), layout.getFriendlyURL()); setVirtualHost(layout.getCompanyId(), virtualHostname); ThemeDisplay themeDisplay = getThemeDisplay(group); themeDisplay.setPortalURL("http://" + portalDomain + ":8080/"); String actualCanonicalURL = PortalUtil.getCanonicalURL(completeURL, themeDisplay, layout, forceLayoutFriendlyURL); String expectedGroupFriendlyURL = StringPool.BLANK; if (!group.isGuest()) { expectedGroupFriendlyURL = group.getFriendlyURL(); } String expectedPortalDomain = virtualHostname; if (StringUtil.equalsIgnoreCase(virtualHostname, "localhost") && !StringUtil.equalsIgnoreCase(portalDomain, "localhost")) { expectedPortalDomain = portalDomain; } String expectedCanonicalURL = generateURL( expectedPortalDomain, StringPool.BLANK, expectedGroupFriendlyURL, expectedLayoutFriendlyURL); Assert.assertEquals(expectedCanonicalURL, actualCanonicalURL); }