view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerHgPathProviderTest.java @ 981:64b5816390f9 Indore-2017.2.x

TW-50054 support hg path whitelist Use hg path from VCS root only if it in whitelist
author Dmitry Neverov <dmitry.neverov@gmail.com>
date Wed, 24 Jan 2018 21:19:56 +0100
parents 38adef4f1b8f
children 4a0ea921c214
line wrap: on
line source
/*
 * Copyright 2000-2018 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package jetbrains.buildServer.buildTriggers.vcs.mercurial;

import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.HgVcsRoot;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import static org.testng.AssertJUnit.assertEquals;

/**
 * @author dmitry.neverov
 */
@Test
public class ServerHgPathProviderTest extends BaseMercurialTestCase {

  private String myServerWideHgPath;
  private String myVcsRootHgPath;


  @BeforeMethod
  public void setUp() throws Exception {
    super.setUp();
    myServerWideHgPath = null;
    myVcsRootHgPath = "/vcs/root/hg/path";
  }


  public void server_should_use_settings_from_vcs_root_if_server_wide_path_is_not_set_and_path_is_in_whitelist() throws Exception {
    setInternalProperty(Constants.HG_PATH_WHITELIST, myVcsRootHgPath);
    myServerWideHgPath = null;
    HgPathProvider provider = createHgPathProvider();
    HgVcsRoot root = createHgRoot();
    assertEquals(myVcsRootHgPath, provider.getHgPath(root));
  }


  public void server_should_use_server_wide_path_if_it_is_set() throws Exception {
    myServerWideHgPath = "/server-wide/hg/path";
    HgPathProvider provider = createHgPathProvider();
    HgVcsRoot root = createHgRoot();
    assertEquals(myServerWideHgPath, provider.getHgPath(root));
  }


  private ServerHgPathProvider createHgPathProvider() {
    ServerPluginConfig config = new ServerPluginConfigBuilder().hgPath(myServerWideHgPath).build();
    return new ServerHgPathProvider(config);
  }


  private HgVcsRoot createHgRoot() throws Exception {
    return new HgVcsRoot(new VcsRootBuilder().withUrl("some url").withHgPath(myVcsRootHgPath).build());
  }

}