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.

UITicketTest.java 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /*
  2. * Copyright 2014 gitblit.com.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package com.gitblit.tests;
  17. import java.io.File;
  18. import java.io.IOException;
  19. import java.util.HashMap;
  20. import java.util.Map;
  21. import org.eclipse.jgit.util.FileUtils;
  22. import org.junit.After;
  23. import org.junit.AfterClass;
  24. import org.junit.Before;
  25. import org.junit.Test;
  26. import com.gitblit.IStoredSettings;
  27. import com.gitblit.Keys;
  28. import com.gitblit.manager.INotificationManager;
  29. import com.gitblit.manager.IPluginManager;
  30. import com.gitblit.manager.IRepositoryManager;
  31. import com.gitblit.manager.IRuntimeManager;
  32. import com.gitblit.manager.IUserManager;
  33. import com.gitblit.manager.NotificationManager;
  34. import com.gitblit.manager.PluginManager;
  35. import com.gitblit.manager.RepositoryManager;
  36. import com.gitblit.manager.RuntimeManager;
  37. import com.gitblit.manager.UserManager;
  38. import com.gitblit.models.RepositoryModel;
  39. import com.gitblit.models.TicketModel;
  40. import com.gitblit.models.TicketModel.Change;
  41. import com.gitblit.models.TicketModel.Field;
  42. import com.gitblit.models.TicketModel.Priority;
  43. import com.gitblit.models.TicketModel.Severity;
  44. import com.gitblit.models.TicketModel.Type;
  45. import com.gitblit.tests.mock.MemorySettings;
  46. import com.gitblit.tickets.ITicketService;
  47. import com.gitblit.tickets.BranchTicketService;
  48. import com.gitblit.utils.JGitUtils;
  49. import com.gitblit.utils.XssFilter;
  50. import com.gitblit.utils.XssFilter.AllowXssFilter;
  51. /**
  52. * Generates the range of tickets to ease testing of the look and feel of tickets
  53. */
  54. public class UITicketTest extends GitblitUnitTest {
  55. private ITicketService service;
  56. static final String repoName = "UITicketTest.git";
  57. final RepositoryModel repo = new RepositoryModel(repoName, null, null, null);
  58. protected ITicketService getService(boolean deleteAll) throws Exception {
  59. IStoredSettings settings = getSettings(deleteAll);
  60. XssFilter xssFilter = new AllowXssFilter();
  61. IRuntimeManager runtimeManager = new RuntimeManager(settings, xssFilter).start();
  62. IPluginManager pluginManager = new PluginManager(runtimeManager).start();
  63. INotificationManager notificationManager = new NotificationManager(settings).start();
  64. IUserManager userManager = new UserManager(runtimeManager, pluginManager).start();
  65. IRepositoryManager repositoryManager = new RepositoryManager(runtimeManager, pluginManager, userManager).start();
  66. BranchTicketService service = (BranchTicketService) new BranchTicketService(
  67. runtimeManager,
  68. pluginManager,
  69. notificationManager,
  70. userManager,
  71. repositoryManager).start();
  72. if (deleteAll) {
  73. service.deleteAll(repo);
  74. }
  75. return service;
  76. }
  77. protected IStoredSettings getSettings(boolean deleteAll) throws Exception {
  78. File dir = new File(GitBlitSuite.REPOSITORIES, repoName);
  79. if (deleteAll) {
  80. if (dir.exists()) {
  81. FileUtils.delete(dir, FileUtils.RECURSIVE | FileUtils.RETRY);
  82. }
  83. JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, repoName).close();
  84. }
  85. File luceneDir = new File(dir, "tickets/lucene");
  86. luceneDir.mkdirs();
  87. Map<String, Object> map = new HashMap<String, Object>();
  88. map.put(Keys.git.repositoriesFolder, GitBlitSuite.REPOSITORIES.getAbsolutePath());
  89. map.put(Keys.tickets.indexFolder, luceneDir.getAbsolutePath());
  90. IStoredSettings settings = new MemorySettings(map);
  91. return settings;
  92. }
  93. @AfterClass
  94. public static void deleteUITicketTestRepo() throws IOException {
  95. //delete the UITicketTest.git folder, at end of the test
  96. File dir = new File(GitBlitSuite.REPOSITORIES, repoName);
  97. if (dir.exists()) {
  98. FileUtils.delete(dir, FileUtils.RECURSIVE | FileUtils.RETRY);
  99. }
  100. }
  101. @Before
  102. public void setup() throws Exception {
  103. service = getService(true);
  104. }
  105. @After
  106. public void cleanup() {
  107. service.stop();
  108. }
  109. @Test
  110. public void UITicketOptions() throws Exception {
  111. for (TicketModel.Type t : TicketModel.Type.values())
  112. {
  113. for (TicketModel.Priority p : TicketModel.Priority.values())
  114. {
  115. for (TicketModel.Severity s : TicketModel.Severity.values())
  116. {
  117. assertNotNull(service.createTicket(repo, newChange(t, p, s)));
  118. }
  119. }
  120. }
  121. }
  122. private Change newChange(Type type, Priority priority, Severity severity) {
  123. Change change = new Change("JUnit");
  124. change.setField(Field.title, String.format("Type: %s | Priority: %s | Severity: %s", type, priority, severity));
  125. change.setField(Field.type, type);
  126. change.setField(Field.severity, severity);
  127. change.setField(Field.priority, priority);
  128. return change;
  129. }
  130. }