Search in sources :

Example 26 with ExperienceFragment

use of com.adobe.cq.wcm.core.components.models.ExperienceFragment in project aem-core-wcm-components by adobe.

the class ClientLibrariesImplTest method testUtilsGetXFResourceTypes.

// 
// Below are tests for the specific methods in com.adobe.cq.wcm.core.components.internal.Utils
// 
@Test
void testUtilsGetXFResourceTypes() {
    Resource xfResource = context.currentResource(EXPERIENCE_FRAGMENT_PATH);
    ModelFactory modelFactory = mock(ModelFactory.class);
    doAnswer(invocation -> {
        Object[] args = invocation.getArguments();
        Resource resource = (Resource) args[1];
        String fragmentPath = resource.getValueMap().get("fragmentVariationPath", String.class);
        ExperienceFragment experienceFragment = mock(ExperienceFragment.class);
        when(experienceFragment.getLocalizedFragmentVariationPath()).thenReturn(fragmentPath);
        return experienceFragment;
    }).when(modelFactory).getModelFromWrappedRequest(any(SlingHttpServletRequest.class), any(Resource.class), eq(ExperienceFragment.class));
    Set<String> resourceTypes = Utils.getXFResourceTypes(xfResource, context.request(), modelFactory);
    Set<String> expectedResourceTypes = new HashSet<>(Arrays.asList("core/wcm/components/page/v2/page", "cq:Page", "core/wcm/components/teaser/v1/teaser", "wcm/foundation/components/responsivegrid"));
    assertEquals(expectedResourceTypes, resourceTypes);
}
Also used : Resource(org.apache.sling.api.resource.Resource) ModelFactory(org.apache.sling.models.factory.ModelFactory) SlingHttpServletRequest(org.apache.sling.api.SlingHttpServletRequest) ExperienceFragment(com.adobe.cq.wcm.core.components.models.ExperienceFragment) HashSet(java.util.HashSet) Test(org.junit.jupiter.api.Test)

Example 27 with ExperienceFragment

use of com.adobe.cq.wcm.core.components.models.ExperienceFragment in project aem-core-wcm-components by adobe.

the class ExperienceFragmentImplTest method testValidXFInPageWithLocalizationWithSameCountrySiteLanguage.

/* ----------------- Tests for a site with country-language localization (eu/mysite/en) -----------------------  */
/**
 * Site with country-language localization (optional): eu/mysite/en
 * XF component is defined in the page
 * XF component points to the same country-language branch as the page
 */
@Test
void testValidXFInPageWithLocalizationWithSameCountrySiteLanguage() {
    ExperienceFragment experienceFragment = getExperienceFragmentUnderTest(CH_MYSITE_FR_PAGE + "/jcr:content/root/xf-component-30");
    assertEquals(XF_NAME, experienceFragment.getName());
    Utils.testJSONExport(experienceFragment, Utils.getTestExporterJSONPath(TEST_BASE, "xf30"));
}
Also used : ExperienceFragment(com.adobe.cq.wcm.core.components.models.ExperienceFragment) Test(org.junit.jupiter.api.Test)

Example 28 with ExperienceFragment

use of com.adobe.cq.wcm.core.components.models.ExperienceFragment in project aem-core-wcm-components by adobe.

the class ExperienceFragmentImplTest method testValidXFInPageWithoutLocalization.

/* ------------------------------- Tests for a site with no localization structure -----------------------------  */
/**
 * No localization structure
 * XF component is defined in the page
 * fragmentVariationPath is valid
 */
@Test
void testValidXFInPageWithoutLocalization() {
    ExperienceFragment experienceFragment = getExperienceFragmentUnderTest(NO_LOC_PAGE + "/jcr:content/root/xf-component-1");
    assertEquals(XF_NAME, experienceFragment.getName());
    Utils.testJSONExport(experienceFragment, Utils.getTestExporterJSONPath(TEST_BASE, "xf1"));
}
Also used : ExperienceFragment(com.adobe.cq.wcm.core.components.models.ExperienceFragment) Test(org.junit.jupiter.api.Test)

Example 29 with ExperienceFragment

use of com.adobe.cq.wcm.core.components.models.ExperienceFragment in project aem-core-wcm-components by adobe.

the class ExperienceFragmentImplTest method testValidXFInPageWithLocalizationWithSameBlueprint.

/* ------------------------------- Tests for a site with blueprint / live copy -----------------  */
/**
 * Site with region localization (current page is a blueprint)
 * XF component is defined in the page
 * XF component points to the same region branch as the page
 */
@Test
void testValidXFInPageWithLocalizationWithSameBlueprint() {
    ExperienceFragment experienceFragment = getExperienceFragmentUnderTest(BLUEPRINT_PAGE + "/jcr:content/root/xf-component-50");
    assertEquals(XF_NAME, experienceFragment.getName());
    Utils.testJSONExport(experienceFragment, Utils.getTestExporterJSONPath(TEST_BASE, "xf50"));
}
Also used : ExperienceFragment(com.adobe.cq.wcm.core.components.models.ExperienceFragment) Test(org.junit.jupiter.api.Test)

Example 30 with ExperienceFragment

use of com.adobe.cq.wcm.core.components.models.ExperienceFragment in project aem-core-wcm-components by adobe.

the class ExperienceFragmentImplTest method testEmptyXFInPageWithLocalization.

/**
 * Site with language localization
 * XF component is defined in the page
 * fragmentVariationPath is empty
 */
@Test
void testEmptyXFInPageWithLocalization() {
    ExperienceFragment experienceFragment = getExperienceFragmentUnderTest(EN_PAGE + "/jcr:content/root/xf-component-13");
    Utils.testJSONExport(experienceFragment, Utils.getTestExporterJSONPath(TEST_BASE, "xf13"));
}
Also used : ExperienceFragment(com.adobe.cq.wcm.core.components.models.ExperienceFragment) Test(org.junit.jupiter.api.Test)

Aggregations

ExperienceFragment (com.adobe.cq.wcm.core.components.models.ExperienceFragment)90 Test (org.junit.jupiter.api.Test)88 SlingHttpServletRequest (org.apache.sling.api.SlingHttpServletRequest)4 Resource (org.apache.sling.api.resource.Resource)4 LocalizationUtils (com.adobe.cq.wcm.core.components.util.LocalizationUtils)2 ExperienceFragmentsConstants (com.adobe.cq.xf.ExperienceFragmentsConstants)2 LanguageManager (com.day.cq.wcm.api.LanguageManager)2 NN_CONTENT (com.day.cq.wcm.api.NameConstants.NN_CONTENT)2 Page (com.day.cq.wcm.api.Page)2 PageManager (com.day.cq.wcm.api.PageManager)2 Template (com.day.cq.wcm.api.Template)2 LiveRelationshipManager (com.day.cq.wcm.msm.api.LiveRelationshipManager)2 Text (com.day.text.Text)2 HashSet (java.util.HashSet)2 Optional (java.util.Optional)2 PostConstruct (javax.annotation.PostConstruct)2 StringUtils (org.apache.commons.lang3.StringUtils)2 ResourceResolver (org.apache.sling.api.resource.ResourceResolver)2 Model (org.apache.sling.models.annotations.Model)2 InjectionStrategy (org.apache.sling.models.annotations.injectorspecific.InjectionStrategy)2