Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(574)

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/snackbar/DataReductionPromoSnackbarControllerTest.java

Issue 2367403005: Snackbar for promoting Data Saver to existing users (Closed)
Patch Set: rename "data saving" to "data savings" for consistency Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 }
OLDNEW
« no previous file with comments | « chrome/android/java_sources.gni ('k') | chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698