Skip to content

Commit

Permalink
[Privacy guide code health] Compartmentalize + reenable metrics tests
Browse files Browse the repository at this point in the history
Split the metrics tests suite into 4 smaller suites. Key advantage: if
there should still be timeouts (from long suite runtime or bugs), then
they will be more fine granularly attributable to one of the smaller
suites.

Fixed: 1302750
Bug: 1215630,1328037
Change-Id: I7fdb84149be03a5bba6e5b2b29023630a3d2cf41
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3726350
Commit-Queue: Rainhard Findling <[email protected]>
Reviewed-by: Theodore Olsauskas-Warren <[email protected]>
Reviewed-by: Demetrios Papadopoulos <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1018596}
  • Loading branch information
Rainhard Findling authored and Chromium LUCI CQ committed Jun 28, 2022
1 parent 71407ee commit 07efb4f
Show file tree
Hide file tree
Showing 2 changed files with 205 additions and 115 deletions.
29 changes: 19 additions & 10 deletions chrome/test/data/webui/settings/cr_settings_browsertest.js
Original file line number Diff line number Diff line change
Expand Up @@ -514,18 +514,27 @@ TEST_F(
runMochaSuite('CookiesFragmentNavigations');
});

// TODO(crbug.com/1328037): Flaky on Linux Tests(dbg).
GEN('#if BUILDFLAG(IS_LINUX) && !defined(NDEBUG)');
GEN('#define MAYBE_PrivacyGuideFragmentMetricsTests \\');
GEN(' DISABLED_PrivacyGuideFragmentMetricsTests');
GEN('#else');
GEN('#define MAYBE_PrivacyGuideFragmentMetricsTests \\');
GEN(' PrivacyGuideFragmentMetricsTests');
GEN('#endif');
TEST_F(
'CrSettingsPrivacyGuidePageTest', 'MAYBE_PrivacyGuideFragmentMetricsTests',
'CrSettingsPrivacyGuidePageTest', 'MsbbFragmentMetricsTests', function() {
runMochaSuite('MsbbFragmentMetricsTests');
});

TEST_F(
'CrSettingsPrivacyGuidePageTest', 'HistorySyncFragmentMetricsTests',
function() {
runMochaSuite('HistorySyncFragmentMetricsTests');
});

TEST_F(
'CrSettingsPrivacyGuidePageTest', 'SafeBrowsingFragmentMetricsTests',
function() {
runMochaSuite('SafeBrowsingFragmentMetricsTests');
});

TEST_F(
'CrSettingsPrivacyGuidePageTest', 'CookiesFragmentMetricsTests',
function() {
runMochaSuite('PrivacyGuideFragmentMetrics');
runMochaSuite('CookiesFragmentMetricsTests');
});

TEST_F(
Expand Down
291 changes: 186 additions & 105 deletions chrome/test/data/webui/settings/privacy_guide_page_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -921,10 +921,9 @@ suite('CookiesFragmentNavigations', function() {
});
});

