Search in sources :

Example 56 with Post

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

the class ForumsSearchModuleImpl method findPosts.

@SuppressWarnings("unchecked")
public ResultPage<Post> findPosts(SearchCriteria criteria) throws ModuleException {
    if (criteria != null) {
        try {
            EntityManager session = getSession();
            FullTextSession fullTextSession = getFullTextSession((Session) session.getDelegate());
            Builder builder = new Builder();
            String keywords = criteria.getKeywords();
            if (keywords != null && keywords.length() != 0) {
                String[] fields = null;
                Searching searching = Searching.valueOf(criteria.getSearching());
                switch(searching) {
                    case TITLE_MSG:
                        fields = new String[] { "message.text", "topic.subject" };
                        break;
                    case MSG:
                        fields = new String[] { "message.text" };
                        break;
                }
                MultiFieldQueryParser parser = new MultiFieldQueryParser(fields, new StandardAnalyzer());
                builder.add(parser.parse(keywords), MUST);
            }
            String forumId = criteria.getForum();
            if (forumId != null && forumId.length() != 0) {
                builder.add(new TermQuery(new Term("topic.forum.id", forumId)), MUST);
            }
            String categoryId = criteria.getCategory();
            if (categoryId != null && categoryId.length() != 0) {
                builder.add(new TermQuery(new Term("topic.forum.category.id", categoryId)), MUST);
            }
            String userName = criteria.getAuthor();
            if (userName != null && userName.length() != 0) {
                builder.add(new WildcardQuery(new Term("poster.userId", userName)), MUST);
            }
            String timePeriod = criteria.getTimePeriod();
            if (timePeriod != null && timePeriod.length() != 0) {
                addPostTimeQuery(builder, TimePeriod.valueOf(timePeriod));
            }
            FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(builder.build(), Post.class);
            SortOrder sortOrder = SortOrder.valueOf(criteria.getSortOrder());
            String sortByStr = criteria.getSortBy();
            SortBy sortBy = null;
            if (sortByStr != null)
                sortBy = valueOf(sortByStr);
            fullTextQuery.setSort(getSort(sortBy, sortOrder));
            fullTextQuery.setFirstResult(criteria.getPageSize() * criteria.getPageNumber());
            fullTextQuery.setMaxResults(criteria.getPageSize());
            ResultPage<Post> resultPage = new ResultPage<Post>();
            resultPage.setPage(fullTextQuery.list());
            resultPage.setResultSize(fullTextQuery.getResultSize());
            return resultPage;
        } catch (ParseException e) {
            return null;
        } catch (Exception e) {
            throw new ModuleException(e.getMessage(), e);
        }
    } else {
        throw new IllegalArgumentException("criteria cannot be null");
    }
}
Also used : TermQuery(org.apache.lucene.search.TermQuery) WildcardQuery(org.apache.lucene.search.WildcardQuery) FullTextSession(org.hibernate.search.FullTextSession) Search.getFullTextSession(org.hibernate.search.Search.getFullTextSession) MultiFieldQueryParser(org.apache.lucene.queryparser.classic.MultiFieldQueryParser) SortBy(it.vige.rubia.search.SortBy) Post(it.vige.rubia.model.Post) Builder(org.apache.lucene.search.BooleanQuery.Builder) SortOrder(it.vige.rubia.search.SortOrder) Term(org.apache.lucene.index.Term) ParseException(org.apache.lucene.queryparser.classic.ParseException) ModuleException(it.vige.rubia.ModuleException) EntityManager(javax.persistence.EntityManager) Searching(it.vige.rubia.search.Searching) ResultPage(it.vige.rubia.search.ResultPage) StandardAnalyzer(org.apache.lucene.analysis.standard.StandardAnalyzer) ParseException(org.apache.lucene.queryparser.classic.ParseException) FullTextQuery(org.hibernate.search.FullTextQuery) ModuleException(it.vige.rubia.ModuleException)

Example 57 with Post

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

the class EditPost method execute.

/**
 * @return the navigation state of the application
 */
