diff options
Diffstat (limited to 'src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java')
-rw-r--r-- | src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java b/src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java new file mode 100644 index 00000000..1fe8459f --- /dev/null +++ b/src/test/java/com/gitblit/tests/RedmineAuthenticationTest.java @@ -0,0 +1,65 @@ +package com.gitblit.tests; + +import static org.hamcrest.CoreMatchers.is; + +import java.util.HashMap; + +import org.junit.Test; + +import com.gitblit.IStoredSettings; +import com.gitblit.auth.RedmineAuthProvider; +import com.gitblit.manager.RuntimeManager; +import com.gitblit.manager.UserManager; +import com.gitblit.models.UserModel; +import com.gitblit.tests.mock.MemorySettings; + +public class RedmineAuthenticationTest extends GitblitUnitTest { + + private static final String JSON = "{\"user\":{\"created_on\":\"2011-03-28T00:41:29Z\",\"lastname\":\"foo\"," + + "\"last_login_on\":\"2012-09-06T23:59:26Z\",\"firstname\":\"baz\"," + + "\"id\":4,\"login\":\"RedmineUserId\",\"mail\":\"baz@example.com\"}}"; + + private static final String NOT_ADMIN_JSON = "{\"user\":{\"lastname\":\"foo\"," + + "\"last_login_on\":\"2012-09-08T13:59:01Z\",\"created_on\":\"2009-03-17T14:25:50Z\"," + + "\"mail\":\"baz@example.com\",\"id\":5,\"firstname\":\"baz\"}}"; + + MemorySettings getSettings() { + return new MemorySettings(new HashMap<String, Object>()); + } + + RedmineAuthProvider newRedmineAuthentication(IStoredSettings settings) { + RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start(); + UserManager users = new UserManager(runtime).start(); + RedmineAuthProvider redmine = new RedmineAuthProvider(); + redmine.setup(runtime, users); + return redmine; + } + + RedmineAuthProvider newRedmineAuthentication() { + return newRedmineAuthentication(getSettings()); + } + + @Test + public void testAuthenticate() throws Exception { + RedmineAuthProvider redmine = newRedmineAuthentication(); + redmine.setTestingCurrentUserAsJson(JSON); + UserModel userModel = redmine.authenticate("RedmineAdminId", "RedmineAPIKey".toCharArray()); + assertThat(userModel.getName(), is("redmineadminid")); + assertThat(userModel.getDisplayName(), is("baz foo")); + assertThat(userModel.emailAddress, is("baz@example.com")); + assertNotNull(userModel.cookie); + assertThat(userModel.canAdmin, is(true)); + } + + @Test + public void testAuthenticateNotAdminUser() throws Exception { + RedmineAuthProvider redmine = newRedmineAuthentication(); + redmine.setTestingCurrentUserAsJson(NOT_ADMIN_JSON); + UserModel userModel = redmine.authenticate("RedmineUserId", "RedmineAPIKey".toCharArray()); + assertThat(userModel.getName(), is("redmineuserid")); + assertThat(userModel.getDisplayName(), is("baz foo")); + assertThat(userModel.emailAddress, is("baz@example.com")); + assertNotNull(userModel.cookie); + assertThat(userModel.canAdmin, is(false)); + } +} |