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 private static final String FIRST_SNACKBAR_SIZE_STRING = "100 MB"; |
| 27 private static final String SECOND_SNACKBAR_SIZE_STRING = "1 GB"; |
| 28 |
| 29 private SnackbarManager mManager; |
| 30 private DataReductionPromoSnackbarController mController; |
| 31 |
| 32 @Override |
| 33 public void startMainActivity() throws InterruptedException { |
| 34 ContextUtils.getAppSharedPreferences().edit().clear().apply(); |
| 35 SnackbarManager.setDurationForTesting(1000); |
| 36 startMainActivityOnBlankPage(); |
| 37 mManager = getActivity().getSnackbarManager(); |
| 38 mController = new DataReductionPromoSnackbarController(getActivity(), mM
anager); |
| 39 } |
| 40 |
| 41 @UiThreadTest |
| 42 @MediumTest |
| 43 @CommandLineFlags.Add({ |
| 44 "force-fieldtrials=" + DataReductionPromoSnackbarController.PROMO_FI
ELD_TRIAL_NAME |
| 45 + "/Enabled", |
| 46 "force-fieldtrial-params=" + DataReductionPromoSnackbarController.PR
OMO_FIELD_TRIAL_NAME |
| 47 + ".Enabled:" |
| 48 + DataReductionPromoSnackbarController.PROMO_PARAM_NAME + "/
" |
| 49 + FIRST_SNACKBAR_SIZE_MB + ";" |
| 50 + SECOND_SNACKBAR_SIZE_MB }) |
| 51 public void testDataReductionPromoSnackbarController() { |
| 52 assertFalse(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStarting
SavedBytes()); |
| 53 |
| 54 mController.maybeShowDataReductionPromoSnackbar(0); |
| 55 |
| 56 assertFalse(mManager.isShowing()); |
| 57 assertTrue(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStartingS
avedBytes()); |
| 58 assertEquals(0, DataReductionPromoUtils.getDisplayedSnackbarPromoSavedBy
tes()); |
| 59 |
| 60 mController.maybeShowDataReductionPromoSnackbar(FIRST_SNACKBAR_SIZE_MB *
BYTES_IN_MB); |
| 61 |
| 62 assertTrue(mManager.isShowing()); |
| 63 assertTrue(mManager.getCurrentSnackbarForTesting().getText().toString() |
| 64 .endsWith(FIRST_SNACKBAR_SIZE_STRING)); |
| 65 assertEquals(FIRST_SNACKBAR_SIZE_MB * BYTES_IN_MB, |
| 66 DataReductionPromoUtils.getDisplayedSnackbarPromoSavedBytes()); |
| 67 mManager.dismissSnackbars(mController); |
| 68 |
| 69 mController.maybeShowDataReductionPromoSnackbar(SECOND_SNACKBAR_SIZE_MB
* BYTES_IN_MB); |
| 70 |
| 71 assertTrue(mManager.isShowing()); |
| 72 |
| 73 assertTrue(mManager.getCurrentSnackbarForTesting().getText().toString() |
| 74 .endsWith(SECOND_SNACKBAR_SIZE_STRING)); |
| 75 assertEquals(SECOND_SNACKBAR_SIZE_MB * BYTES_IN_MB, |
| 76 DataReductionPromoUtils.getDisplayedSnackbarPromoSavedBytes()); |
| 77 } |
| 78 |
| 79 @UiThreadTest |
| 80 @MediumTest |
| 81 @CommandLineFlags.Add({ |
| 82 "force-fieldtrials=" + DataReductionPromoSnackbarController.PROMO_FI
ELD_TRIAL_NAME |
| 83 + "/Enabled", |
| 84 "force-fieldtrial-params=" + DataReductionPromoSnackbarController.PR
OMO_FIELD_TRIAL_NAME |
| 85 + ".Enabled:" |
| 86 + DataReductionPromoSnackbarController.PROMO_PARAM_NAME + "/
" |
| 87 + FIRST_SNACKBAR_SIZE_MB + ";" |
| 88 + SECOND_SNACKBAR_SIZE_MB }) |
| 89 public void testDataReductionPromoSnackbarControllerExistingUser() { |
| 90 assertFalse(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStarting
SavedBytes()); |
| 91 |
| 92 mController.maybeShowDataReductionPromoSnackbar(SECOND_SNACKBAR_SIZE_MB
* BYTES_IN_MB); |
| 93 |
| 94 assertFalse(mManager.isShowing()); |
| 95 assertTrue(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStartingS
avedBytes()); |
| 96 assertEquals(SECOND_SNACKBAR_SIZE_MB * BYTES_IN_MB, |
| 97 DataReductionPromoUtils.getDisplayedSnackbarPromoSavedBytes()); |
| 98 |
| 99 mController.maybeShowDataReductionPromoSnackbar(SECOND_SNACKBAR_SIZE_MB
* BYTES_IN_MB + 1); |
| 100 |
| 101 assertFalse(mManager.isShowing()); |
| 102 assertEquals(SECOND_SNACKBAR_SIZE_MB * BYTES_IN_MB, |
| 103 DataReductionPromoUtils.getDisplayedSnackbarPromoSavedBytes()); |
| 104 } |
| 105 |
| 106 @UiThreadTest |
| 107 @MediumTest |
| 108 @CommandLineFlags.Add({ |
| 109 "force-fieldtrials=" + DataReductionPromoSnackbarController.PROMO_FI
ELD_TRIAL_NAME |
| 110 + "/Enabled", |
| 111 "force-fieldtrial-params=" + DataReductionPromoSnackbarController.PR
OMO_FIELD_TRIAL_NAME |
| 112 + ".Enabled:" |
| 113 + DataReductionPromoSnackbarController.PROMO_PARAM_NAME + "/
" |
| 114 + FIRST_SNACKBAR_SIZE_MB + ";" |
| 115 + SECOND_SNACKBAR_SIZE_MB }) |
| 116 public void testDataReductionPromoSnackbarControllerHistograms() { |
| 117 assertFalse(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStarting
SavedBytes()); |
| 118 |
| 119 mController.maybeShowDataReductionPromoSnackbar(0); |
| 120 |
| 121 assertTrue(DataReductionPromoUtils.hasSnackbarPromoBeenInitWithStartingS
avedBytes()); |
| 122 assertEquals(0, RecordHistogram |
| 123 .getHistogramValueCountForTesting(DataReductionProxyUma.SNACKBAR
_HISTOGRAM_NAME, |
| 124 0)); |
| 125 |
| 126 mController.maybeShowDataReductionPromoSnackbar(FIRST_SNACKBAR_SIZE_MB *
BYTES_IN_MB); |
| 127 |
| 128 assertTrue(mManager.isShowing()); |
| 129 assertEquals(1, RecordHistogram |
| 130 .getHistogramValueCountForTesting(DataReductionProxyUma.SNACKBAR
_HISTOGRAM_NAME, |
| 131 FIRST_SNACKBAR_SIZE_MB)); |
| 132 mManager.getCurrentSnackbarForTesting().getController().onDismissNoActio
n(null); |
| 133 assertEquals(1, RecordHistogram |
| 134 .getHistogramValueCountForTesting(DataReductionProxyUma.UI_ACTIO
N_HISTOGRAM_NAME, |
| 135 DataReductionProxyUma.ACTION_SNACKBAR_DISMISSED)); |
| 136 |
| 137 mController.maybeShowDataReductionPromoSnackbar(SECOND_SNACKBAR_SIZE_MB
* BYTES_IN_MB); |
| 138 |
| 139 assertTrue(mManager.isShowing()); |
| 140 assertEquals(1, RecordHistogram |
| 141 .getHistogramValueCountForTesting(DataReductionProxyUma.SNACKBAR
_HISTOGRAM_NAME, |
| 142 SECOND_SNACKBAR_SIZE_MB)); |
| 143 mManager.getCurrentSnackbarForTesting().getController().onAction(null); |
| 144 // The dismissed histogram should not have been incremented. |
| 145 assertEquals(1, RecordHistogram |
| 146 .getHistogramValueCountForTesting(DataReductionProxyUma.UI_ACTIO
N_HISTOGRAM_NAME, |
| 147 DataReductionProxyUma.ACTION_SNACKBAR_DISMISSED)); |
| 148 } |
| 149 } |
OLD | NEW |