161cea951d1e813941b80bba7438745541e5133eaMindy Pereira/* 261cea951d1e813941b80bba7438745541e5133eaMindy Pereira * Copyright (C) 2012 Google Inc. 361cea951d1e813941b80bba7438745541e5133eaMindy Pereira * Licensed to The Android Open Source Project. 461cea951d1e813941b80bba7438745541e5133eaMindy Pereira * 561cea951d1e813941b80bba7438745541e5133eaMindy Pereira * Licensed under the Apache License, Version 2.0 (the "License"); 661cea951d1e813941b80bba7438745541e5133eaMindy Pereira * you may not use this file except in compliance with the License. 761cea951d1e813941b80bba7438745541e5133eaMindy Pereira * You may obtain a copy of the License at 861cea951d1e813941b80bba7438745541e5133eaMindy Pereira * 961cea951d1e813941b80bba7438745541e5133eaMindy Pereira * http://www.apache.org/licenses/LICENSE-2.0 1061cea951d1e813941b80bba7438745541e5133eaMindy Pereira * 1161cea951d1e813941b80bba7438745541e5133eaMindy Pereira * Unless required by applicable law or agreed to in writing, software 1261cea951d1e813941b80bba7438745541e5133eaMindy Pereira * distributed under the License is distributed on an "AS IS" BASIS, 1361cea951d1e813941b80bba7438745541e5133eaMindy Pereira * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1461cea951d1e813941b80bba7438745541e5133eaMindy Pereira * See the License for the specific language governing permissions and 1561cea951d1e813941b80bba7438745541e5133eaMindy Pereira * limitations under the License. 1661cea951d1e813941b80bba7438745541e5133eaMindy Pereira */ 1761cea951d1e813941b80bba7438745541e5133eaMindy Pereira 1861cea951d1e813941b80bba7438745541e5133eaMindy Pereirapackage com.android.mail.ui; 1961cea951d1e813941b80bba7438745541e5133eaMindy Pereira 2061cea951d1e813941b80bba7438745541e5133eaMindy Pereiraimport android.test.AndroidTestCase; 2170ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieuximport android.text.SpannableStringBuilder; 221e947b0159d23e5cfc86f10440c4fe7aa62b282eJerry Xieimport android.test.suitebuilder.annotation.SmallTest; 2361cea951d1e813941b80bba7438745541e5133eaMindy Pereira 241e947b0159d23e5cfc86f10440c4fe7aa62b282eJerry Xie@SmallTest 2561cea951d1e813941b80bba7438745541e5133eaMindy Pereirapublic class HierarchicalFolderTruncationTests extends AndroidTestCase { 2661cea951d1e813941b80bba7438745541e5133eaMindy Pereira 2761cea951d1e813941b80bba7438745541e5133eaMindy Pereira private HierarchicalFolderSelectorAdapter mAdapter; 2861cea951d1e813941b80bba7438745541e5133eaMindy Pereira 2961cea951d1e813941b80bba7438745541e5133eaMindy Pereira @Override 3061cea951d1e813941b80bba7438745541e5133eaMindy Pereira protected void setUp() throws Exception { 3161cea951d1e813941b80bba7438745541e5133eaMindy Pereira super.setUp(); 32106a12a1b6642e8c2f716aefa846d9664fbec158Andrew Sapperstein mAdapter = new HierarchicalFolderSelectorAdapter(mContext, null, null, 1); 3361cea951d1e813941b80bba7438745541e5133eaMindy Pereira } 3461cea951d1e813941b80bba7438745541e5133eaMindy Pereira 3561cea951d1e813941b80bba7438745541e5133eaMindy Pereira public void testEmpty() { 3670ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux assertNull(truncate(null)); 3761cea951d1e813941b80bba7438745541e5133eaMindy Pereira } 3861cea951d1e813941b80bba7438745541e5133eaMindy Pereira 3961cea951d1e813941b80bba7438745541e5133eaMindy Pereira public void testNoParents() { 4070ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux assertEquals("name", truncate("name")); 4161cea951d1e813941b80bba7438745541e5133eaMindy Pereira } 4261cea951d1e813941b80bba7438745541e5133eaMindy Pereira 4361cea951d1e813941b80bba7438745541e5133eaMindy Pereira public void testSingleParent() { 4470ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux assertEquals("parent\u2215folder", truncate("parent/folder")); 4561cea951d1e813941b80bba7438745541e5133eaMindy Pereira } 4661cea951d1e813941b80bba7438745541e5133eaMindy Pereira 4761cea951d1e813941b80bba7438745541e5133eaMindy Pereira public void testDoubleParent() { 4870ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux assertEquals("grandparent\u2215parent\u2215folder", truncate("grandparent/parent/folder")); 4961cea951d1e813941b80bba7438745541e5133eaMindy Pereira } 5061cea951d1e813941b80bba7438745541e5133eaMindy Pereira 5161cea951d1e813941b80bba7438745541e5133eaMindy Pereira public void testEllipsizedDoubleParent() { 5261cea951d1e813941b80bba7438745541e5133eaMindy Pereira assertEquals("grandparent\u2215\u2026\u2215parent\u2215folder", 5370ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux truncate("grandparent/stuff/stuff/stuff/stuff/parent/folder")); 5470ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux } 5570ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux 5670ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux private String truncate(String hierarchy) { 5770ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux final SpannableStringBuilder result = mAdapter.truncateHierarchy(hierarchy); 5870ebf05c8afcef77f3a63ffac011ed37b580f1e5James Lemieux return result == null ? null : result.toString(); 5961cea951d1e813941b80bba7438745541e5133eaMindy Pereira } 6061cea951d1e813941b80bba7438745541e5133eaMindy Pereira} 61