Search in sources :

Example 6 with FakeHttpServletResponse

use of com.google.gerrit.util.http.testutil.FakeHttpServletResponse in project gerrit by GerritCodeReview.

the class ResourceServletTest method notFoundWithRefresh.

@Test
public void notFoundWithRefresh() throws Exception {
    Cache<Path, Resource> cache = newCache(1);
    Servlet servlet = new Servlet(fs, cache, true);
    FakeHttpServletResponse res = new FakeHttpServletResponse();
    servlet.doGet(request("/notfound"), res);
    assertThat(res.getStatus()).isEqualTo(SC_NOT_FOUND);
    assertNotCacheable(res);
    assertCacheHits(cache, 0, 1);
    res = new FakeHttpServletResponse();
    servlet.doGet(request("/notfound"), res);
    assertThat(res.getStatus()).isEqualTo(SC_NOT_FOUND);
    assertNotCacheable(res);
    assertCacheHits(cache, 1, 1);
}
Also used : Path(java.nio.file.Path) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) Resource(com.google.gerrit.httpd.raw.ResourceServlet.Resource) Test(org.junit.Test)

Example 7 with FakeHttpServletResponse

use of com.google.gerrit.util.http.testutil.FakeHttpServletResponse in project gerrit by GerritCodeReview.

the class IndexServletTest method renderTemplate.

@Test
public void renderTemplate() throws Exception {
    Accounts accountsApi = mock(Accounts.class);
    when(accountsApi.self()).thenThrow(new AuthException("user needs to be authenticated"));
    Server serverApi = mock(Server.class);
    when(serverApi.getVersion()).thenReturn("123");
    when(serverApi.topMenus()).thenReturn(ImmutableList.of());
    ServerInfo serverInfo = new ServerInfo();
    serverInfo.defaultTheme = "my-default-theme";
    when(serverApi.getInfo()).thenReturn(serverInfo);
    Config configApi = mock(Config.class);
    when(configApi.server()).thenReturn(serverApi);
    GerritApi gerritApi = mock(GerritApi.class);
    when(gerritApi.accounts()).thenReturn(accountsApi);
    when(gerritApi.config()).thenReturn(configApi);
    String testCanonicalUrl = "foo-url";
    String testCdnPath = "bar-cdn";
    String testFaviconURL = "zaz-url";
    // Pick any known experiment enabled by default;
    String disabledDefault = ExperimentFeaturesConstants.UI_FEATURE_PATCHSET_COMMENTS;
    assertThat(ExperimentFeaturesConstants.DEFAULT_ENABLED_FEATURES).contains(disabledDefault);
    org.eclipse.jgit.lib.Config serverConfig = new org.eclipse.jgit.lib.Config();
    serverConfig.setStringList("experiments", null, "enabled", ImmutableList.of("NewFeature", "DisabledFeature"));
    serverConfig.setStringList("experiments", null, "disabled", ImmutableList.of("DisabledFeature", disabledDefault));
    ExperimentFeatures experimentFeatures = new ConfigExperimentFeatures(serverConfig);
    IndexServlet servlet = new IndexServlet(testCanonicalUrl, testCdnPath, testFaviconURL, gerritApi, experimentFeatures);
    FakeHttpServletResponse response = new FakeHttpServletResponse();
    servlet.doGet(new FakeHttpServletRequest(), response);
    String output = response.getActualBodyString();
    assertThat(output).contains("<!DOCTYPE html>");
    assertThat(output).contains("window.CANONICAL_PATH = '" + testCanonicalUrl);
    assertThat(output).contains("<link rel=\"preload\" href=\"" + testCdnPath);
    assertThat(output).contains("<link rel=\"icon\" type=\"image/x-icon\" href=\"" + testCanonicalUrl + "/" + testFaviconURL);
    assertThat(output).contains("window.INITIAL_DATA = JSON.parse(" + "'\\x7b\\x22\\/config\\/server\\/version\\x22: \\x22123\\x22, " + "\\x22\\/config\\/server\\/info\\x22: \\x7b\\x22default_theme\\x22:" + "\\x22my-default-theme\\x22\\x7d, \\x22\\/config\\/server\\/top-menus\\x22: " + "\\x5b\\x5d\\x7d');");
    ImmutableSet<String> enabledDefaults = ExperimentFeaturesConstants.DEFAULT_ENABLED_FEATURES.stream().filter(e -> !e.equals(disabledDefault)).collect(ImmutableSet.toImmutableSet());
    List<String> expectedEnabled = new ArrayList<>();
    expectedEnabled.add("NewFeature");
    expectedEnabled.addAll(enabledDefaults);
    assertThat(output).contains("window.ENABLED_EXPERIMENTS = JSON.parse('\\x5b\\x22" + String.join("\\x22,", expectedEnabled) + "\\x22\\x5d');</script>");
}
Also used : ImmutableSet(com.google.common.collect.ImmutableSet) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) ExperimentFeatures(com.google.gerrit.server.experiments.ExperimentFeatures) Test(org.junit.Test) Mockito.when(org.mockito.Mockito.when) Truth.assertThat(com.google.common.truth.Truth.assertThat) ServerInfo(com.google.gerrit.extensions.common.ServerInfo) ArrayList(java.util.ArrayList) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) Accounts(com.google.gerrit.extensions.api.accounts.Accounts) Config(com.google.gerrit.extensions.api.config.Config) Server(com.google.gerrit.extensions.api.config.Server) ExperimentFeaturesConstants(com.google.gerrit.server.experiments.ExperimentFeaturesConstants) AuthException(com.google.gerrit.extensions.restapi.AuthException) FakeHttpServletRequest(com.google.gerrit.util.http.testutil.FakeHttpServletRequest) ConfigExperimentFeatures(com.google.gerrit.server.experiments.ConfigExperimentFeatures) GerritApi(com.google.gerrit.extensions.api.GerritApi) Mockito.mock(org.mockito.Mockito.mock) FakeHttpServletRequest(com.google.gerrit.util.http.testutil.FakeHttpServletRequest) Server(com.google.gerrit.extensions.api.config.Server) ServerInfo(com.google.gerrit.extensions.common.ServerInfo) Config(com.google.gerrit.extensions.api.config.Config) ArrayList(java.util.ArrayList) AuthException(com.google.gerrit.extensions.restapi.AuthException) GerritApi(com.google.gerrit.extensions.api.GerritApi) ExperimentFeatures(com.google.gerrit.server.experiments.ExperimentFeatures) ConfigExperimentFeatures(com.google.gerrit.server.experiments.ConfigExperimentFeatures) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) ConfigExperimentFeatures(com.google.gerrit.server.experiments.ConfigExperimentFeatures) Accounts(com.google.gerrit.extensions.api.accounts.Accounts) Test(org.junit.Test)

