• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2011 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.email.activity;
18 
19 import com.android.email.R;
20 
21 import android.app.Activity;
22 import android.content.Context;
23 import android.test.AndroidTestCase;
24 import android.view.View;
25 
26 import java.util.Locale;
27 
28 public class UiUtilitiesTests extends AndroidTestCase {
testFormatSize()29     public void testFormatSize() {
30         if (!"en".equalsIgnoreCase(Locale.getDefault().getLanguage())) {
31             return; // Only works on the EN locale.
32         }
33         assertEquals("0B", UiUtilities.formatSize(getContext(), 0));
34         assertEquals("1B", UiUtilities.formatSize(getContext(), 1));
35         assertEquals("1023B", UiUtilities.formatSize(getContext(), 1023));
36         assertEquals("1KB", UiUtilities.formatSize(getContext(), 1024));
37         assertEquals("1023KB", UiUtilities.formatSize(getContext(), 1024 * 1024 - 1));
38         assertEquals("1MB", UiUtilities.formatSize(getContext(), 1024 * 1024));
39         assertEquals("1023MB", UiUtilities.formatSize(getContext(), 1024 * 1024 * 1024 - 1));
40         assertEquals("1GB", UiUtilities.formatSize(getContext(), 1024 * 1024 * 1024));
41         assertEquals("5GB", UiUtilities.formatSize(getContext(), 5L * 1024 * 1024 * 1024));
42     }
43 
testGetMessageCountForUi()44     public void testGetMessageCountForUi() {
45         final Context c = getContext();
46 
47         // Negavive valeus not really expected, but at least shouldn't crash.
48         assertEquals("-1", UiUtilities.getMessageCountForUi(c, -1, true));
49         assertEquals("-1", UiUtilities.getMessageCountForUi(c, -1, false));
50 
51         assertEquals("", UiUtilities.getMessageCountForUi(c, 0, true));
52         assertEquals("0", UiUtilities.getMessageCountForUi(c, 0, false));
53 
54         assertEquals("1", UiUtilities.getMessageCountForUi(c, 1, true));
55         assertEquals("1", UiUtilities.getMessageCountForUi(c, 1, false));
56 
57         assertEquals("999", UiUtilities.getMessageCountForUi(c, 999, true));
58         assertEquals("999", UiUtilities.getMessageCountForUi(c, 999, false));
59 
60         final String moreThan999 = c.getString(R.string.more_than_999);
61 
62         assertEquals(moreThan999, UiUtilities.getMessageCountForUi(c, 1000, true));
63         assertEquals(moreThan999, UiUtilities.getMessageCountForUi(c, 1000, false));
64 
65         assertEquals(moreThan999, UiUtilities.getMessageCountForUi(c, 1001, true));
66         assertEquals(moreThan999, UiUtilities.getMessageCountForUi(c, 1001, false));
67     }
68 
testGetView()69     public void testGetView() {
70         // Test for getView(Activity, int)
71         DummyActivity a = new DummyActivity();
72         DummyView v = new DummyView(getContext());
73 
74         a.mDummyViewId = 10;
75         a.mDummyView = v;
76         assertEquals(v, UiUtilities.getView(a, 10));
77 
78         try {
79             assertEquals(v, UiUtilities.getView(a, 11));
80             fail();
81         } catch (IllegalArgumentException expected) {
82         }
83 
84         // TODO Test for getView(View, int)?
85         // Unfortunately View.findViewById is final, so can't use the same approach.
86         // Also it's a huge pain to set up an actual, nested views in unit tests, so let's leave
87         // it for now.
88     }
89 
testSetVisibilitySafe()90     public void testSetVisibilitySafe() {
91         {
92             DummyView v = new DummyView(getContext());
93             UiUtilities.setVisibilitySafe(v, View.VISIBLE);
94             assertEquals(View.VISIBLE, v.mVisibility);
95 
96             // Shouldn't crash
97             UiUtilities.setVisibilitySafe(null, View.VISIBLE);
98         }
99 
100         {
101             DummyActivity a = new DummyActivity();
102             DummyView v = new DummyView(getContext());
103             a.mDummyViewId = 3;
104             a.mDummyView = v;
105 
106             UiUtilities.setVisibilitySafe(a, 3, View.VISIBLE);
107             assertEquals(View.VISIBLE, v.mVisibility);
108 
109             // shouldn't crash
110             UiUtilities.setVisibilitySafe(a, 5, View.VISIBLE);
111         }
112         // No test for setVisibilitySafe(View, int, int) -- see testGetView().
113     }
114 
115     private static class DummyActivity extends Activity {
116         public int mDummyViewId;
117         public View mDummyView;
118 
119         @Override
findViewById(int id)120         public View findViewById(int id) {
121             return (id == mDummyViewId) ? mDummyView : null;
122         }
123     }
124 
125     private static class DummyView extends View {
126         public int mVisibility = View.GONE;
127 
DummyView(Context context)128         public DummyView(Context context) {
129             super(context);
130         }
131 
132         @Override
setVisibility(int visibility)133         public void setVisibility(int visibility) {
134             mVisibility = visibility;
135         }
136     }
137 }
138