IDEA-128178 Tab title limit: truncation could be improved
authorVassiliy.Kudryashov <Vassiliy.Kudryashov@jetbrains.com>
Mon, 4 Aug 2014 07:08:21 +0000 (11:08 +0400)
committerVassiliy.Kudryashov <Vassiliy.Kudryashov@jetbrains.com>
Mon, 4 Aug 2014 07:09:47 +0000 (11:09 +0400)
platform/util/src/com/intellij/openapi/util/text/StringUtil.java
platform/util/testSrc/com/intellij/util/text/StringUtilTest.java

index 61ec6edb41cdd23b3ce4b03ab176410058efbb89..b4201c56aa85fbbdbb8d289344b1e674be924020 100644 (file)
@@ -2686,7 +2686,7 @@ public class StringUtil extends StringUtilRt {
     String toPaste = "...";
     int index;
     while (true) {
-      index = Math.max(0, words.size() / 2 - 1);
+      index = Math.max(0, (words.size() - 1) / 2);
       String aWord = words.get(index);
       words.remove(index);
       if (words.size() < 2) {
index e1d28d247d725024147f4c03acdaf34b6e458d6e..46b7da7c734c15d4d6c2bf30aa6bfcd8838ac984 100644 (file)
@@ -197,12 +197,20 @@ public class StringUtilTest extends TestCase {
   }
 
   public void testShortened() {
-    String[] names = {"AVeryVeeryLongClassName.java", "com.test.SomeJAVAClassName.java", "strangelowercaseclassname.java"};
+    String[] names = {"AVeryVeeryLongClassName.java", "com.test.SomeJAVAClassName.java", "strangelowercaseclassname.java", "PrefixPostfix.java"};
     for (String name : names) {
       for (int i = name.length() + 1; i > 15; i--) {
         String shortened = StringUtil.getShortened(name, i);
         assertTrue(shortened.length() <= i);
         assertTrue(!shortened.contains("...."));
+        int pos = shortened.indexOf("...");
+        if (pos != -1) {
+          assertTrue(name.startsWith(shortened.substring(0, pos)));
+          assertTrue(name.endsWith(shortened.substring(pos + 3)));
+        }
+        else {
+          assertEquals(shortened,  name);
+        }
       }
     }
   }