Example 8 with FakeHttpServletResponse

use of com.google.gerrit.util.http.testutil.FakeHttpServletResponse in project gerrit by GerritCodeReview.

the class AllRequestFilterFilterProxyTest method noFilters.

@Test
public void noFilters() throws Exception {
    FilterConfig config = mock(FilterConfig.class);
    HttpServletRequest req = new FakeHttpServletRequest();
    HttpServletResponse res = new FakeHttpServletResponse();
    FilterChain chain = mock(FilterChain.class);
    AllRequestFilter.FilterProxy filterProxy = getFilterProxy();
    filterProxy.init(config);
    filterProxy.doFilter(req, res, chain);
    filterProxy.destroy();
    verify(chain).doFilter(req, res);
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) FakeHttpServletRequest(com.google.gerrit.util.http.testutil.FakeHttpServletRequest) FakeHttpServletRequest(com.google.gerrit.util.http.testutil.FakeHttpServletRequest) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) FilterChain(javax.servlet.FilterChain) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) HttpServletResponse(javax.servlet.http.HttpServletResponse) FilterConfig(javax.servlet.FilterConfig) Test(org.junit.Test)

Example 9 with FakeHttpServletResponse

use of com.google.gerrit.util.http.testutil.FakeHttpServletResponse in project gerrit by GerritCodeReview.

the class AllRequestFilterFilterProxyTest method twoFiltersBubbling.

