Index: chrome/android/javatests/src/org/chromium/chrome/browser/history/HistoryActivityTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/history/HistoryActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/history/HistoryActivityTest.java |
index f4d554e4cb5e67b8d29972404cd12ba8b99c5910..d6537d08569afcc6f74414610f7aa2ec7343bfb2 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/history/HistoryActivityTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/history/HistoryActivityTest.java |
@@ -327,21 +327,105 @@ public class HistoryActivityTest extends BaseActivityInstrumentationTestCase<His |
public void testSupervisedUser() throws Exception { |
final HistoryManagerToolbar toolbar = mHistoryManager.getToolbarForTests(); |
SelectableItemView<HistoryItem> item = getItemView(2); |
- toggleItemSelection(2); |
+ View itemRemoveButton = item.findViewById(R.id.remove); |
+ |
+ // The item's remove button is visible for non-supervised users when there is no selection. |
+ assertEquals(View.VISIBLE, itemRemoveButton.getVisibility()); |
+ toggleItemSelection(2); |
assertTrue(toolbar.getItemById(R.id.selection_mode_open_in_incognito).isVisible()); |
assertTrue(toolbar.getItemById(R.id.selection_mode_open_in_incognito).isEnabled()); |
assertTrue(toolbar.getItemById(R.id.selection_mode_delete_menu_id).isVisible()); |
assertTrue(toolbar.getItemById(R.id.selection_mode_delete_menu_id).isEnabled()); |
- assertEquals(View.VISIBLE, item.findViewById(R.id.remove).getVisibility()); |
+ // The item's remove button is invisible for non-supervised users when there is a selection. |
+ assertEquals(View.INVISIBLE, item.findViewById(R.id.remove).getVisibility()); |
signInToSupervisedAccount(); |
assertNull(toolbar.getItemById(R.id.selection_mode_open_in_incognito)); |
assertNull(toolbar.getItemById(R.id.selection_mode_delete_menu_id)); |
+ // The item's remove button should be gone for supervised users. |
+ assertEquals(View.GONE, item.findViewById(R.id.remove).getVisibility()); |
+ |
+ // The item's remove button visibility is updated when toggling selection. |
+ // Check that the visibility is set correctly when toggling selection. |
+ toggleItemSelection(2); |
+ assertFalse(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
+ assertEquals(View.GONE, item.findViewById(R.id.remove).getVisibility()); |
+ |
+ toggleItemSelection(2); |
+ assertTrue(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
assertEquals(View.GONE, item.findViewById(R.id.remove).getVisibility()); |
signOut(); |
+ |
+ // Check that the item's remove button visibilty is set correctly after signing out. |
+ assertEquals(View.INVISIBLE, item.findViewById(R.id.remove).getVisibility()); |
+ toggleItemSelection(2); |
+ assertFalse(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
+ assertEquals(View.VISIBLE, item.findViewById(R.id.remove).getVisibility()); |
+ } |
+ |
+ @SmallTest |
+ public void testToolbarShadow() throws Exception { |
+ View toolbarShadow = mHistoryManager.getToolbarShadowForTests(); |
+ assertEquals(View.GONE, toolbarShadow.getVisibility()); |
+ |
+ toggleItemSelection(2); |
+ assertTrue(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
+ assertEquals(View.VISIBLE, toolbarShadow.getVisibility()); |
+ |
+ toggleItemSelection(2); |
+ assertFalse(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
+ assertEquals(View.GONE, toolbarShadow.getVisibility()); |
+ } |
+ |
+ @SmallTest |
+ public void testSearchView() throws Exception { |
+ final HistoryManagerToolbar toolbar = mHistoryManager.getToolbarForTests(); |
+ View toolbarShadow = mHistoryManager.getToolbarShadowForTests(); |
+ View toolbarSearchView = toolbar.getSearchViewForTests(); |
+ assertEquals(View.GONE, toolbarShadow.getVisibility()); |
+ assertEquals(View.GONE, toolbarSearchView.getVisibility()); |
+ |
+ toggleItemSelection(2); |
+ assertTrue(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
+ |
+ int callCount = mTestObserver.onSelectionCallback.getCallCount(); |
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
+ @Override |
+ public void run() { |
+ toolbar.getMenu().performIdentifierAction(R.id.search_menu_id, 0); |
+ } |
+ }); |
+ |
+ // The selection should be cleared when a search is started. |
+ mTestObserver.onSelectionCallback.waitForCallback(callCount, 1); |
+ assertFalse(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
+ assertEquals(View.VISIBLE, toolbarShadow.getVisibility()); |
+ assertEquals(View.VISIBLE, toolbarSearchView.getVisibility()); |
+ |
+ // Select an item and assert that the search view is no longer showing. |
+ toggleItemSelection(2); |
+ assertTrue(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
+ assertEquals(View.VISIBLE, toolbarShadow.getVisibility()); |
+ assertEquals(View.GONE, toolbarSearchView.getVisibility()); |
+ |
+ // Clear the selection and assert that the search view is showing again. |
+ toggleItemSelection(2); |
+ assertFalse(mHistoryManager.getSelectionDelegateForTests().isSelectionEnabled()); |
+ assertEquals(View.VISIBLE, toolbarShadow.getVisibility()); |
+ assertEquals(View.VISIBLE, toolbarSearchView.getVisibility()); |
+ |
+ // Close the search view. |
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
+ @Override |
+ public void run() { |
+ toolbar.onNavigationBack(); |
+ } |
+ }); |
+ assertEquals(View.GONE, toolbarShadow.getVisibility()); |
+ assertEquals(View.GONE, toolbarSearchView.getVisibility()); |
} |
private void toggleItemSelection(int position) throws Exception { |