mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-11-14 20:42:21 +00:00
[FIXED JENKINS-18364] Functions.getRelativeLinkTo is called many times during rendering, so skip checking View.getItems which is expensive.
This commit is contained in:
1 parent
7037c23d95
commit
bcc8614856
3 files changed
+29
-16
No files matched your search
@@ -23,31 +23,30 @@
|
||||
*/
|
||||
package hudson;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.powermock.api.mockito.PowerMockito.mock;
|
||||
import static org.powermock.api.mockito.PowerMockito.mockStatic;
|
||||
import static org.powermock.api.mockito.PowerMockito.when;
|
||||
import hudson.model.Action;
|
||||
import hudson.model.Computer;
|
||||
import hudson.model.Item;
|
||||
import hudson.model.ItemGroup;
|
||||
import hudson.model.TopLevelItem;
|
||||
import hudson.model.View;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.LogRecord;
|
||||
|
||||
import jenkins.model.Jenkins;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.jvnet.hudson.test.Bug;
|
||||
import org.kohsuke.stapler.Ancestor;
|
||||
import org.kohsuke.stapler.Stapler;
|
||||
import org.kohsuke.stapler.StaplerRequest;
|
||||
import static org.powermock.api.mockito.PowerMockito.mock;
|
||||
import static org.powermock.api.mockito.PowerMockito.mockStatic;
|
||||
import static org.powermock.api.mockito.PowerMockito.when;
|
||||
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
|
||||
@@ -135,6 +134,23 @@ public class FunctionsTest {
|
||||
assertEquals("job/i/", result);
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest({Stapler.class, Jenkins.class})
|
||||
public void testGetRelativeLinkTo_JobFromComputer() throws Exception{
|
||||
Jenkins j = createMockJenkins();
|
||||
ItemGroup parent = j;
|
||||
String contextPath = "/jenkins";
|
||||
StaplerRequest req = createMockRequest(contextPath);
|
||||
mockStatic(Stapler.class);
|
||||
when(Stapler.getCurrentRequest()).thenReturn(req);
|
||||
Computer computer = mock(Computer.class);
|
||||
createMockAncestors(req, createAncestor(computer, "."), createAncestor(j, "../.."));
|
||||
TopLevelItem i = createMockItem(parent, "job/i/");
|
||||
String result = Functions.getRelativeLinkTo(i);
|
||||
assertEquals("/jenkins/job/i/", result);
|
||||
}
|
||||
|
||||
@Ignore("too expensive to make it correct")
|
||||
@Test
|
||||
@PrepareForTest({Stapler.class, Jenkins.class})
|
||||
public void testGetRelativeLinkTo_JobNotContainedInView() throws Exception{
|
||||
|
||||
Reference in new issue
Block a user