Search in sources :

Example 31 with Post

use of it.vige.rubia.model.Post in project rubia-forums by flashboss.

the class PostAction method getPost.

// utility
// methods-------------------------------------------------------------------------------------------------------------
/**
 * @return the current post
 * @throws Exception
 *             the error exception
 */
public Post getPost() throws Exception {
    Post post = null;
    post = forumsModule.findPostById(new Integer(getRequestParameter(p_postId)));
    return post;
}
Also used : Post(it.vige.rubia.model.Post)

Example 32 with Post

use of it.vige.rubia.model.Post in project rubia-forums by flashboss.

the class SplitTopic method splitAfter.

// ---------- UI Actions supported by this bean ----------------------------
/**
 * This user interface action is spliting topic after post selected by user.
 *
 * @return the name of the operation
 */
@SecureActionForum
@Interceptors(AuthorizationListener.class)
public String splitAfter() {
    // Checking whether topic has only one post, so it can't be splitted
    if (posts.size() == 1) {
        setWarnBundleMessage("ERR_SPLIT_ONE_POST_TOPIC");
        return "";
    }
    // Removing all not slected posts
    Iterator<Integer> selectIt = checkboxes.keySet().iterator();
    while (selectIt.hasNext()) {
        Boolean postFlag = checkboxes.get(selectIt.next());
        if (!postFlag.booleanValue()) {
            selectIt.remove();
        }
    }
    // Checking if user selected anything.
    if (checkboxes.size() == 0) {
        setWarnBundleMessage("ERR_NO_POST_SELECTED");
        return "";
    }
    // User can't select more than one post for this action.
    if (checkboxes.size() != 1) {
        setWarnBundleMessage("Too_many_error");
        return "";
    }
    // check if user selected first post
    try {
        posts = forumsModule.findPostsByTopicId(topic);
        if (posts.get(0).getId().equals(checkboxes.keySet().iterator().next())) {
            setWarnBundleMessage("ERR_SPLIT_ALL");
            return "";
        }
    } catch (ModuleException e1) {
        setWarnBundleMessage("ERR_SPLIT_ALL");
        return "";
    } catch (Exception e1) {
        setWarnBundleMessage("ERR_SPLIT_ALL");
        return "";
    }
    // Trying to get destination forum for new topic.
    String toForumId = getParameter(p_forum_to_id);
    if (toForumId == null || toForumId.trim().compareToIgnoreCase("-1") == 0 || toForumId.trim().length() == 0) {
        setWarnBundleMessage("ERR_DEST_FORUM");
        return "";
    }
    // Checking if user gave subject for new topic.
    if (newTopicTitle == null || newTopicTitle.trim().compareToIgnoreCase("-1") == 0 || newTopicTitle.trim().length() == 0) {
        setWarnBundleMessage("ERR_NO_SUBJECT_GIVEN");
        return "";
    }
    try {
        Forum destForum = forumsModule.findForumById(new Integer(toForumId));
        // Creating new topic in destination forum.
        Topic newTopic = forumsModule.createTopic(destForum, getUser(userModule).getId().toString(), newTopicTitle, topic.getType());
        // Getting post id after which the topic must be splitted.
        Integer selectedPostId = (Integer) checkboxes.keySet().iterator().next();
        // Searching for the split pointing post in topic.
        Iterator<Post> it = posts.iterator();
        Post tempPost = null;
        while (it.hasNext()) {
            tempPost = it.next();
            // searching for post to split after
            if (tempPost.getId().equals(selectedPostId)) {
                break;
            }
        }
        List<Post> postsToRemove = new ArrayList<Post>();
        // Adding splitting post and all which are after him to new topic.
        if (tempPost != null) {
            tempPost.setTopic(newTopic);
            forumsModule.update(tempPost);
            postsToRemove.add(tempPost);
        }
        while (it.hasNext()) {
            Post post = it.next();
            post.setTopic(newTopic);
            forumsModule.update(post);
            postsToRemove.add(post);
        }
        newTopic = forumsModule.findTopicById(newTopic.getId());
        List<Post> postsNewTopic = forumsModule.findPostsByTopicId(newTopic);
        newTopic.setReplies(postsNewTopic.size() - 1);
        newTopic.setLastPostDate(postsNewTopic.get(postsNewTopic.size() - 1).getCreateDate());
        Forum fromForum = topic.getForum();
        topic.setReplies(topic.getReplies() - newTopic.getReplies() - 1);
        fromForum.setPostCount(fromForum.getPostCount() - newTopic.getReplies() - 1);
        posts.removeAll(postsToRemove);
        topic.setLastPostDate(posts.get(posts.size() - 1).getCreateDate());
        destForum.addTopicSize();
        destForum.setPostCount(destForum.getPostCount() + newTopic.getReplies() + 1);
        forumsModule.update(newTopic);
        forumsModule.update(topic);
        forumsModule.update(fromForum);
        forumsModule.update(destForum);
    } catch (Exception e) {
        log.error(e);
        setWarnBundleMessage("ERR_INTERNAL");
        return "";
    }
    // Setting message that everything went smooth.
    setInfoBundleMessage("SUCC_TOPIC_SPLITTED");
    return "";
}
Also used : Post(it.vige.rubia.model.Post) ArrayList(java.util.ArrayList) ModuleException(it.vige.rubia.ModuleException) Topic(it.vige.rubia.model.Topic) ModuleException(it.vige.rubia.ModuleException) Forum(it.vige.rubia.model.Forum) SecureActionForum(it.vige.rubia.auth.SecureActionForum) Interceptors(javax.interceptor.Interceptors) SecureActionForum(it.vige.rubia.auth.SecureActionForum)

Example 33 with Post

use of it.vige.rubia.model.Post in project rubia-forums by flashboss.

the class RemoveTopic method removeTopic.

public static String removeTopic(WebDriver driver, Topic topic) {
    String result = "";
    for (Post post : topic.getPosts()) {
        post.setTopic(topic);
        result = removePost(driver, post);
        if (!result.equals(OK))
            return "";
    }
    return result;
}
Also used : Post(it.vige.rubia.model.Post) RemovePost.removePost(it.vige.rubia.selenium.forum.action.RemovePost.removePost)

Example 34 with Post

use of it.vige.rubia.model.Post in project rubia-forums by flashboss.

the class OperationAttachmentTest method setUp.

@BeforeClass
public static void setUp() {
    driver.get(HOME_URL);
    String message = createCategory(driver, new Category("First Test Category"));
    assertTrue(message.equals(CREATED_CATEGORY_1_MESSAGE));
    message = createCategory(driver, new Category("Second Test Category"));
    assertTrue(message.equals(CREATED_CATEGORY_2_MESSAGE));
    message = createForum(driver, new Forum("First Test Forum", "First Test Description", new Category("First Test Category")));
    assertTrue(message.equals(CREATED_FORUM_0_MESSAGE));
    message = createTopic(driver, new Topic(new Forum("First Test Forum"), "First Test Topic", asList(new Post[] { new Post("First Test Body", asList(new Attachment("first", "First Test File"), new Attachment("second", "Second Test File"), new Attachment("third", "Third Test File"))) }), NORMAL, new Poll("First Test Question", asList(new PollOption[] { new PollOption("First Test Answer"), new PollOption("Second Test Answer") }), 4)));
    assertTrue(message.equals("First Test Topic"));
    message = createPost(driver, new Post(new Topic(new Forum("First Test Forum"), "First Test Topic"), "First Test Post", asList(new Attachment("first", "First Test File"), new Attachment("second", "Second Test File"), new Attachment("third", "Third Test File"))));
    assertTrue(message.equals("First Test Post"));
    message = createPost(driver, new Post(new Topic(new Forum("First Test Forum"), "First Test Topic"), "Second Test Post", asList(new Attachment("first", "First Test File"), new Attachment("second", "Second Test File"), new Attachment("third", "Third Test File"))));
    assertTrue(message.equals("Second Test Post"));
    message = createTopic(driver, new Topic(new Forum("First Test Forum"), "Second Test Topic", asList(new Post[] { new Post("Second Test Body", asList(new Attachment("first", "First Test File"), new Attachment("second", "Second Test File"), new Attachment("third", "Third Test File"))) }), IMPORTANT, new Poll("Second Test Question", asList(new PollOption[] { new PollOption("Third Test Answer"), new PollOption("Fourth Test Answer") }), 8)));
    assertTrue(message.equals("Second Test Topic"));
    message = createForum(driver, new Forum("Second Test Forum", "Second Test Description", new Category("First Test Category")));
    assertTrue(message.equals(CREATED_FORUM_1_MESSAGE));
    message = createTopic(driver, new Topic(new Forum("Second Test Forum"), "Third Test Topic", asList(new Post[] { new Post("Third Test Body", asList(new Attachment("first", "First Test File"), new Attachment("second", "Second Test File"), new Attachment("third", "Third Test File"))) }), ADVICE, new Poll("Third Test Question", asList(new PollOption[] { new PollOption("Fifth Test with Truncation over 25 characters Answer"), new PollOption("Sixth Test Answer") }), 9)));
    assertTrue(message.equals("Third Test Topic"));
    message = createTopic(driver, new Topic(new Forum("Second Test Forum"), "Fourth Test Topic", asList(new Post[] { new Post("Fourth Test Body", asList(new Attachment("fourth", "Fourth Test File"), new Attachment("fifth", "Fifth Test with Truncation over 25 characters File"), new Attachment("sixth", "Sixth Test File"))) }), IMPORTANT, new Poll("Fourth Test Question", asList(new PollOption[] { new PollOption("Seventh Test Answer"), new PollOption("Eight Test Answer") }), 0)));
    assertTrue(message.equals("Fourth Test Topic"));
    message = createPost(driver, new Post(new Topic(new Forum("Second Test Forum"), "Fourth Test Topic"), "Third Test Post", asList(new Attachment("seventh", "Seventh Test File"), new Attachment("eight", "Eight Test File"), new Attachment("ninth", "Ninth Test File"))));
    assertTrue(message.equals("Third Test Post"));
    message = createPost(driver, new Post(new Topic(new Forum("Second Test Forum"), "Fourth Test Topic"), "Fourth Test Post", asList(new Attachment("ten", "Ten Test File"), new Attachment("eleven", "Eleven Test File"), new Attachment("twelve", "Twelve Test File"))));
    assertTrue(message.equals("Fourth Test Post"));
    message = createPost(driver, new Post(new Topic(new Forum("Second Test Forum"), "Fourth Test Topic"), "Fifth Test with Truncation over 25 characters Post", asList(new Attachment("thirteen", "Thirteen Test File"), new Attachment("fourteen", "Fourteen Test File"), new Attachment("fifteen", "Fifteen Test File"))));
    assertTrue(message.equals("Fifth Test with Truncation over 25 characters Post"));
    message = createPost(driver, new Post(new Topic(new Forum("Second Test Forum"), "Fourth Test Topic"), "Sixth Test Post", asList(new Attachment("sixteen", "Sixteen Test File"), new Attachment("seventeen", "Seventeen Test File"), new Attachment("eighteen", "Eighteen Test File"))));
    assertTrue(message.equals("Sixth Test Post"));
}
Also used : CreateCategory.createCategory(it.vige.rubia.selenium.adminpanel.action.CreateCategory.createCategory) RemoveCategory.removeCategory(it.vige.rubia.selenium.adminpanel.action.RemoveCategory.removeCategory) Category(it.vige.rubia.model.Category) RemovePost.removePost(it.vige.rubia.selenium.forum.action.RemovePost.removePost) VerifyAttachment.getAttachmentsOfCurrentPost(it.vige.rubia.selenium.forum.action.VerifyAttachment.getAttachmentsOfCurrentPost) CreatePost.createPost(it.vige.rubia.selenium.forum.action.CreatePost.createPost) Post(it.vige.rubia.model.Post) Poll(it.vige.rubia.model.Poll) Attachment(it.vige.rubia.model.Attachment) PollOption(it.vige.rubia.model.PollOption) CreateTopic.createTopic(it.vige.rubia.selenium.forum.action.CreateTopic.createTopic) Topic(it.vige.rubia.model.Topic) Forum(it.vige.rubia.model.Forum) RemoveForum.removeForum(it.vige.rubia.selenium.adminpanel.action.RemoveForum.removeForum) CreateForum.createForum(it.vige.rubia.selenium.adminpanel.action.CreateForum.createForum) BeforeClass(org.junit.BeforeClass)

