Search in sources :

Example 11 with ListItem

use of com.adobe.cq.wcm.core.components.models.ListItem in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class TeaserImplTest method testTeaserWithActions.

@Test
@SuppressWarnings("deprecation")
@Override
protected void testTeaserWithActions() {
    Teaser teaser = getTeaserUnderTest(TEASER_7);
    assertTrue(teaser.isActionsEnabled(), "Expected teaser with actions");
    assertEquals(2, teaser.getActions().size(), "Expected to find two actions");
    ListItem action = teaser.getActions().get(0);
    assertEquals("http://www.adobe.com", action.getPath(), "Action link does not match");
    assertEquals("Adobe", action.getTitle(), "Action text does not match");
    assertEquals("http://www.adobe.com", action.getURL());
    assertValidLink(action.getLink(), "http://www.adobe.com");
    Utils.testJSONExport(teaser, Utils.getTestExporterJSONPath(testBase, "teaser9"));
}
Also used : Teaser(com.adobe.cq.wcm.core.components.models.Teaser) ListItem(com.adobe.cq.wcm.core.components.models.ListItem) Test(org.junit.jupiter.api.Test)

Example 12 with ListItem

use of com.adobe.cq.wcm.core.components.models.ListItem in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class CarouselImplTest method verifyCarouselItems.

private void verifyCarouselItems(Object[][] expectedItems, List<ListItem> items, String carouselId) {
    assertEquals(expectedItems.length, items.size(), "The carousel contains a different number of items than expected.");
    int index = 0;
    for (ListItem item : items) {
        assertEquals(expectedItems[index][0], item.getName(), "The carousel item's name is not what was expected.");
        assertEquals(expectedItems[index][1], item.getTitle(), "The carousel item's title is not what was expected: " + item.getTitle());
        assertEquals(expectedItems[index][3], item.getPath(), "The carousel item's path is not what was expected: " + item.getPath());
        if (item.getData() != null) {
            assertNotEquals(item.getData().getJson(), "{}", "The carousel item's data layer string is empty");
            assertEquals(expectedItems[index][1], item.getData().getTitle(), "The carousel item's data layer title is not what was expected: " + item.getData().getTitle());
            assertEquals(expectedItems[index][2], item.getData().getType(), "The carousel item's data layer type is not what was expected: " + item.getData().getType());
            assertEquals(ComponentUtils.generateId(carouselId + "-item", (String) expectedItems[index][3]), item.getData().getId(), "The carousel item's data layer id is not what was expected: " + item.getData().getId());
        }
        index++;
    }
}
Also used : ListItem(com.adobe.cq.wcm.core.components.models.ListItem)

Example 13 with ListItem

use of com.adobe.cq.wcm.core.components.models.ListItem in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class TabsImplTest method verifyTabItems.

private void verifyTabItems(Object[][] expectedItems, List<ListItem> items) {
    assertEquals(expectedItems.length, items.size(), "The tabs contains a different number of items than expected.");
    int index = 0;
    for (ListItem item : items) {
        assertEquals(expectedItems[index][0], item.getName(), "The tabs item's name is not what was expected.");
        assertEquals(expectedItems[index][1], item.getTitle(), "The tabs item's title is not what was expected: " + item.getTitle());
        index++;
    }
}
Also used : ListItem(com.adobe.cq.wcm.core.components.models.ListItem)

Example 14 with ListItem

use of com.adobe.cq.wcm.core.components.models.ListItem in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class AccordionImplTest method verifyAccordionItems.

private void verifyAccordionItems(Object[][] expectedItems, List<ListItem> items) {
    assertEquals(expectedItems.length, items.size(), "The accordion contains a different number of items than expected.");
    int index = 0;
    for (ListItem item : items) {
        assertEquals(expectedItems[index][0], item.getName(), "The accordion item's name is not what was expected.");
        assertEquals(expectedItems[index][1], item.getTitle(), "The accordion item's title is not what was expected: " + item.getTitle());
        index++;
    }
}
Also used : ListItem(com.adobe.cq.wcm.core.components.models.ListItem)

Example 15 with ListItem

use of com.adobe.cq.wcm.core.components.models.ListItem in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class SearchResultServlet method doGet.

