blob: 96b29a1413d7ef98b88d3da166425cf08314138a [file] [log] [blame]
// Copyright (C) 2017 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.googlesource.gerrit.plugins.findowners;
import static com.google.common.truth.Truth.assertThat;
import com.googlesource.gerrit.plugins.findowners.Util.Owner2Weights;
import com.googlesource.gerrit.plugins.findowners.Util.String2Integer;
import com.googlesource.gerrit.plugins.findowners.Util.String2String;
import com.googlesource.gerrit.plugins.findowners.Util.String2StringSet;
import com.googlesource.gerrit.plugins.findowners.Util.StringSet;
import org.junit.Test;
/** Test Util class */
public class UtilTest {
@Test
public void getOwner2WeightsTest() {
Owner2Weights m = new Owner2Weights();
assertThat(m.size()).isEqualTo(0);
assertThat(m.get("s1")).isEqualTo(null);
OwnerWeights v1 = new OwnerWeights();
OwnerWeights v2 = new OwnerWeights();
m.put("s1", v1);
assertThat(m.get("s1")).isEqualTo(v1);
// compare OwnerWeights by reference
assertThat(m.get("s1")).isNotEqualTo(v2);
assertThat(m.get("s2")).isEqualTo(null);
assertThat(m.size()).isEqualTo(1);
}
@Test
public void getString2IntegerTest() {
String2Integer m = new String2Integer();
assertThat(m.size()).isEqualTo(0);
assertThat(m.get("s1")).isEqualTo(null);
Integer v1 = 3;
Integer v2 = 3;
m.put("s1", v1);
assertThat(m.get("s1")).isEqualTo(v1);
// compare Integer by value
assertThat(m.get("s1")).isEqualTo(v2);
assertThat(m.get("s2")).isEqualTo(null);
assertThat(m.size()).isEqualTo(1);
}
@Test
public void getString2StringTest() {
String2String m = new String2String();
assertThat(m.size()).isEqualTo(0);
assertThat(m.get("s1")).isEqualTo(null);
String v1 = "x";
String v2 = "x";
m.put("s1", v1);
assertThat(m.get("s1")).isEqualTo(v1);
// compare String by value
assertThat(m.get("s1")).isEqualTo(v2);
assertThat(m.get("s2")).isEqualTo(null);
assertThat(m.size()).isEqualTo(1);
}
@Test
public void getString2StringSetTest() {
String2StringSet m = new String2StringSet();
assertThat(m.size()).isEqualTo(0);
assertThat(m.get("s1")).isEqualTo(null);
StringSet v1 = new StringSet();
StringSet v2 = new StringSet();
assertThat(v1.size()).isEqualTo(0);
v1.add("x");
v1.add("y");
v2.add("y");
v2.add("x");
assertThat(v1.size()).isEqualTo(2);
m.put("s1", v1);
assertThat(m.get("s1")).isEqualTo(v1);
// compare StringSet by value
assertThat(m.get("s1")).isEqualTo(v2);
assertThat(m.get("s2")).isEqualTo(null);
assertThat(m.size()).isEqualTo(1);
}
@Test
public void addStringSetTest() {
StringSet s = new StringSet();
assertThat(s.size()).isEqualTo(0);
s.add("s1");
assertThat(s.contains("s1")).isEqualTo(true);
assertThat(s.contains("s2")).isEqualTo(false);
assertThat(s.size()).isEqualTo(1);
}
@Test
public void normalizeURLTest() {
String otherURL = "other:///something///else";
String normalOtherURL = "other://something///else";
String normalURL = "http://www.google.com:8080/plugins";
String badURL = "http:///www.google.com:8080/plugins";
String localURL = "http://localhost:8080/plugins";
String badLocalURL = "http:///localhost:8080/plugins";
// Allow other URL protocols, although we might need only http for now.
assertThat(Util.normalizeURL(otherURL)).isEqualTo(normalOtherURL);
assertThat(Util.normalizeURL(normalURL)).isEqualTo(normalURL);
assertThat(Util.normalizeURL(badURL)).isEqualTo(normalURL);
assertThat(Util.normalizeURL(localURL)).isEqualTo(localURL);
assertThat(Util.normalizeURL(badLocalURL)).isEqualTo(localURL);
}
@Test
public void stripMagicPrefixTest() {
assertThat(Util.stripMagicPrefix("abc\nxyz\n")).isEqualTo("abc\nxyz\n");
assertThat(Util.stripMagicPrefix(")]}'\nxyz\n")).isEqualTo("xyz\n");
assertThat(Util.stripMagicPrefix(")]}'xyz\n")).isEqualTo(")]}'xyz\n");
assertThat(Util.stripMagicPrefix(")]}'\nxyz")).isEqualTo("xyz");
}
// TODO: use a mocked HTTP server to test:
// getHTTP getHTTPJsonObject getHTTPJsonArray getHTTPBase64Content
@Test
public void getDirNameTest() {
String[] files = {"", "./d1/", "d1/d2/f1.c", "./d2/f2.c", "./d1" };
String[] dirs = {null, ".", "d1/d2", "./d2", "."};
for (int i = 0; i < files.length; i++) {
assertThat(Util.getDirName(files[i])).isEqualTo(dirs[i]);
}
}
@Test
public void normalizeFilePathTest() {
String[] files = {"", "./d1/", "d1/d2/f1.c", "d2/f2/", "d1" };
String[] results = {"./", "./d1/", "./d1/d2/f1.c", "./d2/f2/", "./d1"};
for (int i = 0; i < files.length; i++) {
assertThat(Util.normalizedFilePath(files[i])).isEqualTo(results[i]);
}
}
@Test
public void normalizedDirPathTest() {
String[] files = {"", "./d1/", "d1/d2/f1.c", "./d2/f2.c", "./d1" };
String[] dirs = {null, ".", "./d1/d2", "./d2", "."};
for (int i = 0; i < files.length; i++) {
assertThat(Util.normalizedDirPath(files[i])).isEqualTo(dirs[i]);
}
}
@Test
public void parseBooleanTest() {
String[] yesStrs = {"True", "1", "true", "TRUE", "yes"};
String[] noStrs = {"", "False", "0", "false", "FALSE", "no", "other"};
for (String s : yesStrs) {
assertThat(Util.parseBoolean(s)).isEqualTo(true);
}
for (String s : noStrs) {
assertThat(Util.parseBoolean(s)).isEqualTo(false);
}
}
@Test
public void sortTest() {
// TODO: test Util.sort
}
@Test
public void newJsonArrayFromStringSetTest() {
// TODO: test Uril.newJsonArrayFromStringSet
}
}