1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "third_party/blink/renderer/core/fullscreen/scoped_allow_fullscreen.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace blink {
10
TEST(ScopedAllowFullscreenTest,InitialState)11 TEST(ScopedAllowFullscreenTest, InitialState) {
12 EXPECT_FALSE(ScopedAllowFullscreen::FullscreenAllowedReason().has_value());
13 }
14
TEST(ScopedAllowFullscreenTest,ConstructOneScope)15 TEST(ScopedAllowFullscreenTest, ConstructOneScope) {
16 ScopedAllowFullscreen scope(ScopedAllowFullscreen::kOrientationChange);
17
18 EXPECT_EQ(ScopedAllowFullscreen::kOrientationChange,
19 ScopedAllowFullscreen::FullscreenAllowedReason().value());
20 }
21
TEST(ScopedAllowFullscreenTest,MultipleScopesInTheSameScope)22 TEST(ScopedAllowFullscreenTest, MultipleScopesInTheSameScope) {
23 ScopedAllowFullscreen scope1(ScopedAllowFullscreen::kOrientationChange);
24
25 EXPECT_EQ(ScopedAllowFullscreen::kOrientationChange,
26 ScopedAllowFullscreen::FullscreenAllowedReason().value());
27
28 ScopedAllowFullscreen scope2(ScopedAllowFullscreen::kOrientationChange);
29
30 EXPECT_EQ(ScopedAllowFullscreen::kOrientationChange,
31 ScopedAllowFullscreen::FullscreenAllowedReason().value());
32 }
33
TEST(ScopedAllowFullscreenTest,DestructResetsState)34 TEST(ScopedAllowFullscreenTest, DestructResetsState) {
35 { ScopedAllowFullscreen scope(ScopedAllowFullscreen::kOrientationChange); }
36
37 EXPECT_FALSE(ScopedAllowFullscreen::FullscreenAllowedReason().has_value());
38 }
39
TEST(ScopedAllowFullscreenTest,DestructResetsStateToPrevious)40 TEST(ScopedAllowFullscreenTest, DestructResetsStateToPrevious) {
41 ScopedAllowFullscreen scope(ScopedAllowFullscreen::kOrientationChange);
42 { ScopedAllowFullscreen scope(ScopedAllowFullscreen::kOrientationChange); }
43
44 EXPECT_EQ(ScopedAllowFullscreen::kOrientationChange,
45 ScopedAllowFullscreen::FullscreenAllowedReason().value());
46 }
47
48 } // namespace blink
49