Package org.appfuse.webapp.pages

Source Code of org.appfuse.webapp.pages.SignupTest

package org.appfuse.webapp.pages;

import org.apache.tapestry5.dom.Element;
import org.apache.tapestry5.internal.test.TestableResponse;
import org.appfuse.model.User;
import org.appfuse.service.UserManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.subethamail.wiser.Wiser;

import static org.junit.Assert.*;

public class SignupTest extends BasePageTestCase {

    @Before
    @After
    public void removeSignupUser() {
        UserManager userManager = applicationContext.getBean(UserManager.class);
        try {
            User signup = userManager.getUserByUsername("self-registered");
            userManager.removeUser(signup);
        } catch (UsernameNotFoundException e) {
            // OK: ignore
        }
    }

    @Test
    public void testNewUserSignup() {
        doc = tester.renderPage("Signup");

        Element form = doc.getElementById("form");
        assertNotNull("form exists", form);

        fieldValues.put("username", "self-registered");
        fieldValues.put("password", "Password1");
        fieldValues.put("confirmPassword", "Password1");
        fieldValues.put("firstName", "First");
        fieldValues.put("lastName", "Last");

        fieldValues.put("email", "self-registered@raibledesigns.com");
        fieldValues.put("website", "http://raibledesigns.com");
        fieldValues.put("passwordHint", "Password is one with you.");

        fieldValues.put("city", "Denver");
        fieldValues.put("state", "CO");
        fieldValues.put("country", "USA");
        fieldValues.put("postalCode", "80210");

        // start SMTP Server
        Wiser wiser = new Wiser();
        wiser.setPort(getSmtpPort());
        wiser.start();

        TestableResponse response = tester.submitFormAndReturnResponse(form, fieldValues);

        assertFalse(response.getOutput().contains("exception"));

        // verify an account information e-mail was sent
        assertEquals(1, wiser.getMessages().size());
        wiser.stop();

        SecurityContextHolder.getContext().setAuthentication(null);
    }

    @Test
    public void testExistingUserSignup() {
        doc = tester.renderPage("Signup");

        Element form = doc.getElementById("form");
        assertNotNull("form exists", form);

        fieldValues.put("username", "user");
        fieldValues.put("password", "Password1");
        fieldValues.put("confirmPassword", "Password1");
        fieldValues.put("firstName", "First");
        fieldValues.put("lastName", "Last");

        fieldValues.put("email", "self-registered@raibledesigns.com");
        fieldValues.put("website", "http://raibledesigns.com");
        fieldValues.put("passwordHint", "Password is one with you.");

        fieldValues.put("city", "Denver");
        fieldValues.put("state", "CO");
        fieldValues.put("country", "USA");
        fieldValues.put("postalCode", "80210");

        // start SMTP Server
        Wiser wiser = new Wiser();
        wiser.setPort(getSmtpPort());
        wiser.start();

        TestableResponse response = tester.submitFormAndReturnResponse(form, fieldValues);
        assertEquals(response.getRedirectURL(), "signup");

        // verify no account information e-mail was sent
        assertEquals(0, wiser.getMessages().size());
        wiser.stop();

        SecurityContextHolder.getContext().setAuthentication(null);
    }

}
TOP

Related Classes of org.appfuse.webapp.pages.SignupTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.