Upstream version 10.38.220.0
[platform/framework/web/crosswalk.git] / src / base / mac / scoped_sending_event_unittest.mm
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