Search in sources :

Example 31 with Page

use of com.day.cq.wcm.api.Page in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class ClientLibrariesImplTest method testGetCategoriesWithInjectedFilter.

@Test
void testGetCategoriesWithInjectedFilter() {
    PageManager pageManager = context.resourceResolver().adaptTo(PageManager.class);
    Page page = pageManager.getPage(ROOT_PAGE);
    Map<String, Object> attributes = new HashMap<>();
    attributes.put(ClientLibraries.OPTION_RESOURCE_TYPES, Utils.getPageResourceTypes(page, context.request(), mock(ModelFactory.class)));
    attributes.put("filter", ".*teaser.*");
    ClientLibraries clientlibs = getClientLibrariesUnderTest(ROOT_PAGE, attributes);
    Set<String> categories = new HashSet<>();
    categories.add(TEASER_CATEGORY);
    assertEquals(categories, ((ClientLibrariesImpl) clientlibs).getCategoriesFromComponents());
}
Also used : PageManager(com.day.cq.wcm.api.PageManager) HashMap(java.util.HashMap) Page(com.day.cq.wcm.api.Page) ClientLibraries(com.adobe.cq.wcm.core.components.models.ClientLibraries) HashSet(java.util.HashSet) Test(org.junit.jupiter.api.Test)

Example 32 with Page

use of com.day.cq.wcm.api.Page in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class ClientLibrariesImplTest method testGetCategoriesWithLoginException.

/**
 * Same as {@link #testGetCategories()} however a login exception will occur when fetching the
 * resource resolver.
 */
@Test
void testGetCategoriesWithLoginException() throws Exception {
    PageManager pageManager = context.pageManager();
    Page page = pageManager.getPage(ROOT_PAGE);
    Map<String, Object> attributes = new HashMap<>();
    attributes.put(ClientLibraries.OPTION_RESOURCE_TYPES, Utils.getPageResourceTypes(page, context.request(), mock(ModelFactory.class)));
    ClientLibrariesImpl clientlibs = Objects.requireNonNull((ClientLibrariesImpl) getClientLibrariesUnderTest(ROOT_PAGE, attributes));
    ResourceResolverFactory factory = mock(ResourceResolverFactory.class);
    doThrow(new LoginException()).when(factory).getServiceResourceResolver(anyMap());
    clientlibs.resolverFactory = factory;
    assertEquals(new HashSet<>(), clientlibs.getCategoriesFromComponents());
}
Also used : PageManager(com.day.cq.wcm.api.PageManager) ResourceResolverFactory(org.apache.sling.api.resource.ResourceResolverFactory) HashMap(java.util.HashMap) LoginException(org.apache.sling.api.resource.LoginException) Page(com.day.cq.wcm.api.Page) Test(org.junit.jupiter.api.Test)

Example 33 with Page

use of com.day.cq.wcm.api.Page in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class ComponentImplTest method getReferencedComponentUnderTest.

private Component getReferencedComponentUnderTest(String resourcePath, String currentPagePath, String referencerPath, Object... properties) {
    Resource resource = context.currentResource(resourcePath);
    if (resource != null && properties != null) {
        context.contentPolicyMapping(resource.getResourceType(), properties);
    }
    Resource referencer = context.resourceResolver().getResource(referencerPath);
    SlingBindings slingBindings = new SlingBindings();
    ComponentContext componentContext = mock(ComponentContext.class);
    ComponentContext parentContext = mock(ComponentContext.class);
    when(parentContext.getResource()).thenReturn(referencer);
    when(componentContext.getParent()).thenReturn(parentContext);
    Page currentPage = context.pageManager().getPage(currentPagePath);
    slingBindings.put(WCMBindings.COMPONENT_CONTEXT, componentContext);
    slingBindings.put(WCMBindings.CURRENT_PAGE, currentPage);
    MockSlingHttpServletRequest request = context.request();
    request.setAttribute(SlingBindings.class.getName(), slingBindings);
    return request.adaptTo(Component.class);
}
Also used : SlingBindings(org.apache.sling.api.scripting.SlingBindings) ComponentContext(com.day.cq.wcm.api.components.ComponentContext) MockSlingHttpServletRequest(org.apache.sling.testing.mock.sling.servlet.MockSlingHttpServletRequest) Resource(org.apache.sling.api.resource.Resource) Page(com.day.cq.wcm.api.Page)

