You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2015/12/01 15:25:53 UTC

[23/29] usergrid git commit: Re-enable 6 tests that were ignored or commented out, add JIRA issue for the one that is still ignored.

Re-enable 6 tests that were ignored or commented out, add JIRA issue for the one that is still ignored.


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/46f9802e
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/46f9802e
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/46f9802e

Branch: refs/heads/USERGRID-872
Commit: 46f9802e2fe9d8d36ecbfc4b0b86ae4756e8e03d
Parents: cd1675c
Author: Dave Johnson <sn...@apache.org>
Authored: Mon Nov 23 12:27:04 2015 -0500
Committer: Dave Johnson <sn...@apache.org>
Committed: Mon Nov 23 12:27:04 2015 -0500

----------------------------------------------------------------------
 .../usergrid/rest/management/AdminUsersIT.java  | 162 ++++++++++---------
 1 file changed, 82 insertions(+), 80 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/46f9802e/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
index a022f80..b346c28 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
@@ -32,6 +32,7 @@ import org.jvnet.mock_javamail.Mailbox;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMultipart;
+import javax.ws.rs.BadRequestException;
 import javax.ws.rs.ClientErrorException;
 import javax.ws.rs.InternalServerErrorException;
 import javax.ws.rs.core.Form;
@@ -439,31 +440,52 @@ public class AdminUsersIT extends AbstractRestIT {
     }
 
 
