OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 package org.chromium.chrome.browser.snackbar; |
| 6 |
| 7 import android.test.UiThreadTest; |
| 8 import android.test.suitebuilder.annotation.MediumTest; |
| 9 |
| 10 import org.chromium.base.ContextUtils; |
| 11 import org.chromium.base.metrics.RecordHistogram; |
| 12 import org.chromium.base.test.util.CommandLineFlags; |
| 13 import org.chromium.chrome.browser.preferences.datareduction.DataReductionPromoU
tils; |
| 14 import org.chromium.chrome.browser.preferences.datareduction.DataReductionProxyU
ma; |
| 15 import org.chromium.chrome.test.ChromeTabbedActivityTestBase; |
| 16 |
| 17 /** |
| 18 * Tests the DataReductionPromoSnackbarController. Tests that the snackbar sizes
are properly set |
| 19 * from a field trial param and that the correct uma is recorded. |
| 20 */ |
| 21 public class DataReductionPromoSnackbarControllerTest extends ChromeTabbedActivi
tyTestBase { |
| 22 |
| 23 private static final int BYTES_IN_MB = 1024 * 1024; |
| 24 private static final int FIRST_SNACKBAR_SIZE_MB = 100; |
| 25 private static final int SECOND_SNACKBAR_SIZE_MB = 1024; |
| 26 |
| 27 private SnackbarManager mManager; |
| 28 private DataReductionPromoSnackbarController mController; |
| 29 |
| 30 @Override |
| 31 public void startMainActivity() throws InterruptedException { |
| 32 ContextUtils.getAppSharedPreferences().edit().clear().apply(); |
| 33 SnackbarManager.setDurationForTesting(1000); |
| 34 startMainActivityOnBlankPage(); |
| 35 mManager = getActivity().getSnackbarManager(); |
| 36 mController = new DataReductionPromoSnackbarController(getActivity(), mM
anager); |
| 37 } |
| 38 |
| 39 @UiThreadTest |
| 40 @MediumTest |
| 41 @CommandLineFlags.Add({ |
| 42 "force-fieldtrials=" + DataReductionPromoSnackbarController.PROMO_FI
ELD_TRIAL_NAME |
| 43 + "/Enabled", |
| 44 "force-fieldtrial-params=" + DataReductionPromoSnackbarController.PR
OMO_FIELD_TRIAL_NAME |
| 45 + ".Enabled:" |
| 46 + DataReductionPromoSnackbarController.PROMO_PARAM_NAME + "/
" |
| 47 + FIRST_SNACKBAR_SIZE_MB + ";" |
| 48 + SECOND_SNACKBAR_SIZE_MB }) |
| 49 public void testDataReductionPromoSnackbarController() { |
| 50 assertFalse(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStarting
ContentLength()); |
| 51 |
| 52 mController.maybeShowDataReductionPromoSnackbar(0); |
| 53 |
| 54 assertFalse(mManager.isShowing()); |
| 55 assertTrue(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStartingC
ontentLength()); |
| 56 assertEquals(0, DataReductionPromoUtils.getDisplayedSnackbarPromoContent
Length()); |
| 57 |
| 58 mController.maybeShowDataReductionPromoSnackbar(FIRST_SNACKBAR_SIZE_MB *
BYTES_IN_MB); |
| 59 |
| 60 assertTrue(mManager.isShowing()); |
| 61 assertEquals(FIRST_SNACKBAR_SIZE_MB * BYTES_IN_MB, |
| 62 DataReductionPromoUtils.getDisplayedSnackbarPromoContentLength()
); |
| 63 mManager.dismissSnackbars(mController); |
| 64 |
| 65 mController.maybeShowDataReductionPromoSnackbar(SECOND_SNACKBAR_SIZE_MB
* BYTES_IN_MB); |
| 66 |
| 67 assertTrue(mManager.isShowing()); |
| 68 assertEquals(SECOND_SNACKBAR_SIZE_MB * BYTES_IN_MB, |
| 69 DataReductionPromoUtils.getDisplayedSnackbarPromoContentLength()
); |
| 70 } |
| 71 |
| 72 @UiThreadTest |
| 73 @MediumTest |
| 74 @CommandLineFlags.Add({ |
| 75 "force-fieldtrials=" + DataReductionPromoSnackbarController.PROMO_FI
ELD_TRIAL_NAME |
| 76 + "/Enabled", |
| 77 "force-fieldtrial-params=" + DataReductionPromoSnackbarController.PR
OMO_FIELD_TRIAL_NAME |
| 78 + ".Enabled:" |
| 79 + DataReductionPromoSnackbarController.PROMO_PARAM_NAME + "/
" |
| 80 + FIRST_SNACKBAR_SIZE_MB + ";" |
| 81 + SECOND_SNACKBAR_SIZE_MB }) |
| 82 public void testDataReductionPromoSnackbarControllerExistingUser() { |
| 83 assertFalse(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStarting
ContentLength()); |
| 84 |
| 85 mController.maybeShowDataReductionPromoSnackbar(SECOND_SNACKBAR_SIZE_MB
* BYTES_IN_MB); |
| 86 |
| 87 assertFalse(mManager.isShowing()); |
| 88 assertTrue(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStartingC
ontentLength()); |
| 89 assertEquals(SECOND_SNACKBAR_SIZE_MB * BYTES_IN_MB, |
| 90 DataReductionPromoUtils.getDisplayedSnackbarPromoContentLength()
); |
| 91 |
| 92 mController.maybeShowDataReductionPromoSnackbar(SECOND_SNACKBAR_SIZE_MB
* BYTES_IN_MB + 1); |
| 93 |
| 94 assertFalse(mManager.isShowing()); |
| 95 assertEquals(SECOND_SNACKBAR_SIZE_MB * BYTES_IN_MB, |
| 96 DataReductionPromoUtils.getDisplayedSnackbarPromoContentLength()
); |
| 97 } |
| 98 |
| 99 @UiThreadTest |
| 100 @MediumTest |
| 101 @CommandLineFlags.Add({ |
| 102 "force-fieldtrials=" + DataReductionPromoSnackbarController.PROMO_FI
ELD_TRIAL_NAME |
| 103 + "/Enabled", |
| 104 "force-fieldtrial-params=" + DataReductionPromoSnackbarController.PR
OMO_FIELD_TRIAL_NAME |
| 105 + ".Enabled:" |
| 106 + DataReductionPromoSnackbarController.PROMO_PARAM_NAME + "/
" |
| 107 + FIRST_SNACKBAR_SIZE_MB + ";" |
| 108 + SECOND_SNACKBAR_SIZE_MB }) |
| 109 public void testDataReductionPromoSnackbarControllerHistograms() { |
| 110 assertFalse(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStarting
ContentLength()); |
| 111 |
| 112 mController.maybeShowDataReductionPromoSnackbar(0); |
| 113 |
| 114 assertTrue(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStartingC
ontentLength()); |
| 115 assertEquals(0, RecordHistogram |
| 116 .getHistogramValueCountForTesting(DataReductionProxyUma.SNACKBAR
_HISTOGRAM_NAME, |
| 117 0)); |
| 118 |
| 119 mController.maybeShowDataReductionPromoSnackbar(FIRST_SNACKBAR_SIZE_MB *
BYTES_IN_MB); |
| 120 |
| 121 assertTrue(mManager.isShowing()); |
| 122 assertEquals(1, RecordHistogram |
| 123 .getHistogramValueCountForTesting(DataReductionProxyUma.SNACKBAR
_HISTOGRAM_NAME, |
| 124 FIRST_SNACKBAR_SIZE_MB)); |
| 125 mManager.getCurrentSnackbarForTesting().getController().onDismissNoActio
n(null); |
| 126 assertEquals(1, RecordHistogram |
| 127 .getHistogramValueCountForTesting(DataReductionProxyUma.UI_ACTIO
N_HISTOGRAM_NAME, |
| 128 DataReductionProxyUma.ACTION_SNACKBAR_DISMISSED)); |
| 129 |
| 130 mController.maybeShowDataReductionPromoSnackbar(SECOND_SNACKBAR_SIZE_MB
* BYTES_IN_MB); |
| 131 |
| 132 assertTrue(mManager.isShowing()); |
| 133 assertEquals(1, RecordHistogram |
| 134 .getHistogramValueCountForTesting(DataReductionProxyUma.SNACKBAR
_HISTOGRAM_NAME, |
| 135 SECOND_SNACKBAR_SIZE_MB)); |
| 136 mManager.getCurrentSnackbarForTesting().getController().onAction(null); |
| 137 // The dismissed histogram should not have been incremented. |
| 138 assertEquals(1, RecordHistogram |
| 139 .getHistogramValueCountForTesting(DataReductionProxyUma.UI_ACTIO
N_HISTOGRAM_NAME, |
| 140 DataReductionProxyUma.ACTION_SNACKBAR_DISMISSED)); |
| 141 } |
| 142 } |
OLD | NEW |