Package de.jetwick.ui

Source Code of de.jetwick.ui.MySessionTest

/*
*  Copyright 2010 Peter Karich jetwick_@_pannous_._info
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*       http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package de.jetwick.ui;

import de.jetwick.tw.Twitter4JUser;
import de.jetwick.es.ElasticUserSearch;
import de.jetwick.data.JUser;
import de.jetwick.tw.TwitterSearch;
import javax.servlet.http.Cookie;
import org.apache.wicket.Request;
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.protocol.http.WebResponse;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import twitter4j.TwitterException;
import twitter4j.auth.AccessToken;

/**
*
* @author Peter Karich, jetwick_@_pannous_._info
*/
public class MySessionTest extends WicketPagesTestClass {

    public MySessionTest() {
    }

    @Before
    @Override
    public void setUp() throws Exception {
        super.setUp();
    }
   
    @Override
    protected MySession changeSession(MySession sess, Request req) {
        return new MySession(req);
    }

    ElasticUserSearch newMockUserSearch(JUser user) {
        ElasticUserSearch s = mock(ElasticUserSearch.class);
        when(s.findByTwitterToken("normalToken")).thenReturn(user);
        return s;
    }

    @Test
    public void testInit() {
        MySession session = (MySession) tester.getWicketSession();
        session.invalidate();
        assertNull(session.getUser());

        session.onNewSession(tester.getWicketRequest(), newMockUserSearch(null));
        assertNull(session.getUser());
        session.logout(newMockUserSearch(null), tester.getWicketResponse(), true);
        assertNull(session.getUser());
    }

    @Test
    public void testInitFromCookie() {
        MySession session = (MySession) tester.getWicketSession();
        WebRequest req = mock(WebRequest.class);
        when(req.getCookie(TwitterSearch.COOKIE)).thenReturn(new Cookie(TwitterSearch.COOKIE, "normalToken"));
        session.onNewSession(req, newMockUserSearch(new JUser("testuser")));
        assertEquals("testuser", session.getUser().getScreenName());
    }

    @Test
    public void testDoNotInitFromWrongCookie() {
        MySession session = (MySession) tester.getWicketSession();
        WebRequest req = mock(WebRequest.class);
        when(req.getCookie(TwitterSearch.COOKIE)).thenReturn(new Cookie("tokenWrong", null));
        session.onNewSession(req, newMockUserSearch(new JUser("testuser")));
        assertNull(session.getUser());
    }

    @Test
    public void testSetCookie() throws TwitterException {
        TwitterSearch ts = mock(TwitterSearch.class);
        when(ts.initTwitter4JInstance("normalToken", "tSec", true)).thenReturn(ts);
        //when(ts.getCredits()).thenReturn(new Credits("normalToken", "tSec", "x", "y"));
        when(ts.getTwitterUser()).thenReturn(new Twitter4JUser("testuser"));

        WebResponse resp = mock(WebResponse.class);
        JUser user = new JUser("testuser");
        ElasticUserSearch uSearch = newMockUserSearch(user);
        MySession session = (MySession) tester.getWicketSession();
        session.setTwitterSearch(ts);
        session.setFormData("tmp@tmp.de", "test");
        // token starts with user id!
        Cookie cookie = session.afterLogin(new AccessToken("123-normalToken", "tSec"), uSearch, resp);
        verify(uSearch).save(user, false);
        assertEquals(TwitterSearch.COOKIE, cookie.getName());
        assertEquals("123-normalToken", cookie.getValue());

        uSearch = newMockUserSearch(user);
        session.logout(uSearch, resp, true);
        verify(uSearch).save(user, false);
        //verify(resp).clearCookie(new Cookie(TwitterSearch.COOKIE, ""));
    }

    @Test
    public void testFailingWithoutEmail() throws TwitterException {
        TwitterSearch ts = mock(TwitterSearch.class);
        when(ts.initTwitter4JInstance("normalToken", "tSec", true)).thenReturn(ts);
        //when(ts.getCredits()).thenReturn(new Credits("normalToken", "tSec", "x", "y"));
        when(ts.getTwitterUser()).thenReturn(new Twitter4JUser("testuser"));

        WebResponse resp = mock(WebResponse.class);
        JUser user = new JUser("testuser");
        ElasticUserSearch uSearch = newMockUserSearch(user);
        MySession session = (MySession) tester.getWicketSession();
        session.setTwitterSearch(ts);
        try {
            session.afterLogin(new AccessToken("123-normalToken", "tSec"), uSearch, resp);
            assertTrue(false);
        } catch (IllegalArgumentException ex) {
            assertTrue(true);
        }
    }
}
TOP

Related Classes of de.jetwick.ui.MySessionTest

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.