-//    @Test
-//    public void passwordResetIncorrectUserName() throws Exception {
-//
-//        String email = "test2@usergrid.com";
-//        setup.getMgmtSvc().createAdminUser( "test2", "test2", "test2@usergrid.com", "sesa2me", false, false );
-//        UserInfo userInfo = setup.getMgmtSvc().getAdminUserByEmail( email );
-//        String resetToken = setup.getMgmtSvc().getPasswordResetTokenForAdminUser( userInfo.getUuid(), 15000 );
-//
-//        assertTrue( setup.getMgmtSvc().checkPasswordResetTokenForAdminUser( userInfo.getUuid(), resetToken ) );
-//
-//        Form formData = new Form();
-//        formData.add( "token", resetToken );
-//        formData.add( "password1", "sesa2me" );
-//        formData.add( "password2", "sesa2me" );
-//
-//        String html = resource().path( "/management/users/" + "noodle" + userInfo.getUsername() + "/resetpw" )
-//                                .type( MediaType.APPLICATION_FORM_URLENCODED_TYPE ).post( String.class, formData );
-//
-//        assertTrue( html.contains( "Incorrect username entered" ) );
-//
-//        html = resource().path( "/management/users/" + userInfo.getUsername() + "/resetpw" )
-//                         .type( MediaType.APPLICATION_FORM_URLENCODED_TYPE ).post( String.class, formData );
-//
-//        assertTrue( html.contains( "password set" ) );
-//    }
+    @Test
+    public void passwordResetIncorrectUserName() throws Exception {
+
+        // initiate password reset
+        management().users().user( clientSetup.getUsername() ).resetpw().post(new Form());
+        refreshIndex();
+
+        // create mocked inbox, get password reset email and extract token
+        List<Message> inbox = Mailbox.get( clientSetup.getEmail() );
+        assertFalse( inbox.isEmpty() );
+
+        MockImapClient client = new MockImapClient( "mockserver.com", "test-user-47", "somepassword" );
+        client.processMail();
+
+        // Get email with confirmation token and extract token
+        String token = null;
+        Iterator<Message> msgIterator = inbox.iterator();
+        while ( token == null && msgIterator.hasNext() ) {
+            Message msg = msgIterator.next();
+            if ( msg.getSubject().equals("Password Reset") ) {
+                token = getTokenFromMessage( msg );
+            }
+        }
+        assertNotNull( token );
+
+        Form formData = new Form();
+        formData.param( "token", token );
+        formData.param( "password1", "sesame" );
+        formData.param( "password2", "sesame" );
+
+        try {
+
+            String html = management().users().user( "mr_fatfinger" ).resetpw().getTarget().request()
+                .post( javax.ws.rs.client.Entity.form( formData ), String.class );
+
+            fail("Password reset request should have failed");
+
+        } catch ( BadRequestException expected ) {
+            assertTrue( expected.getResponse().getEntity().toString().contains( "Could not find" ) );
+        }
+
+        String html = management().users().user( clientSetup.getUsername() ).resetpw().getTarget().request()
+            .post( javax.ws.rs.client.Entity.form(formData), String.class );
+
+        assertTrue( html.contains( "password set" ) );
+    }
 
 
     /**
@@ -519,7 +541,6 @@ public class AdminUsersIT extends AbstractRestIT {
         }
     }
 
-      //TODO: won't work until resetpw viewables are fixed in the embedded environment.
     @Test
     public void checkPasswordChangeTime() throws Exception {
 
@@ -553,72 +574,53 @@ public class AdminUsersIT extends AbstractRestIT {
         String html = management().users().user( clientSetup.getUsername() ).resetpw().getTarget().request()
             .post( javax.ws.rs.client.Entity.form(formData), String.class );
         assertTrue( html.contains( "password set" ) );
-
-
-
+        refreshIndex();
 
         // login with new password and get token
 
+        Map<String, Object> payload = new HashMap<String, Object>() {{
+            put("grant_type", "password");
+            put("username", clientSetup.getUsername() );
+            put("password", "sesame");
+        }};
+        ApiResponse response = management().token().post( false, payload, null );
+
         // check password changed time
 
+        Long changeTime = Long.parseLong( response.getProperties().get( "passwordChanged" ).toString() );
+        assertTrue( System.currentTimeMillis() - changeTime < 2000 );
+
         // change password again by posting JSON
 
+        payload = new HashMap<String, Object>() {{
+            put("oldpassword", "sesame");
+            put("newpassword", "test");
+        }};
+        management().users().user( clientSetup.getUsername() ).password().post( false, payload, null );
+        refreshIndex();
+
         // get password and check password change time again
 
+        payload = new HashMap<String, Object>() {{
+            put("grant_type", "password");
+            put("username", clientSetup.getUsername() );
+            put("password", "test");
+        }};
+        response = management().token().post( false, payload, null );
+
+        Long changeTime2 = Long.parseLong( response.getProperties().get( "passwordChanged" ).toString() );
+        assertTrue( changeTime < changeTime2 );
+        assertTrue( System.currentTimeMillis() - changeTime2 < 2000 );
+
         // login via /me end-point and check password change time again
 
+        response = management().me().get( ApiResponse.class, new QueryParameters()
+            .addParam( "grant_type", "password" )
+            .addParam( "username", clientSetup.getUsername() )
+            .addParam( "password", "test" ) );
 
-//        final TestUser user = context.getActiveUser();
-//        String email = user.getEmail();
-//        UserInfo userInfo = setup.getMgmtSvc().getAdminUserByEmail( email );
-//        String resetToken = setup.getMgmtSvc().getPasswordResetTokenForAdminUser( userInfo.getUuid(), 15000 );
-//
-//        refreshIndex(context.getOrgName(), context.getAppName());
-//
-//        Form formData = new Form();
-//        formData.add( "token", resetToken );
-//        formData.add( "password1", "sesame" );
-//        formData.add( "password2", "sesame" );
-//
-//        String html = resource().path( "/management/users/" + userInfo.getUsername() + "/resetpw" )
-//                                .type( MediaType.APPLICATION_FORM_URLENCODED_TYPE ).post( String.class, formData );
-//        assertTrue( html.contains( "password set" ) );
-//
-//        refreshIndex(context.getOrgName(), context.getAppName());
-//
-//        JsonNode node = mapper.readTree( resource().path( "/management/token" )
-//                                                   .queryParam( "grant_type", "password" )
-//                                                   .queryParam( "username", email ).queryParam( "password", "sesame" )
-//                                                   .accept( MediaType.APPLICATION_JSON )
-//                                                   .get( String.class ));
-//
-//        Long changeTime = node.get( "passwordChanged" ).longValue();
-//        assertTrue( System.currentTimeMillis() - changeTime < 2000 );
-//
-//        Map<String, String> payload = hashMap( "oldpassword", "sesame" ).map( "newpassword", "test" );
-//        node = mapper.readTree( resource().path( "/management/users/" + userInfo.getUsername() + "/password" )
-//                                          .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-//                                          .post( String.class, payload ));
-//
-//        refreshIndex(context.getOrgName(), context.getAppName());
-//
-//        node = mapper.readTree( resource().path( "/management/token" )
-//                                          .queryParam( "grant_type", "password" )
-//                                          .queryParam( "username", email )
-//                                          .queryParam( "password", "test" )
-//                                          .accept( MediaType.APPLICATION_JSON )
-//                                          .get( String.class ));
-//
-//        Long changeTime2 = node.get( "passwordChanged" ).longValue();
-//        assertTrue( changeTime < changeTime2 );
-//        assertTrue( System.currentTimeMillis() - changeTime2 < 2000 );
-//
-//        node = mapper.readTree( resource().path( "/management/me" ).queryParam( "grant_type", "password" )
-//                                          .queryParam( "username", email ).queryParam( "password", "test" ).accept( MediaType.APPLICATION_JSON )
-//                                          .get( String.class ));
-//
-//        Long changeTime3 = node.get( "passwordChanged" ).longValue();
-//        assertEquals( changeTime2, changeTime3 );
+        Long changeTime3 = Long.parseLong( response.getProperties().get( "passwordChanged" ).toString() );
+        assertEquals( changeTime2, changeTime3 );
     }