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 <Cocoa/Cocoa.h>
6
7#include "base/memory/singleton.h"
8#include "chrome/app/chrome_command_ids.h"
9#import "chrome/browser/ui/cocoa/accelerators_cocoa.h"
10#include "testing/gtest/include/gtest/gtest.h"
11#include "testing/gtest_mac.h"
12#include "ui/base/accelerators/platform_accelerator_cocoa.h"
13
14TEST(AcceleratorsCocoaTest, GetAccelerator) {
15  AcceleratorsCocoa* keymap = AcceleratorsCocoa::GetInstance();
16  const ui::Accelerator* accelerator =
17      keymap->GetAcceleratorForCommand(IDC_COPY);
18  ASSERT_TRUE(accelerator);
19  ASSERT_TRUE(accelerator->platform_accelerator());
20  const ui::PlatformAcceleratorCocoa* platform_accelerator =
21      static_cast<const ui::PlatformAcceleratorCocoa*>(
22          accelerator->platform_accelerator());
23  EXPECT_NSEQ(@"c", platform_accelerator->characters());
24  EXPECT_EQ(NSCommandKeyMask, platform_accelerator->modifier_mask());
25}
26
27TEST(AcceleratorsCocoaTest, GetNullAccelerator) {
28  AcceleratorsCocoa* keymap = AcceleratorsCocoa::GetInstance();
29  const ui::Accelerator* accelerator =
30      keymap->GetAcceleratorForCommand(314159265);
31  EXPECT_FALSE(accelerator);
32}
33