@Override
protected void doGet(@NotNull final SlingHttpServletRequest request, @NotNull final SlingHttpServletResponse response) throws IOException {
    Page currentPage = Optional.ofNullable(request.getResourceResolver().adaptTo(PageManager.class)).map(pm -> pm.getContainingPage(request.getResource())).orElse(null);
    if (currentPage != null) {
        SlingBindings bindings = new SlingBindings();
        bindings.setSling(new ScriptHelper(bundleContext, null, request, response));
        request.setAttribute(SlingBindings.class.getName(), bindings);
        Search searchComponent = getSearchComponent(request, currentPage);
        try {
            List<ListItem> results = getResults(request, searchComponent, currentPage.getPageManager());
            response.setContentType("application/json");
            response.setCharacterEncoding(StandardCharsets.UTF_8.name());
            new ObjectMapper().writeValue(response.getWriter(), results);
        } catch (NumberFormatException e) {
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
        }
    } else {
        response.sendError(HttpServletResponse.SC_NOT_FOUND);
    }
}
Also used : ResourceResolver(org.apache.sling.api.resource.ResourceResolver) ScriptHelper(org.apache.sling.scripting.core.ScriptHelper) TypePredicateEvaluator(com.day.cq.search.eval.TypePredicateEvaluator) StringUtils(org.apache.commons.lang3.StringUtils) Page(com.day.cq.wcm.api.Page) SlingBindings(org.apache.sling.api.scripting.SlingBindings) SlingHttpServletRequest(org.apache.sling.api.SlingHttpServletRequest) SearchResult(com.day.cq.search.result.SearchResult) PredicateConverter(com.day.cq.search.PredicateConverter) Map(java.util.Map) PageListItemImpl(com.adobe.cq.wcm.core.components.internal.models.v1.PageListItemImpl) Search(com.adobe.cq.wcm.core.components.models.Search) PN_FRAGMENT_VARIATION_PATH(com.adobe.cq.wcm.core.components.models.ExperienceFragment.PN_FRAGMENT_VARIATION_PATH) PathPredicateEvaluator(com.day.cq.search.eval.PathPredicateEvaluator) Session(javax.jcr.Session) Servlet(javax.servlet.Servlet) SlingHttpServletResponse(org.apache.sling.api.SlingHttpServletResponse) StandardCharsets(java.nio.charset.StandardCharsets) BundleContext(org.osgi.framework.BundleContext) Objects(java.util.Objects) PageManager(com.day.cq.wcm.api.PageManager) Nullable(org.jetbrains.annotations.Nullable) List(java.util.List) Query(com.day.cq.search.Query) Optional(java.util.Optional) SlingSafeMethodsServlet(org.apache.sling.api.servlets.SlingSafeMethodsServlet) NotNull(org.jetbrains.annotations.NotNull) FulltextPredicateEvaluator(com.day.cq.search.eval.FulltextPredicateEvaluator) ModelFactory(org.apache.sling.models.factory.ModelFactory) LinkHandler(com.adobe.cq.wcm.core.components.internal.link.LinkHandler) HashMap(java.util.HashMap) LanguageManager(com.day.cq.wcm.api.LanguageManager) ArrayList(java.util.ArrayList) Component(org.osgi.service.component.annotations.Component) StreamSupport(java.util.stream.StreamSupport) Activate(org.osgi.service.component.annotations.Activate) SearchImpl(com.adobe.cq.wcm.core.components.internal.models.v1.SearchImpl) QueryBuilder(com.day.cq.search.QueryBuilder) Iterator(java.util.Iterator) ListItem(com.adobe.cq.wcm.core.components.models.ListItem) HttpServletResponse(javax.servlet.http.HttpServletResponse) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Resource(org.apache.sling.api.resource.Resource) IOException(java.io.IOException) LiveRelationshipManager(com.day.cq.wcm.msm.api.LiveRelationshipManager) LocalizationUtils(com.adobe.cq.wcm.core.components.internal.LocalizationUtils) PredicateGroup(com.day.cq.search.PredicateGroup) Template(com.day.cq.wcm.api.Template) NameConstants(com.day.cq.wcm.api.NameConstants) Reference(org.osgi.service.component.annotations.Reference) PageManager(com.day.cq.wcm.api.PageManager) SlingBindings(org.apache.sling.api.scripting.SlingBindings) Search(com.adobe.cq.wcm.core.components.models.Search) Page(com.day.cq.wcm.api.Page) ListItem(com.adobe.cq.wcm.core.components.models.ListItem) ScriptHelper(org.apache.sling.scripting.core.ScriptHelper) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)

Aggregations

ListItem (com.adobe.cq.wcm.core.components.models.ListItem)15 Test (org.junit.jupiter.api.Test)5 Teaser (com.adobe.cq.wcm.core.components.models.Teaser)4 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)3 Map (java.util.Map)3 LocalizationUtils (com.adobe.cq.wcm.core.components.internal.LocalizationUtils)2 LinkHandler (com.adobe.cq.wcm.core.components.internal.link.LinkHandler)2 PageListItemImpl (com.adobe.cq.wcm.core.components.internal.models.v1.PageListItemImpl)2 SearchImpl (com.adobe.cq.wcm.core.components.internal.models.v1.SearchImpl)2 PN_FRAGMENT_VARIATION_PATH (com.adobe.cq.wcm.core.components.models.ExperienceFragment.PN_FRAGMENT_VARIATION_PATH)2 Search (com.adobe.cq.wcm.core.components.models.Search)2 PredicateConverter (com.day.cq.search.PredicateConverter)2 PredicateGroup (com.day.cq.search.PredicateGroup)2 Query (com.day.cq.search.Query)2 QueryBuilder (com.day.cq.search.QueryBuilder)2 FulltextPredicateEvaluator (com.day.cq.search.eval.FulltextPredicateEvaluator)2 PathPredicateEvaluator (com.day.cq.search.eval.PathPredicateEvaluator)2 TypePredicateEvaluator (com.day.cq.search.eval.TypePredicateEvaluator)2 SearchResult (com.day.cq.search.result.SearchResult)2 LanguageManager (com.day.cq.wcm.api.LanguageManager)2