Add property to configure path separator in URLs for a gitweb service

In URLs to a gitweb service, Gerrit by default will escape slashes in
project and branch names replacing them with the corresponding hexa-
decimal encoding. Some web servers, such as Tomcat, reject hexadecimal
encoded slashes in the URL.

The gitweb service GitBlit, allows to configure an alternative path
separator character (e.g. '*'). This change introduces the property
"gitweb.pathSeparator", which allows to configure a path separator in
Gerrit matching the path separator used by the gitweb service.

Change-Id: I0c67e6264abfa156e4c513e1fad17dac141fa7d3
Signed-off-by: Adrian Goerler <adrian.goerler@sap.com>
This commit is contained in:
Adrian Goerler
2011-11-10 08:39:55 +01:00
parent 03a716c67d
commit f200707fcc
6 changed files with 167 additions and 8 deletions

View File

@@ -0,0 +1,35 @@
// Copyright (C) 2011 The Android Open Source Project
//
// 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 com.google.gerrit.httpd;
import junit.framework.TestCase;
public class GitWebConfigTest extends TestCase {
private static final String VALID_CHARACTERS = "*()";
private static final String SOME_INVALID_CHARACTERS = "09AZaz$-_.+!',";
public void testValidPathSeparator() {
for(char c : VALID_CHARACTERS.toCharArray()) {
assertTrue("valid character rejected: " + c, GitWebConfig.isValidPathSeparator(c));
}
}
public void testInalidPathSeparator() {
for(char c : SOME_INVALID_CHARACTERS.toCharArray()) {
assertFalse("invalid character accepted: " + c, GitWebConfig.isValidPathSeparator(c));
}
}
}