mobile/android/base/tests/testBrowserSearchVisibility.java

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 package org.mozilla.gecko.tests;
     3 import android.support.v4.app.Fragment;
     4 import android.view.KeyEvent;
     5 import android.view.View;
     7 /**
     8  * Test for browser search visibility.
     9  * Sends queries from url bar input and verifies that browser search
    10  * visibility is correct.
    11  */
    12 public class testBrowserSearchVisibility extends BaseTest {
    13     public void testSearchSuggestions() {
    14         blockForGeckoReady();
    16         focusUrlBar();
    18         // search should not be visible when editing mode starts
    19         assertBrowserSearchVisibility(false);
    21         mActions.sendKeys("a");
    23         // search should be visible when entry is not empty
    24         assertBrowserSearchVisibility(true);
    26         mActions.sendKeys("b");
    28         // search continues to be visible when more text is added
    29         assertBrowserSearchVisibility(true);
    31         mActions.sendKeyCode(KeyEvent.KEYCODE_DEL);
    33         // search continues to be visible when not all text is deleted
    34         assertBrowserSearchVisibility(true);
    36         mActions.sendKeyCode(KeyEvent.KEYCODE_DEL);
    38         // search should not be visible, entry is empty now
    39         assertBrowserSearchVisibility(false);
    40     }
    42     private void assertBrowserSearchVisibility(final boolean isVisible) {
    43         waitForTest(new BooleanTest() {
    44             @Override
    45             public boolean test() {
    46                 final Fragment browserSearch = getBrowserSearch();
    48                 // The fragment should not be present at all. Testing if the
    49                 // fragment is present but has no defined view is not a valid
    50                 // state.
    51                 if (browserSearch == null)
    52                     return !isVisible;
    54                 final View v = browserSearch.getView();
    55                 if (isVisible && v != null && v.getVisibility() == View.VISIBLE)
    56                     return true;
    58                 return false;
    59             }
    60         }, 5000);
    61     }
    62 }

mercurial