| Index: third_party/WebKit/Source/platform/UserGestureIndicatorTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/UserGestureIndicatorTest.cpp b/third_party/WebKit/Source/platform/UserGestureIndicatorTest.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d3dcde9db3349f4517cd239288001e65f74a28a8
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/platform/UserGestureIndicatorTest.cpp
|
| @@ -0,0 +1,102 @@
|
| +// Copyright (c) 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 "platform/UserGestureIndicator.h"
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace blink {
|
| +
|
| +// Checks for the initial state of UserGestureIndicator.
|
| +TEST(UserGestureIndicatorTest, InitialState)
|
| +{
|
| + EXPECT_FALSE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_FALSE(UserGestureIndicator::processedUserGestureSinceLoad());
|
| + EXPECT_EQ(nullptr, UserGestureIndicator::currentToken());
|
| + EXPECT_FALSE(UserGestureIndicator::consumeUserGesture());
|
| +}
|
| +
|
| +TEST(UserGestureIndicatorTest, ConstructedWithNewUserGesture)
|
| +{
|
| + UserGestureIndicator::clearProcessedUserGestureSinceLoad();
|
| + UserGestureIndicator userGestureScope(DefinitelyProcessingNewUserGesture);
|
| +
|
| + EXPECT_TRUE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_TRUE(UserGestureIndicator::processedUserGestureSinceLoad());
|
| + EXPECT_NE(nullptr, UserGestureIndicator::currentToken());
|
| +
|
| + EXPECT_TRUE(UserGestureIndicator::consumeUserGesture());
|
| +}
|
| +
|
| +TEST(UserGestureIndicatorTest, ConstructedWithUserGesture)
|
| +{
|
| + UserGestureIndicator::clearProcessedUserGestureSinceLoad();
|
| + UserGestureIndicator userGestureScope(DefinitelyProcessingUserGesture);
|
| +
|
| + EXPECT_TRUE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_TRUE(UserGestureIndicator::processedUserGestureSinceLoad());
|
| + EXPECT_NE(nullptr, UserGestureIndicator::currentToken());
|
| +
|
| + EXPECT_TRUE(UserGestureIndicator::consumeUserGesture());
|
| +}
|
| +
|
| +TEST(UserGestureIndicatorTest, ConstructedWithNoUserGesture)
|
| +{
|
| + UserGestureIndicator::clearProcessedUserGestureSinceLoad();
|
| + UserGestureIndicator userGestureScope(DefinitelyNotProcessingUserGesture);
|
| +
|
| + EXPECT_FALSE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_FALSE(UserGestureIndicator::processedUserGestureSinceLoad());
|
| + EXPECT_NE(nullptr, UserGestureIndicator::currentToken());
|
| +
|
| + EXPECT_FALSE(UserGestureIndicator::consumeUserGesture());
|
| +}
|
| +
|
| +// Check that after UserGestureIndicator destruction state will be cleared.
|
| +TEST(UserGestureIndicatorTest, DestructUserGestureIndicator)
|
| +{
|
| + {
|
| + UserGestureIndicator userGestureScope(DefinitelyProcessingUserGesture);
|
| +
|
| + EXPECT_TRUE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_TRUE(UserGestureIndicator::processedUserGestureSinceLoad());
|
| + EXPECT_NE(nullptr, UserGestureIndicator::currentToken());
|
| + }
|
| +
|
| + EXPECT_FALSE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_EQ(nullptr, UserGestureIndicator::currentToken());
|
| + EXPECT_FALSE(UserGestureIndicator::consumeUserGesture());
|
| +}
|
| +
|
| +// Tests creation of scoped UserGestureIndicator objects.
|
| +TEST(UserGestureIndicatorTest, ScopedNewUserGestureIndicators)
|
| +{
|
| + // Root GestureIndicator and GestureToken.
|
| + UserGestureIndicator userGestureScope(DefinitelyProcessingNewUserGesture);
|
| +
|
| + EXPECT_TRUE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_TRUE(UserGestureIndicator::processedUserGestureSinceLoad());
|
| + EXPECT_NE(nullptr, UserGestureIndicator::currentToken());
|
| + {
|
| + // Construct inner UserGestureIndicator.
|
| + // It should share GestureToken with the root indicator.
|
| + UserGestureIndicator innerUserGesture(DefinitelyProcessingNewUserGesture);
|
| +
|
| + EXPECT_TRUE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_NE(nullptr, UserGestureIndicator::currentToken());
|
| +
|
| + // Consume inner gesture.
|
| + EXPECT_TRUE(UserGestureIndicator::consumeUserGesture());
|
| + }
|
| +
|
| + EXPECT_TRUE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_NE(nullptr, UserGestureIndicator::currentToken());
|
| +
|
| + // Consume root gesture.
|
| + EXPECT_TRUE(UserGestureIndicator::consumeUserGesture());
|
| + EXPECT_FALSE(UserGestureIndicator::processingUserGesture());
|
| + EXPECT_NE(nullptr, UserGestureIndicator::currentToken());
|
| +}
|
| +
|
| +} // namespace blink
|
|
|