@SecureActionForum
@Interceptors(AuthorizationListener.class)
public String execute() {
    String navState = null;
    boolean success = false;
    try {
        // setup the business objects to be updated
        Post post = forumsModule.findPostById(postId);
        forumsModule.updateAttachments(attachments, post);
        // TODO: cleanup this forums update process............move this as
        // a private method
        // setup attachment information
        Topic topic = post.getTopic();
        // make sure this topic is not locked
        if (topic.getStatus() == TOPIC_LOCKED) {
            // should not allow posting a reply since the topic is locked
            throw new Exception(getBundleMessage(BUNDLE_NAME, TOPIC_LOCKED_ERR_KEY));
        }
        // setup the message/subject related data
        Message message = createMessage();
        message.setText(this.message);
        message.setSubject(subject);
        // update the message/subject/topicType data on the business objects
        post.setMessage(message);
        if (isFirstPost) {
            topic.setSubject(subject);
            topic.setType(topicType);
        }
        // miscellaneous post related update
        post.setEditCount(post.getEditCount() + 1);
        post.setEditDate(new Date());
        // TODO: cleanup this poll update process............move this as a
        // private method
        // setup poll information
        List<PollOption> localPollOptions = new LinkedList<PollOption>();
        for (String key : options.keySet()) {
            PollOption pollOption = createPollOption(topic.getPoll());
            pollOption.setQuestion(options.get(key));
            pollOption.setVotes(0);
            localPollOptions.add(pollOption);
        }
        // update poll information
        if (topic.getPoll() == null || topic.getPoll().getTitle() == null || topic.getPoll().getTitle().trim().length() == 0) {
            // no existing poll information found in the database
            if (localPollOptions.size() > 0 && question != null && question.trim().length() > 0) {
                // need to add a new poll to this topic
                Poll poll = createPoll();
                poll.setTitle(question);
                poll.setLength(activeDuration);
                poll.setOptions(localPollOptions);
                validatePoll(poll);
                forumsModule.addPollToTopic(topic, poll);
            }
        } else {
            // existing poll information is available in the database
            if (localPollOptions.size() > 0) {
                // this is a diff update..............................
                // setup the poll to be updated in the database
                Poll poll = createPoll();
                poll.setTitle(question);
                poll.setLength(activeDuration);
                poll.setVoted(topic.getPoll().getVoted());
                poll.setCreationDate(topic.getPoll().getCreationDate());
                for (PollOption newPollOption : localPollOptions) {
                    Iterator<PollOption> stored = topic.getPoll().getOptions().iterator();
                    while (stored.hasNext()) {
                        PollOption oldPollOption = (PollOption) stored.next();
                        if (oldPollOption != null && oldPollOption.getQuestion().equals(newPollOption.getQuestion())) {
                            newPollOption.setVotes(oldPollOption.getVotes());
                            break;
                        }
                    }
                }
                poll.setOptions(localPollOptions);
                forumsModule.addPollToTopic(topic, poll);
            } else {
                // remove the poll from the database...poll was removed
                // during this editPost process
                topic.setPoll(null);
            }
        }
        forumsModule.update(topic);
        forumsModule.update(post);
        // set the proper navigation state
        navState = SUCCESS;
        success = true;
    } catch (PollValidationException e) {
        // handle proper validation error with a proper message...not just a
        // generic message..
        // just use generic error page for the proof of concept
        // set the custom exception such that e.toString() results in the
        // proper message
        handleException(e);
    } catch (Exception e) {
        handleException(e);
    } finally {
        // cleanup if necessary
        if (success) {
            cleanup();
        }
    }
    return navState;
}
Also used : PortalUtil.createMessage(it.vige.rubia.PortalUtil.createMessage) JSFUtil.getBundleMessage(it.vige.rubia.ui.JSFUtil.getBundleMessage) Message(it.vige.rubia.model.Message) Post(it.vige.rubia.model.Post) JSFUtil.handleException(it.vige.rubia.ui.JSFUtil.handleException) Date(java.util.Date) LinkedList(java.util.LinkedList) PortalUtil.createPoll(it.vige.rubia.PortalUtil.createPoll) Poll(it.vige.rubia.model.Poll) PollOption(it.vige.rubia.model.PollOption) PortalUtil.createPollOption(it.vige.rubia.PortalUtil.createPollOption) Topic(it.vige.rubia.model.Topic) Interceptors(javax.interceptor.Interceptors) SecureActionForum(it.vige.rubia.auth.SecureActionForum)

