1 // Copyright (c) 2011 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 #import "base/mac/scoped_sending_event.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace { 10 11 // Sets the flag within scope, resets when leaving scope. 12 TEST(ScopedSendingEventTest, SetHandlingSendEvent) { 13 id<CrAppProtocol> app = NSApp; 14 EXPECT_FALSE([app isHandlingSendEvent]); 15 { 16 base::mac::ScopedSendingEvent is_handling_send_event; 17 EXPECT_TRUE([app isHandlingSendEvent]); 18 } 19 EXPECT_FALSE([app isHandlingSendEvent]); 20 } 21 22 // Nested call restores previous value rather than resetting flag. 23 TEST(ScopedSendingEventTest, NestedSetHandlingSendEvent) { 24 id<CrAppProtocol> app = NSApp; 25 EXPECT_FALSE([app isHandlingSendEvent]); 26 { 27 base::mac::ScopedSendingEvent is_handling_send_event; 28 EXPECT_TRUE([app isHandlingSendEvent]); 29 { 30 base::mac::ScopedSendingEvent nested_is_handling_send_event; 31 EXPECT_TRUE([app isHandlingSendEvent]); 32 } 33 EXPECT_TRUE([app isHandlingSendEvent]); 34 } 35 EXPECT_FALSE([app isHandlingSendEvent]); 36 } 37 38 } // namespace 39