Sort subdirectories alphabetically Change-Id: I5f8716d115380fe68a718c03ae02dd79ebecb28e
diff --git a/javatests/com/google/gitiles/TreeSoyDataTest.java b/javatests/com/google/gitiles/TreeSoyDataTest.java index cafe4e2..75ae771 100644 --- a/javatests/com/google/gitiles/TreeSoyDataTest.java +++ b/javatests/com/google/gitiles/TreeSoyDataTest.java
@@ -17,11 +17,11 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.gitiles.TreeSoyData.getTargetDisplayName; import static com.google.gitiles.TreeSoyData.resolveTargetUrl; -import static com.google.gitiles.TreeSoyData.sortByType; +import static com.google.gitiles.TreeSoyData.sortByTypeAlpha; import com.google.common.base.Strings; -import java.util.Map; import java.util.HashMap; +import java.util.Map; import org.eclipse.jgit.lib.ObjectId; import org.junit.Test; import org.junit.runner.RunWith; @@ -70,22 +70,44 @@ @Test public void sortByTypeSortsCorrect() throws Exception { - Map<String, String> m1 = new HashMap<String, String>(); - Map<String, String> m2 = new HashMap<String, String>(); - Map<String, String> m3 = new HashMap<String, String>(); - Map<String, String> m4 = new HashMap<String, String>(); - Map<String, String> m5 = new HashMap<String, String>(); + Map<String, String> m1 = new HashMap<>(); + Map<String, String> m2 = new HashMap<>(); + Map<String, String> m3 = new HashMap<>(); + Map<String, String> m4 = new HashMap<>(); + Map<String, String> m5 = new HashMap<>(); + Map<String, String> m6 = new HashMap<>(); m1.put("type", "TREE"); + m1.put("name", "aa"); m2.put("type", "TREE"); + m2.put("name", "BB"); m3.put("type", "SYMLINK"); m4.put("type", "REGULAR_FILE"); m5.put("type", "GITLINK"); - assertThat(sortByType(m1, m2)).isEqualTo(0); - assertThat(sortByType(m2, m3)).isEqualTo(-1); - assertThat(sortByType(m3, m4)).isEqualTo(-1); - assertThat(sortByType(m4, m1)).isEqualTo(1); - assertThat(sortByType(m1, m4)).isEqualTo(-1); - assertThat(sortByType(m5, m2)).isEqualTo(1); - assertThat(sortByType(m2, m5)).isEqualTo(-1); + m6.put("type", "TREE"); + m6.put("name", "AA"); + assertThat(sortByTypeAlpha(m1, m2)).isEqualTo(-1); + assertThat(sortByTypeAlpha(m2, m3)).isEqualTo(-1); + assertThat(sortByTypeAlpha(m3, m4)).isEqualTo(-1); + assertThat(sortByTypeAlpha(m4, m1)).isEqualTo(1); + assertThat(sortByTypeAlpha(m1, m4)).isEqualTo(-1); + assertThat(sortByTypeAlpha(m5, m2)).isEqualTo(1); + assertThat(sortByTypeAlpha(m2, m5)).isEqualTo(-1); + assertThat(sortByTypeAlpha(m1, m6)).isEqualTo(0); + assertThat(sortByTypeAlpha(m2, m1)).isEqualTo(1); + } + + @Test + public void sortByShortestPathFirst() throws Exception { + Map<String, String> p1 = new HashMap<>(); + Map<String, String> p2 = new HashMap<>(); + Map<String, String> p3 = new HashMap<>(); + p1.put("type", "TREE"); + p1.put("name", "short/"); + p2.put("type", "TREE"); + p2.put("name", "shortpath/"); + p3.put("type", "TREE"); + p3.put("name", "short.path/"); + assertThat(sortByTypeAlpha(p1, p2)).isLessThan(0); + assertThat(sortByTypeAlpha(p1, p3)).isLessThan(0); } }