suite('PrivacyGuideFragmentMetrics', function() {
suite('MsbbFragmentMetricsTests', function() {
let page: SettingsPrivacyGuidePageElement;
let settingsPrefs: SettingsPrefsElement;
let syncBrowserProxy: TestSyncBrowserProxy;
let testMetricsBrowserProxy: TestMetricsBrowserProxy;

suiteSetup(function() {
Expand All @@ -935,9 +934,6 @@ suite('PrivacyGuideFragmentMetrics', function() {
setup(function() {
testMetricsBrowserProxy = new TestMetricsBrowserProxy();
MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy);
syncBrowserProxy = new TestSyncBrowserProxy();
syncBrowserProxy.testSyncStatus = null;
SyncBrowserProxyImpl.setInstance(syncBrowserProxy);

page = createPrivacyGuidePageForTest(settingsPrefs);

Expand Down Expand Up @@ -985,6 +981,69 @@ suite('PrivacyGuideFragmentMetrics', function() {
assertEquals(result, expectedMetric);
}

test('msbbMetricsOnToOn', function() {
return assertMsbbMetrics({
msbbStartOn: true,
changeSetting: false,
expectedMetric: PrivacyGuideSettingsStates.MSBB_ON_TO_ON
});
});

test('msbbMetricsOnToOff', function() {
return assertMsbbMetrics({
msbbStartOn: true,
changeSetting: true,
expectedMetric: PrivacyGuideSettingsStates.MSBB_ON_TO_OFF
});
});

test('msbbMetricsOffToOn', function() {
return assertMsbbMetrics({
msbbStartOn: false,
changeSetting: true,
expectedMetric: PrivacyGuideSettingsStates.MSBB_OFF_TO_ON
});
});

test('msbbMetricsOffToOff', function() {
return assertMsbbMetrics({
msbbStartOn: false,
changeSetting: false,
expectedMetric: PrivacyGuideSettingsStates.MSBB_OFF_TO_OFF
});
});
});

suite('HistorySyncFragmentMetricsTests', function() {
let page: SettingsPrivacyGuidePageElement;
let settingsPrefs: SettingsPrefsElement;
let syncBrowserProxy: TestSyncBrowserProxy;
let testMetricsBrowserProxy: TestMetricsBrowserProxy;

suiteSetup(function() {
settingsPrefs = document.createElement('settings-prefs');
return CrSettingsPrefs.initialized;
});

setup(function() {
testMetricsBrowserProxy = new TestMetricsBrowserProxy();
MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy);
syncBrowserProxy = new TestSyncBrowserProxy();
syncBrowserProxy.testSyncStatus = null;
SyncBrowserProxyImpl.setInstance(syncBrowserProxy);

page = createPrivacyGuidePageForTest(settingsPrefs);

return flushTasks();
});

teardown(function() {
page.remove();
// The browser instance is shared among the tests, hence the route needs to
// be reset between tests.
Router.getInstance().navigateTo(routes.BASIC);
});

async function assertHistorySyncMetrics({
historySyncStartOn,
changeSetting,
Expand Down Expand Up @@ -1022,6 +1081,65 @@ suite('PrivacyGuideFragmentMetrics', function() {
assertEquals(result, expectedMetric);
}

test('historySyncOnToOn', function() {
return assertHistorySyncMetrics({
historySyncStartOn: true,
changeSetting: false,
expectedMetric: PrivacyGuideSettingsStates.HISTORY_SYNC_ON_TO_ON
});
});

test('historySyncOnToOff', function() {
return assertHistorySyncMetrics({
historySyncStartOn: true,
changeSetting: true,
expectedMetric: PrivacyGuideSettingsStates.HISTORY_SYNC_ON_TO_OFF
});
});

test('historySyncOffToOn', function() {
return assertHistorySyncMetrics({
historySyncStartOn: false,
changeSetting: true,
expectedMetric: PrivacyGuideSettingsStates.HISTORY_SYNC_OFF_TO_ON
});
});

test('historySyncOffToOff', function() {
return assertHistorySyncMetrics({
historySyncStartOn: false,
changeSetting: false,
expectedMetric: PrivacyGuideSettingsStates.HISTORY_SYNC_OFF_TO_OFF
});
});
});

suite('SafeBrowsingFragmentMetricsTests', function() {
let page: SettingsPrivacyGuidePageElement;
let settingsPrefs: SettingsPrefsElement;
let testMetricsBrowserProxy: TestMetricsBrowserProxy;

suiteSetup(function() {
settingsPrefs = document.createElement('settings-prefs');
return CrSettingsPrefs.initialized;
});

setup(function() {
testMetricsBrowserProxy = new TestMetricsBrowserProxy();
MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy);

page = createPrivacyGuidePageForTest(settingsPrefs);

return flushTasks();
});

teardown(function() {
page.remove();
// The browser instance is shared among the tests, hence the route needs to
// be reset between tests.
Router.getInstance().navigateTo(routes.BASIC);
});

async function assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced,
changeSetting,
Expand Down Expand Up @@ -1062,6 +1180,69 @@ suite('PrivacyGuideFragmentMetrics', function() {
assertEquals(result, expectedMetric);
}

test('safeBrowsingMetricsEnhancedToStandard', function() {
return assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced: true,
changeSetting: true,
expectedMetric:
PrivacyGuideSettingsStates.SAFE_BROWSING_ENHANCED_TO_STANDARD,
});
});

test('safeBrowsingMetricsStandardToEnhanced', function() {
return assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced: false,
changeSetting: true,
expectedMetric:
PrivacyGuideSettingsStates.SAFE_BROWSING_STANDARD_TO_ENHANCED,
});
});

test('safeBrowsingMetricsStandardToStandard', function() {
return assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced: false,
changeSetting: false,
expectedMetric:
PrivacyGuideSettingsStates.SAFE_BROWSING_STANDARD_TO_STANDARD,
});
});

test('safeBrowsingMetricsEnhancedToEnhanced', function() {
return assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced: true,
changeSetting: false,
expectedMetric:
PrivacyGuideSettingsStates.SAFE_BROWSING_ENHANCED_TO_ENHANCED,
});
});
});

suite('CookiesFragmentMetricsTests', function() {
let page: SettingsPrivacyGuidePageElement;
let settingsPrefs: SettingsPrefsElement;
let testMetricsBrowserProxy: TestMetricsBrowserProxy;

suiteSetup(function() {
settingsPrefs = document.createElement('settings-prefs');
return CrSettingsPrefs.initialized;
});

setup(function() {
testMetricsBrowserProxy = new TestMetricsBrowserProxy();
MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy);

page = createPrivacyGuidePageForTest(settingsPrefs);

return flushTasks();
});

teardown(function() {
page.remove();
// The browser instance is shared among the tests, hence the route needs to
// be reset between tests.
Router.getInstance().navigateTo(routes.BASIC);
});

async function assertCookieMetrics({
cookieStartsBlock3PIncognito,
changeSetting,
Expand Down Expand Up @@ -1101,106 +1282,6 @@ suite('PrivacyGuideFragmentMetrics', function() {
assertEquals(result, expectedMetric);
}

test('msbbMetricsOnToOn', function() {
return assertMsbbMetrics({
msbbStartOn: true,
changeSetting: false,
expectedMetric: PrivacyGuideSettingsStates.MSBB_ON_TO_ON
});
});

test('msbbMetricsOnToOff', function() {
return assertMsbbMetrics({
msbbStartOn: true,
changeSetting: true,
expectedMetric: PrivacyGuideSettingsStates.MSBB_ON_TO_OFF
});
});

test('msbbMetricsOffToOn', function() {
return assertMsbbMetrics({
msbbStartOn: false,
changeSetting: true,
expectedMetric: PrivacyGuideSettingsStates.MSBB_OFF_TO_ON
});
});

test('msbbMetricsOffToOff', function() {
return assertMsbbMetrics({
msbbStartOn: false,
changeSetting: false,
expectedMetric: PrivacyGuideSettingsStates.MSBB_OFF_TO_OFF
});
});

test('historySyncOnToOn', function() {
return assertHistorySyncMetrics({
historySyncStartOn: true,
changeSetting: false,
expectedMetric: PrivacyGuideSettingsStates.HISTORY_SYNC_ON_TO_ON
});
});

test('historySyncOnToOff', function() {
return assertHistorySyncMetrics({
historySyncStartOn: true,
changeSetting: true,
expectedMetric: PrivacyGuideSettingsStates.HISTORY_SYNC_ON_TO_OFF
});
});

test('historySyncOffToOn', function() {
return assertHistorySyncMetrics({
historySyncStartOn: false,
changeSetting: true,
expectedMetric: PrivacyGuideSettingsStates.HISTORY_SYNC_OFF_TO_ON
});
});

test('historySyncOffToOff', function() {
return assertHistorySyncMetrics({
historySyncStartOn: false,
changeSetting: false,
expectedMetric: PrivacyGuideSettingsStates.HISTORY_SYNC_OFF_TO_OFF
});
});

test('safeBrowsingMetricsEnhancedToEnhanced', function() {
return assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced: true,
changeSetting: false,
expectedMetric:
PrivacyGuideSettingsStates.SAFE_BROWSING_ENHANCED_TO_ENHANCED,
});
});

test('safeBrowsingMetricsEnhancedToStandard', function() {
return assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced: true,
changeSetting: true,
expectedMetric:
PrivacyGuideSettingsStates.SAFE_BROWSING_ENHANCED_TO_STANDARD,
});
});

test('safeBrowsingMetricsStandardToEnhanced', function() {
return assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced: false,
changeSetting: true,
expectedMetric:
PrivacyGuideSettingsStates.SAFE_BROWSING_STANDARD_TO_ENHANCED,
});
});

test('safeBrowsingMetricsStandardToStandard', function() {
return assertSafeBrowsingMetrics({
safeBrowsingStartsEnhanced: false,
changeSetting: false,
expectedMetric:
PrivacyGuideSettingsStates.SAFE_BROWSING_STANDARD_TO_STANDARD,
});
});

test('cookiesMetrics3PIncognitoTo3PIncognito', function() {
return assertCookieMetrics({
cookieStartsBlock3PIncognito: true,
Expand Down

0 comments on commit 07efb4f

Please sign in to comment.