@Test
public void twoFiltersBubbling() throws Exception {
    FilterConfig config = mock(FilterConfig.class);
    HttpServletRequest req = new FakeHttpServletRequest();
    HttpServletResponse res = new FakeHttpServletResponse();
    FilterChain chain = mock(FilterChain.class);
    ArgumentCaptor<FilterChain> capturedChainA = ArgumentCaptor.forClass(FilterChain.class);
    ArgumentCaptor<FilterChain> capturedChainB = ArgumentCaptor.forClass(FilterChain.class);
    AllRequestFilter filterA = mock(AllRequestFilter.class);
    AllRequestFilter filterB = mock(AllRequestFilter.class);
    AllRequestFilter.FilterProxy filterProxy = getFilterProxy();
    addFilter(filterA);
    addFilter(filterB);
    filterProxy.init(config);
    filterProxy.doFilter(req, res, chain);
    InOrder inorder = inOrder(filterA, filterB, chain);
    inorder.verify(filterA).init(config);
    inorder.verify(filterB).init(config);
    inorder.verify(filterA).doFilter(eq(req), eq(res), capturedChainA.capture());
    capturedChainA.getValue().doFilter(req, res);
    inorder.verify(filterB).doFilter(eq(req), eq(res), capturedChainB.capture());
    capturedChainB.getValue().doFilter(req, res);
    inorder.verify(chain).doFilter(req, res);
    filterProxy.destroy();
    inorder.verify(filterA).destroy();
    inorder.verify(filterB).destroy();
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) FakeHttpServletRequest(com.google.gerrit.util.http.testutil.FakeHttpServletRequest) FakeHttpServletRequest(com.google.gerrit.util.http.testutil.FakeHttpServletRequest) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) InOrder(org.mockito.InOrder) FilterChain(javax.servlet.FilterChain) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) HttpServletResponse(javax.servlet.http.HttpServletResponse) FilterConfig(javax.servlet.FilterConfig) Test(org.junit.Test)

Example 10 with FakeHttpServletResponse

use of com.google.gerrit.util.http.testutil.FakeHttpServletResponse in project gerrit by GerritCodeReview.

the class AllRequestFilterFilterProxyTest method singleFilterBubbling.

@Test
public void singleFilterBubbling() throws Exception {
    FilterConfig config = mock(FilterConfig.class);
    HttpServletRequest req = new FakeHttpServletRequest();
    HttpServletResponse res = new FakeHttpServletResponse();
    FilterChain chain = mock(FilterChain.class);
    ArgumentCaptor<FilterChain> capturedChain = ArgumentCaptor.forClass(FilterChain.class);
    AllRequestFilter filter = mock(AllRequestFilter.class);
    AllRequestFilter.FilterProxy filterProxy = getFilterProxy();
    addFilter(filter);
    InOrder inorder = inOrder(filter, chain);
    filterProxy.init(config);
    filterProxy.doFilter(req, res, chain);
    inorder.verify(filter).init(config);
    inorder.verify(filter).doFilter(eq(req), eq(res), capturedChain.capture());
    capturedChain.getValue().doFilter(req, res);
    inorder.verify(chain).doFilter(req, res);
    filterProxy.destroy();
    inorder.verify(filter).destroy();
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) FakeHttpServletRequest(com.google.gerrit.util.http.testutil.FakeHttpServletRequest) FakeHttpServletRequest(com.google.gerrit.util.http.testutil.FakeHttpServletRequest) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) InOrder(org.mockito.InOrder) FilterChain(javax.servlet.FilterChain) FakeHttpServletResponse(com.google.gerrit.util.http.testutil.FakeHttpServletResponse) HttpServletResponse(javax.servlet.http.HttpServletResponse) FilterConfig(javax.servlet.FilterConfig) Test(org.junit.Test)

Aggregations

FakeHttpServletResponse (com.google.gerrit.util.http.testutil.FakeHttpServletResponse)18 Test (org.junit.Test)17 FakeHttpServletRequest (com.google.gerrit.util.http.testutil.FakeHttpServletRequest)12 Resource (com.google.gerrit.httpd.raw.ResourceServlet.Resource)9 Path (java.nio.file.Path)9 FilterChain (javax.servlet.FilterChain)7 FilterConfig (javax.servlet.FilterConfig)7 HttpServletRequest (javax.servlet.http.HttpServletRequest)7 HttpServletResponse (javax.servlet.http.HttpServletResponse)7 InOrder (org.mockito.InOrder)6 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableSet (com.google.common.collect.ImmutableSet)1 Truth.assertThat (com.google.common.truth.Truth.assertThat)1 GerritApi (com.google.gerrit.extensions.api.GerritApi)1 Accounts (com.google.gerrit.extensions.api.accounts.Accounts)1 Config (com.google.gerrit.extensions.api.config.Config)1 Server (com.google.gerrit.extensions.api.config.Server)1 ServerInfo (com.google.gerrit.extensions.common.ServerInfo)1 AuthException (com.google.gerrit.extensions.restapi.AuthException)1 AuthRequest (com.google.gerrit.server.account.AuthRequest)1