Example 58 with Post

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

the class DeletePost method confirmDelete.

// actions---------------------------------------------------------------------------------------------------------------------------------
/**
 * @return the navigation state of the application
 */
@SecureActionForum
@Interceptors(AuthorizationListener.class)
public String confirmDelete() {
    String navState = null;
    try {
        // setup the business objects/data of interest
        Post post = forumsModule.findPostById(postId);
        Topic topic = post.getTopic();
        // make sure this topic is not locked
        if (topic.getStatus() == TOPIC_LOCKED) {
            // should not allow posting a reply since the topic is locked
            throw new Exception(getBundleMessage(BUNDLE_NAME, TOPIC_LOCKED_ERR_KEY));
        }
        boolean isFirstPost = false;
        boolean isLastPost = false;
        List<Post> posts = forumsModule.findPostsByTopicId(topic);
        if (posts.get(0).getId() == post.getId().intValue()) {
            isFirstPost = true;
        }
        if (posts.get(posts.size() - 1).getId().intValue() == post.getId().intValue()) {
            isLastPost = true;
        }
        // now perform the actual delete operation.........................
        if (isLastPost && isFirstPost) {
            // cascade delete will take care of removing
            // the post
            // the watches
            // the poll
            // the links
            forumsModule.removeTopic(post.getTopic().getId());
            // set the proper navigation state
            navState = TOPIC_DELETED;
        } else {
            forumsModule.removePost(post.getId(), isLastPost);
            // set the proper navigation state
            navState = SUCCESS;
        }
    } catch (Exception e) {
        handleException(e);
    }
    return navState;
}
Also used : Post(it.vige.rubia.model.Post) Topic(it.vige.rubia.model.Topic) JSFUtil.handleException(it.vige.rubia.ui.JSFUtil.handleException) ModuleException(it.vige.rubia.ModuleException) Interceptors(javax.interceptor.Interceptors) SecureActionForum(it.vige.rubia.auth.SecureActionForum)

Example 59 with Post

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

the class ViewMyForumsEditAllForums method execute.

/**
 */
@PostConstruct
public void execute() {
    Collection<Forum> forums = getWatchedForums();
    try {
        // get the forumInstanceId where this forum should be added
        int forumInstanceId = userPreferences.getForumInstanceId();
        forumWatches = forumsModule.findForumWatches(getUser(userModule), forumInstanceId);
    } catch (Exception e) {
        handleException(e);
        setForumWatches(new HashMap<Object, Object>(0));
    }
    Date userLastLogin = getUserLastLoginDate(userModule, userProfileModule);
    for (Forum currentForum : forums) {
        // setup folderLook based on whats specified in the theme
        String folderImage = themeHelper.getResourceForumURL();
        // bundle key
        String folderAlt = "No_new_posts";
        if (forumsLastPosts != null && forumsLastPosts.containsKey(currentForum.getId())) {
            Post lastPost = (Post) forumsLastPosts.get(currentForum.getId());
            Date lastPostDate = lastPost.getCreateDate();
            if (lastPostDate != null && userLastLogin != null && lastPostDate.compareTo(userLastLogin) > 0) {
                // bundle key
                folderAlt = "New_posts";
                folderImage = themeHelper.getResourceForumNewURL();
            }
        }
        if (currentForum.getStatus() == FORUM_LOCKED) {
            folderImage = themeHelper.getResourceForumLockedURL();
            // bundle key
            folderAlt = "Forum_locked";
        }
        getForumImages().put(currentForum.getId(), folderImage);
        getForumImageDescriptions().put(currentForum.getId(), folderAlt);
    }
    try {
        String t = getRequestParameter(p_forumId);
        if (t != null && t.trim().length() > 0) {
            forumId = parseInt(t);
        } else {
            forumId = -1;
        }
        if (forumId != -1) {
            watch = forumsModule.findForumWatchByUserAndForum(getUser(userModule), forumId);
        }
    } catch (Exception e) {
        handleException(e);
        forumId = -1;
        watch = null;
    }
}
Also used : HashMap(java.util.HashMap) Post(it.vige.rubia.model.Post) JSFUtil.handleException(it.vige.rubia.ui.JSFUtil.handleException) Date(java.util.Date) JSFUtil.getUserLastLoginDate(it.vige.rubia.ui.JSFUtil.getUserLastLoginDate) Forum(it.vige.rubia.model.Forum) SecureActionForum(it.vige.rubia.auth.SecureActionForum) PostConstruct(javax.annotation.PostConstruct)

