blob: b0247e27cc6bea5815b6b14fcb7a29b25c4b07f2 [file] [log] [blame]
// Copyright 2016 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 "third_party/blink/renderer/bindings/core/v8/script_controller.h"
#include "third_party/blink/renderer/core/testing/core_unit_test_helper.h"
#include "third_party/blink/renderer/platform/testing/histogram_tester.h"
namespace blink {
class EventTargetTest : public RenderingTest {
public:
EventTargetTest() = default;
~EventTargetTest() override = default;
};
TEST_F(EventTargetTest, UseCountPassiveTouchEventListener) {
EXPECT_FALSE(
GetDocument().IsUseCounted(WebFeature::kPassiveTouchEventListener));
GetDocument().GetSettings()->SetScriptEnabled(true);
GetDocument().GetFrame()->GetScriptController().ExecuteScriptInMainWorld(
"window.addEventListener('touchstart', function() {}, {passive: true});");
EXPECT_TRUE(
GetDocument().IsUseCounted(WebFeature::kPassiveTouchEventListener));
EXPECT_FALSE(
GetDocument().IsUseCounted(WebFeature::kNonPassiveTouchEventListener));
}
TEST_F(EventTargetTest, UseCountNonPassiveTouchEventListener) {
EXPECT_FALSE(
GetDocument().IsUseCounted(WebFeature::kNonPassiveTouchEventListener));
GetDocument().GetSettings()->SetScriptEnabled(true);
GetDocument().GetFrame()->GetScriptController().ExecuteScriptInMainWorld(
"window.addEventListener('touchstart', function() {}, {passive: "
"false});");
EXPECT_TRUE(
GetDocument().IsUseCounted(WebFeature::kNonPassiveTouchEventListener));
EXPECT_FALSE(
GetDocument().IsUseCounted(WebFeature::kPassiveTouchEventListener));
}
TEST_F(EventTargetTest, UseCountPassiveTouchEventListenerPassiveNotSpecified) {
EXPECT_FALSE(
GetDocument().IsUseCounted(WebFeature::kPassiveTouchEventListener));
GetDocument().GetSettings()->SetScriptEnabled(true);
GetDocument().GetFrame()->GetScriptController().ExecuteScriptInMainWorld(
"window.addEventListener('touchstart', function() {});");
EXPECT_TRUE(
GetDocument().IsUseCounted(WebFeature::kPassiveTouchEventListener));
EXPECT_FALSE(
GetDocument().IsUseCounted(WebFeature::kNonPassiveTouchEventListener));
}
} // namespace blink