/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.blogs.util.test; import com.liferay.blogs.model.BlogsEntry; import com.liferay.blogs.service.BlogsEntryLocalServiceUtil; import com.liferay.portal.kernel.editor.EditorConstants; import com.liferay.portal.kernel.service.ServiceContext; import com.liferay.portal.kernel.test.util.RandomTestUtil; import com.liferay.portal.kernel.util.CalendarFactoryUtil; import com.liferay.portal.kernel.util.StringBundler; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.kernel.workflow.WorkflowConstants; import com.liferay.portal.kernel.workflow.WorkflowThreadLocal; import java.io.Serializable; import java.util.Calendar; import java.util.HashMap; import java.util.Map; import org.junit.Assert; /** * @author Zsolt Berentey */ public class BlogsTestUtil { public static BlogsEntry addEntryWithWorkflow( long userId, String title, boolean approved, ServiceContext serviceContext) throws Exception { boolean workflowEnabled = WorkflowThreadLocal.isEnabled(); try { WorkflowThreadLocal.setEnabled(true); Calendar displayCalendar = CalendarFactoryUtil.getCalendar( 2012, 1, 1); serviceContext = (ServiceContext)serviceContext.clone(); serviceContext.setWorkflowAction( WorkflowConstants.ACTION_SAVE_DRAFT); BlogsEntry entry = BlogsEntryLocalServiceUtil.addEntry( userId, title, RandomTestUtil.randomString(), RandomTestUtil.randomString(), RandomTestUtil.randomString(), displayCalendar.getTime(), true, true, new String[0], StringPool.BLANK, null, null, serviceContext); if (approved) { return updateStatus(entry, serviceContext); } return entry; } finally { WorkflowThreadLocal.setEnabled(workflowEnabled); } } public static void assertEquals( BlogsEntry expectedEntry, BlogsEntry actualEntry) { Assert.assertEquals(expectedEntry.getUserId(), actualEntry.getUserId()); Assert.assertEquals(expectedEntry.getTitle(), actualEntry.getTitle()); Assert.assertEquals( expectedEntry.getDescription(), actualEntry.getDescription()); Assert.assertEquals( expectedEntry.getContent(), actualEntry.getContent()); Assert.assertEquals( expectedEntry.getDisplayDate(), actualEntry.getDisplayDate()); Assert.assertEquals( expectedEntry.isAllowPingbacks(), actualEntry.isAllowPingbacks()); Assert.assertEquals( expectedEntry.isAllowTrackbacks(), actualEntry.isAllowTrackbacks()); Assert.assertEquals( expectedEntry.isSmallImage(), actualEntry.isSmallImage()); Assert.assertEquals( expectedEntry.getCoverImageFileEntryId(), actualEntry.getCoverImageFileEntryId()); } public static String getTempBlogsEntryAttachmentFileEntryImgTag( long dataImageId, String url) { StringBundler sb = new StringBundler(7); sb.append("<img "); sb.append(EditorConstants.ATTRIBUTE_DATA_IMAGE_ID); sb.append("=\""); sb.append(dataImageId); sb.append("\" src=\""); sb.append(url); sb.append("\"/>"); return sb.toString(); } public static void populateNotificationsServiceContext( ServiceContext serviceContext, String command) throws Exception { serviceContext.setAttribute("entryURL", "http://localhost"); if (Validator.isNotNull(command)) { serviceContext.setCommand(command); } serviceContext.setLayoutFullURL("http://localhost"); } protected static BlogsEntry updateStatus( BlogsEntry entry, ServiceContext serviceContext) throws Exception { Map<String, Serializable> workflowContext = new HashMap<>(); workflowContext.put(WorkflowConstants.CONTEXT_URL, "http://localhost"); workflowContext.put( WorkflowConstants.CONTEXT_USER_PORTRAIT_URL, "http://localhost"); workflowContext.put( WorkflowConstants.CONTEXT_USER_URL, "http://localhost"); return BlogsEntryLocalServiceUtil.updateStatus( entry.getUserId(), entry.getEntryId(), WorkflowConstants.STATUS_APPROVED, serviceContext, workflowContext); } }