Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser; | 5 package org.chromium.chrome.browser; |
| 6 | 6 |
| 7 import android.app.Dialog; | 7 import android.app.Dialog; |
| 8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
| 9 import android.text.SpannableString; | 9 import android.text.SpannableString; |
| 10 import android.view.View; | 10 import android.view.View; |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 25 /** | 25 /** |
| 26 * Tests for the ItemChooserDialog class. | 26 * Tests for the ItemChooserDialog class. |
| 27 */ | 27 */ |
| 28 public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi vity> | 28 public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi vity> |
| 29 implements ItemChooserDialog.ItemSelectedCallback { | 29 implements ItemChooserDialog.ItemSelectedCallback { |
| 30 | 30 |
| 31 ItemChooserDialog mChooserDialog; | 31 ItemChooserDialog mChooserDialog; |
| 32 | 32 |
| 33 String mLastSelectedId = "None"; | 33 String mLastSelectedId = "None"; |
| 34 | 34 |
| 35 private static final ItemChooserDialog.ItemChooserRowIcon TEST_ICON1 = | |
| 36 new ItemChooserDialog.ItemChooserRowIcon(R.drawable.ic_signal_cellul ar_0_bar_black_48dp, | |
| 37 R.drawable.ic_signal_cellular_0_bar_white_48dp, "test icon1" ); | |
| 38 private static final ItemChooserDialog.ItemChooserRowIcon TEST_ICON2 = | |
| 39 new ItemChooserDialog.ItemChooserRowIcon(R.drawable.ic_signal_cellul ar_1_bar_black_48dp, | |
| 40 R.drawable.ic_signal_cellular_1_bar_white_48dp, "test icon2" ); | |
| 41 | |
| 35 public ItemChooserDialogTest() { | 42 public ItemChooserDialogTest() { |
| 36 super(ChromeActivity.class); | 43 super(ChromeActivity.class); |
| 37 } | 44 } |
| 38 | 45 |
| 39 // ChromeActivityTestCaseBase: | 46 // ChromeActivityTestCaseBase: |
| 40 | 47 |
| 41 @Override | 48 @Override |
| 42 protected void setUp() throws Exception { | 49 protected void setUp() throws Exception { |
| 43 super.setUp(); | 50 super.setUp(); |
| 44 mChooserDialog = createDialog(); | 51 mChooserDialog = createDialog(); |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 195 // Disable one item and try to select it. | 202 // Disable one item and try to select it. |
| 196 mChooserDialog.setEnabled("key", false); | 203 mChooserDialog.setEnabled("key", false); |
| 197 selectItem(dialog, 1, "None", false); | 204 selectItem(dialog, 1, "None", false); |
| 198 // The other is still selectable. | 205 // The other is still selectable. |
| 199 selectItem(dialog, 2, "key2", true); | 206 selectItem(dialog, 2, "key2", true); |
| 200 | 207 |
| 201 mChooserDialog.dismiss(); | 208 mChooserDialog.dismiss(); |
| 202 } | 209 } |
| 203 | 210 |
| 204 @SmallTest | 211 @SmallTest |
| 212 public void testUpdateItemWithIconToNoIcon() throws InterruptedException { | |
| 213 Dialog dialog = mChooserDialog.getDialogForTesting(); | |
| 214 assertTrue(dialog.isShowing()); | |
| 215 | |
| 216 ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapte rForTesting(); | |
| 217 | |
| 218 // Initially the itemAdapter is empty. | |
| 219 assertTrue(itemAdapter.isEmpty()); | |
| 220 | |
| 221 // Add item 1. | |
| 222 ItemChooserDialog.ItemChooserRow item1 = | |
| 223 new ItemChooserDialog.ItemChooserRow("key1", "desc1", TEST_ICON1 ); | |
| 224 mChooserDialog.addOrUpdateItem(item1); | |
| 225 assertEquals(1, itemAdapter.getCount()); | |
| 226 assertEquals(itemAdapter.getItem(0), item1); | |
| 227 | |
| 228 // Add item 1 with no icon. | |
| 229 ItemChooserDialog.ItemChooserRow item1_with_no_icon = | |
|
juncai
2016/08/26 19:37:48
Use lowerCamelCase.
Same for the other variable n
ortuno
2016/09/12 05:11:28
Done.
| |
| 230 new ItemChooserDialog.ItemChooserRow("key1", "desc1"); | |
| 231 mChooserDialog.addOrUpdateItem(item1_with_no_icon); | |
| 232 assertEquals(1, itemAdapter.getCount()); | |
| 233 // We should still see the original item with the icon. | |
| 234 assertEquals(itemAdapter.getItem(0), item1); | |
| 235 | |
| 236 mChooserDialog.setIdleState(); | |
| 237 mChooserDialog.dismiss(); | |
| 238 } | |
| 239 | |
| 240 @SmallTest | |
| 241 public void testUpdateItemWithNoIconToIcon() throws InterruptedException { | |
| 242 Dialog dialog = mChooserDialog.getDialogForTesting(); | |
| 243 assertTrue(dialog.isShowing()); | |
| 244 | |
| 245 ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapte rForTesting(); | |
| 246 | |
| 247 // Initially the itemAdapter is empty. | |
| 248 assertTrue(itemAdapter.isEmpty()); | |
| 249 | |
| 250 // Add item 1 with no icon. | |
| 251 ItemChooserDialog.ItemChooserRow item1_with_no_icon = | |
| 252 new ItemChooserDialog.ItemChooserRow("key1", "desc1"); | |
| 253 mChooserDialog.addOrUpdateItem(item1_with_no_icon); | |
| 254 assertEquals(1, itemAdapter.getCount()); | |
| 255 assertEquals(itemAdapter.getItem(0), item1_with_no_icon); | |
| 256 | |
| 257 // Add item 1 with icon. | |
| 258 ItemChooserDialog.ItemChooserRow item1 = | |
| 259 new ItemChooserDialog.ItemChooserRow("key1", "desc1", TEST_ICON1 ); | |
| 260 mChooserDialog.addOrUpdateItem(item1); | |
| 261 assertEquals(1, itemAdapter.getCount()); | |
| 262 assertEquals(itemAdapter.getItem(0), item1); | |
| 263 | |
| 264 mChooserDialog.setIdleState(); | |
| 265 mChooserDialog.dismiss(); | |
| 266 } | |
| 267 | |
| 268 @SmallTest | |
| 269 public void testUpdateItemWithNoIconToNoIcon() throws InterruptedException { | |
| 270 Dialog dialog = mChooserDialog.getDialogForTesting(); | |
| 271 assertTrue(dialog.isShowing()); | |
| 272 | |
| 273 ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapte rForTesting(); | |
| 274 | |
| 275 // Initially the itemAdapter is empty. | |
| 276 assertTrue(itemAdapter.isEmpty()); | |
| 277 | |
| 278 // Add item 1 with no icon. | |
| 279 ItemChooserDialog.ItemChooserRow item1_with_no_icon = | |
| 280 new ItemChooserDialog.ItemChooserRow("key1", "desc1"); | |
| 281 mChooserDialog.addOrUpdateItem(item1_with_no_icon); | |
| 282 assertEquals(1, itemAdapter.getCount()); | |
| 283 // We should still see the original item with the icon. | |
| 284 assertEquals(itemAdapter.getItem(0), item1_with_no_icon); | |
| 285 | |
| 286 // Add item 1 with no icon again. | |
| 287 mChooserDialog.addOrUpdateItem(item1_with_no_icon); | |
| 288 assertEquals(1, itemAdapter.getCount()); | |
| 289 // We should still see the original item with the icon. | |
| 290 assertEquals(itemAdapter.getItem(0), item1_with_no_icon); | |
| 291 | |
| 292 mChooserDialog.setIdleState(); | |
| 293 mChooserDialog.dismiss(); | |
| 294 } | |
| 295 | |
| 296 @SmallTest | |
| 205 public void testAddOrUpdateItemAndRemoveItemFromList() throws InterruptedExc eption { | 297 public void testAddOrUpdateItemAndRemoveItemFromList() throws InterruptedExc eption { |
| 206 Dialog dialog = mChooserDialog.getDialogForTesting(); | 298 Dialog dialog = mChooserDialog.getDialogForTesting(); |
| 207 assertTrue(dialog.isShowing()); | 299 assertTrue(dialog.isShowing()); |
| 208 | 300 |
| 209 TextViewWithClickableSpans statusView = (TextViewWithClickableSpans) | 301 TextViewWithClickableSpans statusView = (TextViewWithClickableSpans) |
| 210 dialog.findViewById(R.id.status); | 302 dialog.findViewById(R.id.status); |
| 211 final ListView items = (ListView) dialog.findViewById(R.id.items); | 303 final ListView items = (ListView) dialog.findViewById(R.id.items); |
| 212 final Button button = (Button) dialog.findViewById(R.id.positive); | 304 final Button button = (Button) dialog.findViewById(R.id.positive); |
| 213 | 305 |
| 214 ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapte rForTesting(); | 306 ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapte rForTesting(); |
| 215 ItemChooserDialog.ItemChooserRow nonExistentItem = | 307 ItemChooserDialog.ItemChooserRow nonExistentItem = |
| 216 new ItemChooserDialog.ItemChooserRow("key", "key"); | 308 new ItemChooserDialog.ItemChooserRow("key", "key"); |
| 217 | 309 |
| 218 // Initially the itemAdapter is empty. | 310 // Initially the itemAdapter is empty. |
| 219 assertTrue(itemAdapter.isEmpty()); | 311 assertTrue(itemAdapter.isEmpty()); |
| 220 | 312 |
| 221 // Try removing an item from an empty itemAdapter. | 313 // Try removing an item from an empty itemAdapter. |
| 222 mChooserDialog.removeItemFromList(nonExistentItem); | 314 mChooserDialog.removeItemFromList(nonExistentItem); |
| 223 assertTrue(itemAdapter.isEmpty()); | 315 assertTrue(itemAdapter.isEmpty()); |
| 224 | 316 |
| 225 // Add item 1. | 317 // Add item 1. |
| 226 ItemChooserDialog.ItemChooserRow item1 = | 318 ItemChooserDialog.ItemChooserRow item1 = |
| 227 new ItemChooserDialog.ItemChooserRow("key1", "desc1"); | 319 new ItemChooserDialog.ItemChooserRow("key1", "desc1", TEST_ICON1 ); |
| 228 mChooserDialog.addOrUpdateItem(item1); | 320 mChooserDialog.addOrUpdateItem(item1); |
| 229 assertEquals(1, itemAdapter.getCount()); | 321 assertEquals(1, itemAdapter.getCount()); |
| 230 assertEquals(itemAdapter.getItem(0), item1); | 322 assertEquals(itemAdapter.getItem(0), item1); |
| 231 | 323 |
| 232 // Add item 1 with different description. | 324 // Add item 1 with different description and icon. |
| 233 ItemChooserDialog.ItemChooserRow item1_again = | 325 ItemChooserDialog.ItemChooserRow item1_again = |
| 234 new ItemChooserDialog.ItemChooserRow("key1", "desc1_again"); | 326 new ItemChooserDialog.ItemChooserRow("key1", "desc1_again", TEST _ICON2); |
| 235 mChooserDialog.addOrUpdateItem(item1_again); | 327 mChooserDialog.addOrUpdateItem(item1_again); |
| 236 assertEquals(1, itemAdapter.getCount()); | 328 assertEquals(1, itemAdapter.getCount()); |
| 237 assertEquals(itemAdapter.getItem(0), item1_again); | 329 assertEquals(itemAdapter.getItem(0), item1_again); |
| 238 | 330 |
| 239 // Add item 2. | 331 // Add item 2. |
| 240 ItemChooserDialog.ItemChooserRow item2 = | 332 ItemChooserDialog.ItemChooserRow item2 = |
| 241 new ItemChooserDialog.ItemChooserRow("key2", "desc2"); | 333 new ItemChooserDialog.ItemChooserRow("key2", "desc2"); |
| 242 mChooserDialog.addOrUpdateItem(item2); | 334 mChooserDialog.addOrUpdateItem(item2); |
| 243 assertEquals(2, itemAdapter.getCount()); | 335 assertEquals(2, itemAdapter.getCount()); |
| 244 assertEquals(itemAdapter.getItem(0), item1_again); | 336 assertEquals(itemAdapter.getItem(0), item1_again); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 348 | 440 |
| 349 // 1460 * .3 is 438, which rounds above the maximum height. | 441 // 1460 * .3 is 438, which rounds above the maximum height. |
| 350 assertEquals(408, ItemChooserDialog.getListHeight(1460, 1.0f)); | 442 assertEquals(408, ItemChooserDialog.getListHeight(1460, 1.0f)); |
| 351 | 443 |
| 352 // 1100px is 500dp at a density of 2.2. 500 * .3 is 150dp, which is 48dp * | 444 // 1100px is 500dp at a density of 2.2. 500 * .3 is 150dp, which is 48dp * |
| 353 // 3.125. 48dp * 3.5 is 168dp. 168dp * 2.2px/dp is 369.6, which rounds t o | 445 // 3.125. 48dp * 3.5 is 168dp. 168dp * 2.2px/dp is 369.6, which rounds t o |
| 354 // 370. | 446 // 370. |
| 355 assertEquals(370, ItemChooserDialog.getListHeight(1100, 2.2f)); | 447 assertEquals(370, ItemChooserDialog.getListHeight(1100, 2.2f)); |
| 356 } | 448 } |
| 357 } | 449 } |
| OLD | NEW |