SLING-8377 : including fixes for UrlBuilder and unit tests
Closes #10
diff --git a/src/main/java/org/apache/sling/dynamicinclude/impl/UrlBuilder.java b/src/main/java/org/apache/sling/dynamicinclude/impl/UrlBuilder.java
index 1905866..1182a63 100644
--- a/src/main/java/org/apache/sling/dynamicinclude/impl/UrlBuilder.java
+++ b/src/main/java/org/apache/sling/dynamicinclude/impl/UrlBuilder.java
@@ -55,6 +55,9 @@
}
private static boolean includeSelectorNotAlreadyPresent(String[] currentSelectors, String includeSelector) {
+ if (includeSelector.isEmpty()) {
+ return false;
+ }
return !Arrays.asList(currentSelectors).contains(includeSelector);
}
}
diff --git a/src/test/java/org/apache/sling/dynamicinclude/impl/UrlBuilderTest.java b/src/test/java/org/apache/sling/dynamicinclude/impl/UrlBuilderTest.java
index c84e7b1..e477efe 100644
--- a/src/test/java/org/apache/sling/dynamicinclude/impl/UrlBuilderTest.java
+++ b/src/test/java/org/apache/sling/dynamicinclude/impl/UrlBuilderTest.java
@@ -53,6 +53,39 @@
}
@Test
+ public void shouldNotAppendTheIncludeSelectorToUrlWhenNotSetAndAppendRequestPathInfoSelectorWhenNotSet() {
+ givenAnHtmlRequestForResource("/resource/path");
+ withSelectorString(null);
+ boolean isSyntheticResource = false;
+
+ String actualResult = UrlBuilder.buildUrl("", "apps/example/resource/type", isSyntheticResource, config, requestPathInfo);
+
+ assertThat(actualResult, is("/resource/path.html"));
+ }
+
+ @Test
+ public void shouldNotAppendTheIncludeSelectorToUrlWhenNotSetAndAppendRequestPathInfoSelectorWhenSet() {
+ givenAnHtmlRequestForResource("/resource/path");
+ withSelectorString("foo.bar.baz");
+ boolean isSyntheticResource = false;
+
+ String actualResult = UrlBuilder.buildUrl("", "apps/example/resource/type", isSyntheticResource, config, requestPathInfo);
+
+ assertThat(actualResult, is("/resource/path.foo.bar.baz.html"));
+ }
+
+ @Test
+ public void shouldAppendTheIncludeSelectorToUrlWhenSetAndNotAppendRequestPathInfoSelectorWhenNotSet() {
+ givenAnHtmlRequestForResource("/resource/path");
+ withSelectorString(null);
+ boolean isSyntheticResource = false;
+
+ String actualResult = UrlBuilder.buildUrl("include", "apps/example/resource/type", isSyntheticResource, config, requestPathInfo);
+
+ assertThat(actualResult, is("/resource/path.include.html"));
+ }
+
+ @Test
public void shouldAppendTheIncludeSelectorToUrlThatAlreadyContainsOtherSelectors() {
givenAnHtmlRequestForResource("/resource/path");
withSelectorString("foo.bar.baz");
@@ -135,7 +168,7 @@
verify(requestPathInfo,times(0)).getSuffix();
assertThat(actualResult, is("/resource/path.foo.include.html"));
}
-
+
@Test
public void shouldAppendExtensionForSyntheticResources() {
givenAnHtmlRequestForResource("/resource/path");