Example 34 with Page

use of com.day.cq.wcm.api.Page in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class SocialMediaHelperImplTest method setUp.

@BeforeEach
void setUp() {
    context.load().json(TEST_BASE + CoreComponentTestContext.TEST_CONTENT_JSON, CONTENT_ROOT);
    context.registerService(AdapterFactory.class, new AdapterFactory() {

        @Override
        @SuppressWarnings("unchecked")
        public <AdapterType> AdapterType getAdapter(@NotNull Object o, @NotNull Class<AdapterType> clazz) {
            Object result = null;
            switch(clazz.getName()) {
                case CLASS_PRODUCT:
                    if (o instanceof Resource) {
                        result = MockCommerceFactory.getProduct((Resource) o);
                    }
                    break;
                case CLASS_COMMERCE_SERVICE:
                    if (o instanceof Resource) {
                        result = MockCommerceFactory.getCommerceService((Resource) o);
                    }
                    break;
                case CLASS_XF_SOCIAL_VARIATION:
                    if (o instanceof Page) {
                        result = MockXFFactory.getExperienceFragmentSocialVariation((Page) o);
                    }
            }
            return (AdapterType) result;
        }
    }, new HashMap<String, Object>() {

        {
            put(AdapterFactory.ADAPTABLE_CLASSES, new String[] { CLASS_RESOURCE, CLASS_PAGE });
            put(AdapterFactory.ADAPTER_CLASSES, new String[] { CLASS_PRODUCT, CLASS_COMMERCE_SERVICE, CLASS_XF_SOCIAL_VARIATION });
        }
    });
}
Also used : AdapterFactory(org.apache.sling.api.adapter.AdapterFactory) Resource(org.apache.sling.api.resource.Resource) Page(com.day.cq.wcm.api.Page) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 35 with Page

use of com.day.cq.wcm.api.Page in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class NavigationItemImplTest method test.

@Test
protected void test() {
    Page page = mock(Page.class);
    when(page.getProperties()).thenReturn(ValueMap.EMPTY);
    LinkHandler linkHandler = mock(LinkHandler.class);
    Component component = mock(Component.class);
    NavigationItemImpl navigationItem = new NavigationItemImpl(page, true, true, linkHandler, 0, Collections.emptyList(), "id", component);
    assertEquals(page, navigationItem.getPage());
    assertTrue(navigationItem.isActive());
    assertEquals(Collections.emptyList(), navigationItem.getChildren());
    assertEquals(0, navigationItem.getLevel());
}
Also used : Page(com.day.cq.wcm.api.Page) Component(com.day.cq.wcm.api.components.Component) LinkHandler(com.adobe.cq.wcm.core.components.internal.link.LinkHandler) Test(org.junit.jupiter.api.Test)

Aggregations

Page (com.day.cq.wcm.api.Page)100 Resource (org.apache.sling.api.resource.Resource)45 PageManager (com.day.cq.wcm.api.PageManager)34 Test (org.junit.jupiter.api.Test)22 ResourceResolver (org.apache.sling.api.resource.ResourceResolver)18 ValueMap (org.apache.sling.api.resource.ValueMap)15 ArrayList (java.util.ArrayList)13 HashMap (java.util.HashMap)12 SlingBindings (org.apache.sling.api.scripting.SlingBindings)12 NotNull (org.jetbrains.annotations.NotNull)10 Test (org.junit.Test)9 HashSet (java.util.HashSet)6 Map (java.util.Map)6 Optional (java.util.Optional)6 SlingHttpServletRequest (org.apache.sling.api.SlingHttpServletRequest)6 Nullable (org.jetbrains.annotations.Nullable)6 LinkHandler (com.adobe.cq.wcm.core.components.internal.link.LinkHandler)5 Template (com.day.cq.wcm.api.Template)5 StringUtils (org.apache.commons.lang3.StringUtils)5 Before (org.junit.Before)5