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