Commit 72b74d82 authored by Ryan Sturm's avatar Ryan Sturm Committed by Commit Bot

[Previews] Adding tests to verify opt outs being recorded correctly.

This adds tests to verify that opt outs are actually recorded and
tracked appropriately for Previews.

Bug: 900724,778793
Change-Id: Ib927645256eeeb7df08092eeb80f5652f295edbc
Reviewed-on: https://chromium-review.googlesource.com/c/1311375
Commit-Queue: Ryan Sturm <ryansturm@chromium.org>
Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Reviewed-by: default avatarDoug Arnett <dougarnett@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604643}
parent 1c4aea4d
......@@ -11,6 +11,7 @@
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/previews/previews_ui_tab_helper.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
......@@ -280,6 +281,35 @@ IN_PROC_BROWSER_TEST_F(PreviewsNoScriptBrowserTest,
histogram_tester.ExpectUniqueSample("Previews.InfoBarAction.NoScript", 0, 1);
}
// Flaky in all platforms except Android. See https://crbug.com/803626 for
// detail.
#if defined(OS_ANDROID) || defined(OS_LINUX)
#define MAYBE_NoScriptPreviewsRecordsOptOut NoScriptPreviewsRecordsOptOut
#else
#define MAYBE_NoScriptPreviewsRecordsOptOut \
DISABLED_NoScriptPreviewsRecordsOptOut
#endif
IN_PROC_BROWSER_TEST_F(PreviewsNoScriptBrowserTest,
MAYBE_NoScriptPreviewsRecordsOptOut) {
base::HistogramTester histogram_tester;
// Navigate to a No Script Preview page.
ui_test_utils::NavigateToURL(browser(), redirect_url());
// Terminate the previous page (non-opt out) and pull up a new No Script page.
ui_test_utils::NavigateToURL(browser(), redirect_url());
histogram_tester.ExpectUniqueSample("Previews.OptOut.UserOptedOut.NoScript",
0, 1);
// Opt out of the No Script Preview page.
PreviewsUITabHelper::FromWebContents(
browser()->tab_strip_model()->GetActiveWebContents())
->ReloadWithoutPreviews();
histogram_tester.ExpectBucketCount("Previews.OptOut.UserOptedOut.NoScript", 1,
1);
}
// This test class enables NoScriptPreviews with OptimizationHints.
class PreviewsOptimizationGuideBrowserTest : public PreviewsBrowserTest {
public:
......
......@@ -355,3 +355,54 @@ TEST_F(PreviewsUITabHelperUnitTest, CreateOfflineInfoBar) {
EXPECT_FALSE(ui_tab_helper->displayed_preview_ui());
}
#endif // BUILDFLAG(ENABLE_OFFLINE_PAGES)
namespace {
void OnDismiss(base::Optional<bool>* on_dismiss_value, bool param) {
*on_dismiss_value = param;
}
} // namespace
TEST_F(PreviewsUITabHelperUnitTest, TestPreviewsCallbackCalledOptOut) {
PreviewsUITabHelper* ui_tab_helper =
PreviewsUITabHelper::FromWebContents(web_contents());
SimulateWillProcessResponse();
CallDidFinishNavigation();
base::RunLoop().RunUntilIdle();
base::Optional<bool> on_dismiss_value;
ui_tab_helper->ShowUIElement(previews::PreviewsType::OFFLINE, true,
base::BindOnce(&OnDismiss, &on_dismiss_value));
EXPECT_FALSE(on_dismiss_value);
ui_tab_helper->ReloadWithoutPreviews(previews::PreviewsType::OFFLINE);
EXPECT_TRUE(on_dismiss_value);
EXPECT_TRUE(on_dismiss_value.value());
}
TEST_F(PreviewsUITabHelperUnitTest, TestPreviewsCallbackCalledNonOptOut) {
PreviewsUITabHelper* ui_tab_helper =
PreviewsUITabHelper::FromWebContents(web_contents());
SimulateWillProcessResponse();
CallDidFinishNavigation();
base::RunLoop().RunUntilIdle();
base::Optional<bool> on_dismiss_value;
ui_tab_helper->ShowUIElement(previews::PreviewsType::OFFLINE, true,
base::BindOnce(&OnDismiss, &on_dismiss_value));
EXPECT_FALSE(on_dismiss_value);
content::WebContentsTester::For(web_contents())
->NavigateAndCommit(GURL(kTestUrl));
EXPECT_TRUE(on_dismiss_value);
EXPECT_FALSE(on_dismiss_value.value());
}
......@@ -79,6 +79,7 @@
# Added in r519342.
-PreviewsNoScriptBrowserTest.NoScriptPreviewsEnabledHttpRedirectToHttps
-PreviewsNoScriptBrowserTest.NoScriptPreviewsEnabledButNoTransformDirective
-PreviewsNoScriptBrowserTest.NoScriptPreviewsRecordsOptOut
-ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttpsWhitelisted
-ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttpsWhitelistedRedirectToHttps
-ResourceLoadingHintsBrowserTest.ResourceLoadingHintsHttpsWhitelistedNoTransform
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment