| 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 924be5898f9e1246e159160f019ddfc6652ed230..851423ef5de98f704821a95365837f08231c46c2 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
|
| @@ -8,6 +8,7 @@ import android.app.Dialog;
|
| import android.test.suitebuilder.annotation.SmallTest;
|
| import android.text.SpannableString;
|
| import android.view.View;
|
| +import android.widget.ArrayAdapter;
|
| import android.widget.Button;
|
| import android.widget.ListView;
|
|
|
| @@ -19,8 +20,6 @@ import org.chromium.content.browser.test.util.CriteriaHelper;
|
| import org.chromium.content.browser.test.util.TouchCommon;
|
| import org.chromium.ui.widget.TextViewWithClickableSpans;
|
|
|
| -import java.util.ArrayList;
|
| -import java.util.List;
|
| import java.util.concurrent.Callable;
|
|
|
| /**
|
| @@ -61,12 +60,11 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
|
| SpannableString title = new SpannableString("title");
|
| SpannableString searching = new SpannableString("searching");
|
| SpannableString noneFound = new SpannableString("noneFound");
|
| - SpannableString statusActive = new SpannableString("statusActive");
|
| SpannableString statusIdleNoneFound = new SpannableString("statusIdleNoneFound");
|
| SpannableString statusIdleSomeFound = new SpannableString("statusIdleSomeFound");
|
| String positiveButton = new String("positiveButton");
|
| final ItemChooserDialog.ItemChooserLabels labels =
|
| - new ItemChooserDialog.ItemChooserLabels(title, searching, noneFound, statusActive,
|
| + new ItemChooserDialog.ItemChooserLabels(title, searching, noneFound,
|
| statusIdleNoneFound, statusIdleSomeFound, positiveButton);
|
| ItemChooserDialog dialog = ThreadUtils.runOnUiThreadBlockingNoException(
|
| new Callable<ItemChooserDialog>() {
|
| @@ -132,21 +130,10 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
|
| assertFalse(button.isEnabled());
|
| assertEquals(View.GONE, items.getVisibility());
|
|
|
| - List<ItemChooserDialog.ItemChooserRow> devices =
|
| - new ArrayList<ItemChooserDialog.ItemChooserRow>();
|
| - devices.add(new ItemChooserDialog.ItemChooserRow("key", "key"));
|
| - devices.add(new ItemChooserDialog.ItemChooserRow("key2", "key2"));
|
| - mChooserDialog.addItemsToList(devices);
|
| + mChooserDialog.addItemToList(new ItemChooserDialog.ItemChooserRow("key", "key"));
|
| + mChooserDialog.addItemToList(new ItemChooserDialog.ItemChooserRow("key2", "key2"));
|
|
|
| - // Two items showing, the empty view should be no more and the button
|
| - // should now be enabled.
|
| - assertEquals(View.VISIBLE, items.getVisibility());
|
| - assertEquals(View.GONE, items.getEmptyView().getVisibility());
|
| - assertEquals("statusActive", statusView.getText().toString());
|
| - assertFalse(button.isEnabled());
|
| -
|
| - mChooserDialog.setIdleState();
|
| - // After discovery stops the list should still be visible,
|
| + // After discovery stops the list should be visible with two items,
|
| // it should not show the empty view and the button should not be enabled.
|
| // The chooser should show the status idle text.
|
| assertEquals(View.VISIBLE, items.getVisibility());
|
| @@ -193,11 +180,8 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
|
| Dialog dialog = mChooserDialog.getDialogForTesting();
|
| assertTrue(dialog.isShowing());
|
|
|
| - List<ItemChooserDialog.ItemChooserRow> devices =
|
| - new ArrayList<ItemChooserDialog.ItemChooserRow>();
|
| - devices.add(new ItemChooserDialog.ItemChooserRow("key", "key"));
|
| - devices.add(new ItemChooserDialog.ItemChooserRow("key2", "key2"));
|
| - mChooserDialog.addItemsToList(devices);
|
| + mChooserDialog.addItemToList(new ItemChooserDialog.ItemChooserRow("key", "key"));
|
| + mChooserDialog.addItemToList(new ItemChooserDialog.ItemChooserRow("key2", "key2"));
|
|
|
| // Disable one item and try to select it.
|
| mChooserDialog.setEnabled("key", false);
|
| @@ -207,4 +191,73 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
|
|
|
| mChooserDialog.dismiss();
|
| }
|
| +
|
| + @SmallTest
|
| + public void testAddItemToListAndRemoveItemFromList() throws InterruptedException {
|
| + Dialog dialog = mChooserDialog.getDialogForTesting();
|
| + assertTrue(dialog.isShowing());
|
| +
|
| + TextViewWithClickableSpans statusView = (TextViewWithClickableSpans)
|
| + dialog.findViewById(R.id.status);
|
| + final ListView items = (ListView) dialog.findViewById(R.id.items);
|
| + final Button button = (Button) dialog.findViewById(R.id.positive);
|
| +
|
| + ArrayAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
|
| + ItemChooserDialog.ItemChooserRow nonExistentItem =
|
| + new ItemChooserDialog.ItemChooserRow("key", "key");
|
| +
|
| + // Initially the itemAdapter is empty.
|
| + assertTrue(itemAdapter.isEmpty());
|
| +
|
| + // Try removing an item from an empty itemAdapter.
|
| + mChooserDialog.removeItemFromList(nonExistentItem);
|
| + assertTrue(itemAdapter.isEmpty());
|
| +
|
| + // Add item 1.
|
| + ItemChooserDialog.ItemChooserRow item1 =
|
| + new ItemChooserDialog.ItemChooserRow("key1", "key1");
|
| + mChooserDialog.addItemToList(item1);
|
| + assertEquals(1, itemAdapter.getCount());
|
| + assertEquals(itemAdapter.getItem(0), item1);
|
| +
|
| + // Add item 2.
|
| + ItemChooserDialog.ItemChooserRow item2 =
|
| + new ItemChooserDialog.ItemChooserRow("key2", "key2");
|
| + mChooserDialog.addItemToList(item2);
|
| + assertEquals(2, itemAdapter.getCount());
|
| + assertEquals(itemAdapter.getItem(0), item1);
|
| + assertEquals(itemAdapter.getItem(1), item2);
|
| +
|
| + // Try removing an item that doesn't exist.
|
| + mChooserDialog.removeItemFromList(nonExistentItem);
|
| + assertEquals(2, itemAdapter.getCount());
|
| +
|
| + // Remove item 2.
|
| + mChooserDialog.removeItemFromList(item2);
|
| + assertEquals(1, itemAdapter.getCount());
|
| + // Make sure the remaining item is item 1.
|
| + assertEquals(itemAdapter.getItem(0), item1);
|
| +
|
| + // The list should be visible with one item, it should not show
|
| + // the empty view and the button should not be enabled.
|
| + // The chooser should show a status message at the bottom.
|
| + assertEquals(View.VISIBLE, items.getVisibility());
|
| + assertEquals(View.GONE, items.getEmptyView().getVisibility());
|
| + assertEquals("statusIdleSomeFound", statusView.getText().toString());
|
| + assertFalse(button.isEnabled());
|
| +
|
| + // Remove item 1.
|
| + mChooserDialog.removeItemFromList(item1);
|
| + assertTrue(itemAdapter.isEmpty());
|
| +
|
| + // Listview should now be showing empty, with an empty view visible
|
| + // and the button should not be enabled.
|
| + // The chooser should show a status message at the bottom.
|
| + assertEquals(View.GONE, items.getVisibility());
|
| + assertEquals(View.VISIBLE, items.getEmptyView().getVisibility());
|
| + assertEquals("statusIdleNoneFound", statusView.getText().toString());
|
| + assertFalse(button.isEnabled());
|
| +
|
| + mChooserDialog.dismiss();
|
| + }
|
| }
|
|
|