fix #453 : improve sitePath
This commit is contained in:
parent
9dc7497be0
commit
26b4ad5b25
2 changed files with 35 additions and 2 deletions
|
@ -78,6 +78,10 @@ import com.ibm.icu.text.SimpleDateFormat;
|
|||
|
||||
public class ViewHelper implements Serializable {
|
||||
|
||||
private static final Pattern LOCAL_PATH_PATTERN = Pattern.compile("^file:/+[a-zA-Z]:");
|
||||
|
||||
private static final Pattern SHARED_FOLDER_PATTERN = Pattern.compile("^file:/+[^/]\\.");
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ViewHelper.class);
|
||||
|
@ -477,7 +481,16 @@ public class ViewHelper implements Serializable {
|
|||
public Object getSitePath(final Map<String, Object> docMap) {
|
||||
final Object urlLink = docMap.get("urlLink");
|
||||
if (urlLink != null) {
|
||||
return StringUtils.abbreviate(urlLink.toString().replaceFirst("^[a-zA-Z0-9]*:/?/*", ""), sitePathLength);
|
||||
final String returnUrl;
|
||||
final String url = urlLink.toString();
|
||||
if (LOCAL_PATH_PATTERN.matcher(url).find() || SHARED_FOLDER_PATTERN.matcher(url).find()) {
|
||||
returnUrl = url.replaceFirst("^file:/+", "");
|
||||
} else if (url.startsWith("file:")) {
|
||||
returnUrl = url.replaceFirst("^file:/+", "/");
|
||||
} else {
|
||||
returnUrl = url.replaceFirst("^[a-zA-Z0-9]*:/+", "");
|
||||
}
|
||||
return StringUtils.abbreviate(returnUrl, sitePathLength);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -118,6 +118,11 @@ public class ViewHelperTest extends UnitFessTestCase {
|
|||
docMap.put("urlLink", urlLink);
|
||||
assertEquals(sitePath, viewHelper.getSitePath(docMap));
|
||||
|
||||
urlLink = "://www.qwerty.jp";
|
||||
sitePath = "www.qwerty.jp";
|
||||
docMap.put("urlLink", urlLink);
|
||||
assertEquals(sitePath, viewHelper.getSitePath(docMap));
|
||||
|
||||
urlLink = "www.google.com";
|
||||
sitePath = "www.google.com";
|
||||
docMap.put("urlLink", urlLink);
|
||||
|
@ -128,8 +133,23 @@ public class ViewHelperTest extends UnitFessTestCase {
|
|||
docMap.put("urlLink", urlLink);
|
||||
assertEquals(sitePath, viewHelper.getSitePath(docMap));
|
||||
|
||||
urlLink = "file:/home/user/";
|
||||
sitePath = "/home/user/";
|
||||
docMap.put("urlLink", urlLink);
|
||||
assertEquals(sitePath, viewHelper.getSitePath(docMap));
|
||||
|
||||
urlLink = "file://home/user/";
|
||||
sitePath = "home/user/";
|
||||
sitePath = "/home/user/";
|
||||
docMap.put("urlLink", urlLink);
|
||||
assertEquals(sitePath, viewHelper.getSitePath(docMap));
|
||||
|
||||
urlLink = "file://c:/home/user/";
|
||||
sitePath = "c:/home/user/";
|
||||
docMap.put("urlLink", urlLink);
|
||||
assertEquals(sitePath, viewHelper.getSitePath(docMap));
|
||||
|
||||
urlLink = "file://1.2.3.4/user/";
|
||||
sitePath = "1.2.3.4/user/";
|
||||
docMap.put("urlLink", urlLink);
|
||||
assertEquals(sitePath, viewHelper.getSitePath(docMap));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue