package org.fenixedu.cms.domain;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Locale;
import org.fenixedu.bennu.core.domain.User;
import org.fenixedu.bennu.core.util.CoreConfiguration;
import org.fenixedu.commons.StringNormalizer;
import org.fenixedu.commons.i18n.LocalizedString;
import org.joda.time.DateTime;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.FenixFrameworkRunner;
@RunWith(FenixFrameworkRunner.class)
public class TestPage extends TestCMS {
@Test
public void createPage() {
User user = CmsTestUtils.createAuthenticatedUser("createPage");
Site site = CmsTestUtils.createSite(user, "createPage");
String methodName = "createPage";
LocalizedString pageName =
new LocalizedString(Locale.UK, "page name uk " + methodName).with(Locale.US, "page name us " + methodName);
Page page = new Page(site, pageName);
DateTime dt = new DateTime();
assertEquals(pageName, page.getName());
assertEquals("slug should be initialized using page name", StringNormalizer.slugify(pageName.getContent()),
page.getSlug());
assertEquals(null, page.getTemplateType());
assertEquals(false, page.getPublished());
assertTrue(equalDates(dt, page.getCreationDate()));
assertTrue(equalDates(dt, page.getModificationDate()));
assertEquals(user, page.getCreatedBy());
assertEquals(site, page.getSite());
assertTrue(page.getComponentsSet().isEmpty());
assertTrue(page.getMenuItemsSet().isEmpty());
assertEquals(null, page.getTemplateType());
assertEquals(null, page.getTemplate());
assertFalse(page.getStaticPost().isPresent());
assertEquals(CoreConfiguration.getConfiguration().applicationUrl() + "/" + site.getBaseUrl() + "/" + page.getSlug(),
page.getAddress());
}
@Test
public void checkValidSlug() {
User user = CmsTestUtils.createAuthenticatedUser("checkValidSlug");
Site site = CmsTestUtils.createSite(user, "checkValidSlug");
Page page1 = CmsTestUtils.createPage(site, "checkValidSlug1");
Page page2 = CmsTestUtils.createPage(site, "checkValidSlug2");
assertTrue(page1.isValidSlug("xpto"));
assertTrue(page1.isValidSlug(page1.getSlug()));
assertFalse(page1.isValidSlug(page2.getSlug()));
}
}