Index: chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java |
index ef2cd24b7639904f778dba450ef6227749787408..bfb4cadb8dd86ce2a68f976a5239d51462b86b6d 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java |
@@ -262,6 +262,68 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi |
} |
@SmallTest |
+ public void testAddItemWithSameNameToListAndRemoveItemFromList() throws InterruptedException { |
+ Dialog dialog = mChooserDialog.getDialogForTesting(); |
+ assertTrue(dialog.isShowing()); |
+ |
+ ArrayAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting(); |
+ |
+ // Add item 1. |
+ ItemChooserDialog.ItemChooserRow item1 = |
+ new ItemChooserDialog.ItemChooserRow("device_id_1", "same_device_name"); |
+ mChooserDialog.addItemToList(item1); |
+ assertEquals(1, itemAdapter.getCount()); |
+ assertEquals(itemAdapter.getItem(0), item1); |
+ |
+ // Add item 2. |
+ ItemChooserDialog.ItemChooserRow item2 = |
+ new ItemChooserDialog.ItemChooserRow("device_id_2", "different_device_name"); |
+ mChooserDialog.addItemToList(item2); |
+ assertEquals(2, itemAdapter.getCount()); |
+ assertEquals(itemAdapter.getItem(0), item1); |
+ assertEquals(itemAdapter.getItem(1), item2); |
+ |
+ // Add item 3. |
+ ItemChooserDialog.ItemChooserRow item3 = |
+ new ItemChooserDialog.ItemChooserRow("device_id_3", "same_device_name"); |
+ mChooserDialog.addItemToList(item3); |
+ assertEquals(3, itemAdapter.getCount()); |
+ assertEquals(itemAdapter.getItem(0), item1); |
+ assertEquals(itemAdapter.getItem(1), item2); |
+ assertEquals(itemAdapter.getItem(2), item3); |
+ |
+ // Since two items have the same name, their description should have their unique |
+ // keys appended. |
+ assertEquals( |
+ "same_device_name (device_id_1)", mChooserDialog.getItemDescriptionForTesting(0)); |
+ assertEquals("different_device_name", mChooserDialog.getItemDescriptionForTesting(1)); |
+ assertEquals( |
+ "same_device_name (device_id_3)", mChooserDialog.getItemDescriptionForTesting(2)); |
+ |
+ // Remove item 2. |
+ mChooserDialog.removeItemFromList(item2); |
+ assertEquals(2, itemAdapter.getCount()); |
+ // Make sure the remaining items are item 1 and item 3. |
+ assertEquals(itemAdapter.getItem(0), item1); |
+ assertEquals(itemAdapter.getItem(1), item3); |
+ assertEquals( |
+ "same_device_name (device_id_1)", mChooserDialog.getItemDescriptionForTesting(0)); |
+ assertEquals( |
+ "same_device_name (device_id_3)", mChooserDialog.getItemDescriptionForTesting(1)); |
+ |
+ // Remove item 1. |
+ mChooserDialog.removeItemFromList(item1); |
+ assertEquals(1, itemAdapter.getCount()); |
+ // Make sure the remaining item is item 3. |
+ assertEquals(itemAdapter.getItem(0), item3); |
+ // After removing item 1, item 3 is the only remaining item, so its description |
+ // also changed to its original description. |
+ assertEquals("same_device_name", mChooserDialog.getItemDescriptionForTesting(0)); |
+ |
+ mChooserDialog.dismiss(); |
+ } |
+ |
+ @SmallTest |
public void testListHeight() throws InterruptedException { |
// 500 * .3 is 150, which is 48 * 3.125. 48 * 3.5 is 168. |
assertEquals(168, ItemChooserDialog.getListHeight(500, 1.0f)); |