You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RedmineAuthenticationTest.java 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.gitblit.tests;
  2. import static org.hamcrest.CoreMatchers.is;
  3. import java.util.HashMap;
  4. import org.junit.Test;
  5. import com.gitblit.IStoredSettings;
  6. import com.gitblit.auth.RedmineAuthProvider;
  7. import com.gitblit.manager.RuntimeManager;
  8. import com.gitblit.manager.UserManager;
  9. import com.gitblit.models.UserModel;
  10. import com.gitblit.tests.mock.MemorySettings;
  11. public class RedmineAuthenticationTest extends GitblitUnitTest {
  12. private static final String JSON = "{\"user\":{\"created_on\":\"2011-03-28T00:41:29Z\",\"lastname\":\"foo\","
  13. + "\"last_login_on\":\"2012-09-06T23:59:26Z\",\"firstname\":\"baz\","
  14. + "\"id\":4,\"login\":\"RedmineUserId\",\"mail\":\"baz@example.com\"}}";
  15. private static final String NOT_ADMIN_JSON = "{\"user\":{\"lastname\":\"foo\","
  16. + "\"last_login_on\":\"2012-09-08T13:59:01Z\",\"created_on\":\"2009-03-17T14:25:50Z\","
  17. + "\"mail\":\"baz@example.com\",\"id\":5,\"firstname\":\"baz\"}}";
  18. MemorySettings getSettings() {
  19. return new MemorySettings(new HashMap<String, Object>());
  20. }
  21. RedmineAuthProvider newRedmineAuthentication(IStoredSettings settings) {
  22. RuntimeManager runtime = new RuntimeManager(settings, GitBlitSuite.BASEFOLDER).start();
  23. UserManager users = new UserManager(runtime).start();
  24. RedmineAuthProvider redmine = new RedmineAuthProvider();
  25. redmine.setup(runtime, users);
  26. return redmine;
  27. }
  28. RedmineAuthProvider newRedmineAuthentication() {
  29. return newRedmineAuthentication(getSettings());
  30. }
  31. @Test
  32. public void testAuthenticate() throws Exception {
  33. RedmineAuthProvider redmine = newRedmineAuthentication();
  34. redmine.setTestingCurrentUserAsJson(JSON);
  35. UserModel userModel = redmine.authenticate("RedmineAdminId", "RedmineAPIKey".toCharArray());
  36. assertThat(userModel.getName(), is("redmineadminid"));
  37. assertThat(userModel.getDisplayName(), is("baz foo"));
  38. assertThat(userModel.emailAddress, is("baz@example.com"));
  39. assertNotNull(userModel.cookie);
  40. assertThat(userModel.canAdmin, is(true));
  41. }
  42. @Test
  43. public void testAuthenticateNotAdminUser() throws Exception {
  44. RedmineAuthProvider redmine = newRedmineAuthentication();
  45. redmine.setTestingCurrentUserAsJson(NOT_ADMIN_JSON);
  46. UserModel userModel = redmine.authenticate("RedmineUserId", "RedmineAPIKey".toCharArray());
  47. assertThat(userModel.getName(), is("redmineuserid"));
  48. assertThat(userModel.getDisplayName(), is("baz foo"));
  49. assertThat(userModel.emailAddress, is("baz@example.com"));
  50. assertNotNull(userModel.cookie);
  51. assertThat(userModel.canAdmin, is(false));
  52. }
  53. }