Example 60 with Post

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

the class PreferencesTest method scenary1.

public void scenary1() {
    Category firstTestCategory = new Category("First Test Category");
    Category secondTestCategory = new Category("Second Test Category");
    goTo(driver);
    PreferenceController submitCriteria = new PreferenceController();
    submitCriteria.setAlwaysAddSignature(true);
    submitCriteria.setAlwaysAllowHtml(true);
    submitCriteria.setNotifyOnReply(true);
    submitCriteria.setPostOrder("descending");
    submitCriteria.setPostsPerTopic(25);
    submitCriteria.setSignature("My New Signature");
    submitCriteria.setSummaryMode(BLOCK_TOPICS_MODE_HOT_TOPICS);
    submitCriteria.setSummaryTopicDays(2);
    submitCriteria.setSummaryTopicLimit(3);
    submitCriteria.setSummaryTopicReplies(4);
    submitCriteria.setTopicsPerForum(5);
    submit(driver, submitCriteria);
    List<Topic> summaryTopics = viewSummary(driver);
    int sizeSummaryTopics = viewSize(driver);
    Topic summaryTopicDetail = getDetail(driver, "Ninteen Test Topic");
    assertTrue(summaryTopics != null);
    assertEquals(1, summaryTopics.size());
    assertEquals(1, sizeSummaryTopics);
    assertEquals("Ninteen Test Topic", summaryTopics.get(0).getSubject());
    assertEquals("Ninteen Test Topic", summaryTopicDetail.getSubject());
    Topic newTopic = new Topic(new Forum("Third Test Forum", "Third Test Description", new Category("Second Test Category")), "Thirtytwo Test Topic", asList(new Post[] { new Post("Thirtytwo Test Body") }), NORMAL, null);
    String message = createTopic(driver, newTopic);
    assertTrue(message.equals("Thirtytwo Test Topic"));
    List<Forum> forums = getForumsOfCategories(driver, firstTestCategory, secondTestCategory);
    Date today = new Date();
    List<Topic> topics = getTopicsOfForums(driver, forums.toArray(new Forum[0]));
    assertTrue(topics != null);
    assertEquals(19, topics.size());
    assertEquals("Ninteen Test Topic", topics.get(0).getSubject());
    assertEquals("root", topics.get(0).getPoster().getUserId());
    assertEquals(32, topics.get(0).getReplies());
    assertEquals(98, topics.get(0).getViewCount());
    assertTrue(topics.get(0).getLastPostDate().compareTo(today) < 0);
    assertEquals(25, topics.get(0).getPosts().size());
    assertTrue(topics.get(0).getPosts().get(0).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen35</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(0).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(0).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(1).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen34</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(1).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(1).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(1).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(2).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen33</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(2).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(2).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(2).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(3).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen32</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(3).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(3).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(3).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(4).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen31</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(4).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(4).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(4).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(5).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen30</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(5).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(5).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(5).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(6).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen29</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(6).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(6).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(6).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(7).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen28</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(7).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(7).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(7).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(8).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen27</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(8).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(8).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(8).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(9).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen26</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(9).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(9).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(9).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(10).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen25</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(10).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(10).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(10).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(11).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen24</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(11).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(11).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(11).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(12).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen23</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(12).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(12).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(12).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(13).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen22</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(13).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(13).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(13).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(14).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen21</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(14).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(14).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(14).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(15).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen20</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(15).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(15).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(15).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(16).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen19</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(16).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(16).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(16).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(17).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen18</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(17).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(17).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(17).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(18).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen17</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(18).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(18).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(18).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(19).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen16</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(19).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(19).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(19).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(20).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen15</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(20).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(20).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(20).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(21).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen14</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(21).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(21).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(21).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(22).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen13</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(22).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(22).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(22).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(23).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen12</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(23).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(23).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(23).getPoster().getUserId());
    assertTrue(topics.get(0).getPosts().get(24).getMessage().getSubject().startsWith(RE + "Ninteen Test Topic"));
    assertEquals("<ul><li>Ninteen11</li><li>Test Body</li></ul>", topics.get(0).getPosts().get(24).getMessage().getText());
    assertTrue(topics.get(0).getPosts().get(24).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(0).getPosts().get(24).getPoster().getUserId());
    assertEquals("Eighteen Test Topic", topics.get(1).getSubject());
    assertEquals("root", topics.get(1).getPoster().getUserId());
    assertEquals(0, topics.get(1).getReplies());
    assertEquals(0, topics.get(1).getViewCount());
    assertTrue(topics.get(1).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(1).getPosts().size());
    assertTrue(topics.get(1).getPosts().get(0).getMessage().getSubject().startsWith("Eighteen Test Topic"));
    assertTrue(topics.get(1).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(1).getPosts().get(0).getPoster().getUserId());
    assertEquals("Seventeen Test Topic", topics.get(2).getSubject());
    assertEquals("root", topics.get(2).getPoster().getUserId());
    assertEquals(0, topics.get(2).getReplies());
    assertEquals(0, topics.get(2).getViewCount());
    assertTrue(topics.get(2).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(2).getPosts().size());
    assertTrue(topics.get(2).getPosts().get(0).getMessage().getSubject().startsWith("Seventeen Test Topic"));
    assertTrue(topics.get(2).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(2).getPosts().get(0).getPoster().getUserId());
    assertEquals("Sixteen Test Topic", topics.get(3).getSubject());
    assertEquals("root", topics.get(3).getPoster().getUserId());
    assertEquals(0, topics.get(3).getReplies());
    assertEquals(0, topics.get(3).getViewCount());
    assertTrue(topics.get(3).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(3).getPosts().size());
    assertTrue(topics.get(3).getPosts().get(0).getMessage().getSubject().startsWith("Sixteen Test Topic"));
    assertTrue(topics.get(3).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(3).getPosts().get(0).getPoster().getUserId());
    assertEquals("Fifteen Test Topic", topics.get(4).getSubject());
    assertEquals("root", topics.get(4).getPoster().getUserId());
    assertEquals(0, topics.get(4).getReplies());
    assertEquals(0, topics.get(4).getViewCount());
    assertTrue(topics.get(4).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(4).getPosts().size());
    assertTrue(topics.get(4).getPosts().get(0).getMessage().getSubject().startsWith("Fifteen Test Topic"));
    assertTrue(topics.get(4).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(4).getPosts().get(0).getPoster().getUserId());
    assertEquals("Fourteen Test Topic", topics.get(5).getSubject());
    assertEquals("root", topics.get(5).getPoster().getUserId());
    assertEquals(0, topics.get(5).getReplies());
    assertEquals(0, topics.get(5).getViewCount());
    assertTrue(topics.get(5).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(5).getPosts().size());
    assertTrue(topics.get(5).getPosts().get(0).getMessage().getSubject().startsWith("Fourteen Test Topic"));
    assertTrue(topics.get(5).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(5).getPosts().get(0).getPoster().getUserId());
    assertEquals("Thirteen Test Topic", topics.get(6).getSubject());
    assertEquals("root", topics.get(6).getPoster().getUserId());
    assertEquals(0, topics.get(6).getReplies());
    assertEquals(0, topics.get(6).getViewCount());
    assertTrue(topics.get(6).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(6).getPosts().size());
    assertTrue(topics.get(6).getPosts().get(0).getMessage().getSubject().startsWith("Thirteen Test Topic"));
    assertTrue(topics.get(6).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(6).getPosts().get(0).getPoster().getUserId());
    assertEquals("Twelve Test Topic", topics.get(7).getSubject());
    assertEquals("root", topics.get(7).getPoster().getUserId());
    assertEquals(0, topics.get(7).getReplies());
    assertEquals(0, topics.get(7).getViewCount());
    assertTrue(topics.get(7).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(7).getPosts().size());
    assertTrue(topics.get(7).getPosts().get(0).getMessage().getSubject().startsWith("Twelve Test Topic"));
    assertTrue(topics.get(7).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(7).getPosts().get(0).getPoster().getUserId());
    assertEquals("Eleven Test Topic", topics.get(8).getSubject());
    assertEquals("root", topics.get(8).getPoster().getUserId());
    assertEquals(0, topics.get(8).getReplies());
    assertEquals(0, topics.get(8).getViewCount());
    assertTrue(topics.get(8).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(8).getPosts().size());
    assertTrue(topics.get(8).getPosts().get(0).getMessage().getSubject().startsWith("Eleven Test Topic"));
    assertTrue(topics.get(8).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(8).getPosts().get(0).getPoster().getUserId());
    assertEquals("Ten Test Topic", topics.get(9).getSubject());
    assertEquals("root", topics.get(9).getPoster().getUserId());
    assertEquals(0, topics.get(9).getReplies());
    assertEquals(0, topics.get(9).getViewCount());
    assertTrue(topics.get(9).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(9).getPosts().size());
    assertTrue(topics.get(9).getPosts().get(0).getMessage().getSubject().startsWith("Ten Test Topic"));
    assertTrue(topics.get(9).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(9).getPosts().get(0).getPoster().getUserId());
    assertEquals("Second Test Topic", topics.get(10).getSubject());
    assertEquals("root", topics.get(10).getPoster().getUserId());
    assertEquals(0, topics.get(10).getReplies());
    assertEquals(0, topics.get(10).getViewCount());
    assertTrue(topics.get(10).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(10).getPosts().size());
    assertTrue(topics.get(10).getPosts().get(0).getMessage().getSubject().startsWith("Second Test Topic"));
    assertTrue(topics.get(10).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(10).getPosts().get(0).getPoster().getUserId());
    assertEquals("Thirtyone Test Topic", topics.get(11).getSubject());
    assertEquals("root", topics.get(11).getPoster().getUserId());
    assertEquals(0, topics.get(11).getReplies());
    assertEquals(0, topics.get(11).getViewCount());
    assertTrue(topics.get(11).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(11).getPosts().size());
    assertTrue(topics.get(11).getPosts().get(0).getMessage().getSubject().startsWith("Thirtyone Test Topic"));
    assertTrue(topics.get(11).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(11).getPosts().get(0).getPoster().getUserId());
    assertEquals("Thirty Test Topic", topics.get(12).getSubject());
    assertEquals("root", topics.get(12).getPoster().getUserId());
    assertEquals(0, topics.get(12).getReplies());
    assertEquals(0, topics.get(12).getViewCount());
    assertTrue(topics.get(12).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(12).getPosts().size());
    assertTrue(topics.get(12).getPosts().get(0).getMessage().getSubject().startsWith("Thirty Test Topic"));
    assertTrue(topics.get(12).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(12).getPosts().get(0).getPoster().getUserId());
    assertEquals("Twentynine Test Topic", topics.get(13).getSubject());
    assertEquals("root", topics.get(13).getPoster().getUserId());
    assertEquals(0, topics.get(13).getReplies());
    assertEquals(0, topics.get(13).getViewCount());
    assertTrue(topics.get(13).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(13).getPosts().size());
    assertTrue(topics.get(13).getPosts().get(0).getMessage().getSubject().startsWith("Twentynine Test Topic"));
    assertTrue(topics.get(13).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(13).getPosts().get(0).getPoster().getUserId());
    assertEquals("Twentyeight Test Topic", topics.get(14).getSubject());
    assertEquals("root", topics.get(14).getPoster().getUserId());
    assertEquals(0, topics.get(14).getReplies());
    assertEquals(0, topics.get(14).getViewCount());
    assertTrue(topics.get(14).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(14).getPosts().size());
    assertTrue(topics.get(14).getPosts().get(0).getMessage().getSubject().startsWith("Twentyeight Test Topic"));
    assertTrue(topics.get(14).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(14).getPosts().get(0).getPoster().getUserId());
    assertEquals("Twentyseven Test Topic", topics.get(15).getSubject());
    assertEquals("root", topics.get(15).getPoster().getUserId());
    assertEquals(0, topics.get(15).getReplies());
    assertEquals(0, topics.get(15).getViewCount());
    assertTrue(topics.get(15).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(15).getPosts().size());
    assertTrue(topics.get(15).getPosts().get(0).getMessage().getSubject().startsWith("Twentyseven Test Topic"));
    assertTrue(topics.get(15).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(15).getPosts().get(0).getPoster().getUserId());
    assertEquals("Third Test Topic", topics.get(16).getSubject());
    assertEquals("root", topics.get(16).getPoster().getUserId());
    assertEquals(0, topics.get(16).getReplies());
    assertEquals(0, topics.get(16).getViewCount());
    assertTrue(topics.get(16).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(16).getPosts().size());
    assertTrue(topics.get(16).getPosts().get(0).getMessage().getSubject().startsWith("Third Test Topic"));
    assertTrue(topics.get(16).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(16).getPosts().get(0).getPoster().getUserId());
    assertEquals("Fourth Test Topic", topics.get(17).getSubject());
    assertEquals("root", topics.get(17).getPoster().getUserId());
    assertEquals(0, topics.get(17).getReplies());
    assertEquals(0, topics.get(17).getViewCount());
    assertTrue(topics.get(17).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(17).getPosts().size());
    assertTrue(topics.get(17).getPosts().get(0).getMessage().getSubject().startsWith("Fourth Test Topic"));
    assertTrue(topics.get(17).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(17).getPosts().get(0).getPoster().getUserId());
    assertEquals("Thirtytwo Test Topic", topics.get(18).getSubject());
    assertEquals("root", topics.get(18).getPoster().getUserId());
    assertEquals(0, topics.get(18).getReplies());
    assertEquals(0, topics.get(18).getViewCount());
    assertTrue(topics.get(18).getLastPostDate().compareTo(today) < 0);
    assertEquals(1, topics.get(18).getPosts().size());
    assertTrue(topics.get(18).getPosts().get(0).getMessage().getSubject().startsWith("Thirtytwo Test Topic"));
    assertTrue(topics.get(18).getPosts().get(0).getCreateDate().compareTo(today) < 0);
    assertEquals("root", topics.get(18).getPosts().get(0).getPoster().getUserId());
    message = removeTopic(driver, new Topic(new Forum("Third Test Forum", "Third Test Description", new Category("Second Test Category")), "Thirtytwo Test Topic", asList(new Post[] { new Post("Thirtytwo Test Body") }), NORMAL, null));
    assertTrue(message.equals(OK));
}
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) Post(it.vige.rubia.model.Post) PreferenceController(it.vige.rubia.ui.action.PreferenceController) RemoveTopic.removeTopic(it.vige.rubia.selenium.forum.action.RemoveTopic.removeTopic) CreateTopic.createTopic(it.vige.rubia.selenium.forum.action.CreateTopic.createTopic) Topic(it.vige.rubia.model.Topic) Date(java.util.Date) Forum(it.vige.rubia.model.Forum) CreateForum.createForum(it.vige.rubia.selenium.adminpanel.action.CreateForum.createForum)

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