blob: 43984a986c77d827cfe81d613658c4823167c146 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/android/tab_web_contents_delegate_android.h"
#include "base/android/jni_android.h"
#include "components/previews/core/previews_experiments.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
class TestTabWebContentsDelegateAndroid
: public android::TabWebContentsDelegateAndroid {
public:
explicit TestTabWebContentsDelegateAndroid(
blink::mojom::DisplayMode display_mode)
: TabWebContentsDelegateAndroid(base::android::AttachCurrentThread(),
nullptr) {
display_mode_ = display_mode;
}
blink::mojom::DisplayMode GetDisplayMode(
const content::WebContents* web_contents) override {
return display_mode_;
}
private:
blink::mojom::DisplayMode display_mode_ = blink::mojom::DisplayMode::kBrowser;
};
} // namespace
namespace android {
TEST(TabWebContentsDelegateAndroidTest,
AdjustPreviewsStateForNavigationAllowsPreviews) {
TestTabWebContentsDelegateAndroid browser_display_delegate(
blink::mojom::DisplayMode::kBrowser);
blink::PreviewsState noscript_previews_state =
blink::PreviewsTypes::NOSCRIPT_ON;
browser_display_delegate.AdjustPreviewsStateForNavigation(
nullptr, &noscript_previews_state);
EXPECT_EQ(blink::PreviewsTypes::NOSCRIPT_ON, noscript_previews_state);
}
TEST(TabWebContentsDelegateAndroidTest,
AdjustPreviewsStateForNavigationBlocksPreviews) {
TestTabWebContentsDelegateAndroid standalone_display_delegate(
blink::mojom::DisplayMode::kStandalone);
blink::PreviewsState noscript_previews_state =
blink::PreviewsTypes::NOSCRIPT_ON;
standalone_display_delegate.AdjustPreviewsStateForNavigation(
nullptr, &noscript_previews_state);
EXPECT_EQ(blink::PreviewsTypes::PREVIEWS_OFF, noscript_previews_state);
TestTabWebContentsDelegateAndroid minimal_ui_display_delegate(
blink::mojom::DisplayMode::kMinimalUi);
blink::PreviewsState litepage_previews_state =
blink::PreviewsTypes::SERVER_LITE_PAGE_ON;
minimal_ui_display_delegate.AdjustPreviewsStateForNavigation(
nullptr, &litepage_previews_state);
EXPECT_EQ(blink::PreviewsTypes::PREVIEWS_OFF, litepage_previews_state);
}
} // namespace android