Example 35 with Post

use of it.vige.rubia.model.Post in project rubia-forums by flashboss.

the class ViewRSSLink method getPage.

public static Forum getPage(WebDriver driver, Forum forum) {
    VerifyForum.goTo(driver, forum);
    goTo(driver);
    Forum result = new Forum();
    result.setName(driver.findElement(id(FEED_TITLE_TEXT)).getText().split(": ")[1]);
    result.setCategory(new Category(driver.findElement(id(FEED_SUBTITLE_TEXT)).getText().split(" in category ")[1]));
    Map<String, Topic> topics = new HashMap<String, Topic>();
    List<WebElement> entries = driver.findElements(className(ENTRY_LINK));
    DateFormat dateFormat = new SimpleDateFormat("d MMM yyyy, HH:mm");
    for (WebElement entry : entries) {
        String[] entryText = entry.getText().split(BY);
        String lastUpdated = entry.findElement(className(LAST_UPDATED)).getText();
        String topicTitle = entryText[0].replace(RE, "");
        Topic topic = topics.get(topicTitle);
        if (topic == null) {
            topic = new Topic(topicTitle);
            topics.put(topicTitle, topic);
        }
        Post post = new Post(entry.findElement(className(FEED_ENTRY_CONTENT)).getText());
        post.setPoster(new Poster(entryText[1].split("\n")[0]));
        try {
            post.setCreateDate(dateFormat.parse(lastUpdated));
        } catch (ParseException e) {
        }
        post.getMessage().setSubject(entryText[0]);
        topic.getPosts().add(post);
    }
    result.setTopics(new ArrayList<Topic>(topics.values()));
    returnToHome(driver);
    return result;
}
Also used : Category(it.vige.rubia.model.Category) HashMap(java.util.HashMap) Post(it.vige.rubia.model.Post) WebElement(org.openqa.selenium.WebElement) Forum(it.vige.rubia.model.Forum) VerifyForum(it.vige.rubia.selenium.forum.action.VerifyForum) SimpleDateFormat(java.text.SimpleDateFormat) DateFormat(java.text.DateFormat) Poster(it.vige.rubia.model.Poster) ParseException(java.text.ParseException) VerifyTopic(it.vige.rubia.selenium.forum.action.VerifyTopic) Topic(it.vige.rubia.model.Topic) SimpleDateFormat(java.text.SimpleDateFormat)

Aggregations

Post (it.vige.rubia.model.Post)98 Topic (it.vige.rubia.model.Topic)62 Forum (it.vige.rubia.model.Forum)52 CreateTopic.createTopic (it.vige.rubia.selenium.forum.action.CreateTopic.createTopic)43 CreateForum.createForum (it.vige.rubia.selenium.adminpanel.action.CreateForum.createForum)38 Category (it.vige.rubia.model.Category)34 RemoveTopic.removeTopic (it.vige.rubia.selenium.forum.action.RemoveTopic.removeTopic)32 RemoveForum.removeForum (it.vige.rubia.selenium.adminpanel.action.RemoveForum.removeForum)31 CreateCategory.createCategory (it.vige.rubia.selenium.adminpanel.action.CreateCategory.createCategory)28 RemoveCategory.removeCategory (it.vige.rubia.selenium.adminpanel.action.RemoveCategory.removeCategory)28 Attachment (it.vige.rubia.model.Attachment)25 Test (org.junit.Test)25 Poll (it.vige.rubia.model.Poll)21 Poster (it.vige.rubia.model.Poster)20 PollOption (it.vige.rubia.model.PollOption)19 CreatePost.createPost (it.vige.rubia.selenium.forum.action.CreatePost.createPost)17 Message (it.vige.rubia.model.Message)14 Date (java.util.Date)14 BeforeClass (org.junit.BeforeClass)12 WebElement (org.openqa.selenium.WebElement)12