| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
| 6 | 6 |
| 7 #include "base/scoped_ptr.h" | 7 #include "base/scoped_ptr.h" |
| 8 #include "base/scoped_nsobject.h" | 8 #include "base/scoped_nsobject.h" |
| 9 #import "chrome/browser/cocoa/command_observer_bridge.h" | 9 #import "chrome/browser/cocoa/command_observer_bridge.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 11 #include "testing/platform_test.h" |
| 11 | 12 |
| 12 // Implements the callback interface. Records the last command id and | 13 // Implements the callback interface. Records the last command id and |
| 13 // enabled state it has received so it can be queried by the tests to see | 14 // enabled state it has received so it can be queried by the tests to see |
| 14 // if we got a notification or not. | 15 // if we got a notification or not. |
| 15 @interface CommandTestObserver : NSObject<CommandObserverProtocol> { | 16 @interface CommandTestObserver : NSObject<CommandObserverProtocol> { |
| 16 @private | 17 @private |
| 17 int lastCommand_; // id of last received state change | 18 int lastCommand_; // id of last received state change |
| 18 bool lastState_; // state of last received state change | 19 bool lastState_; // state of last received state change |
| 19 } | 20 } |
| 20 - (int)lastCommand; | 21 - (int)lastCommand; |
| 21 - (bool)lastState; | 22 - (bool)lastState; |
| 22 @end | 23 @end |
| 23 | 24 |
| 24 @implementation CommandTestObserver | 25 @implementation CommandTestObserver |
| 25 - (void)enabledStateChangedForCommand:(NSInteger)command enabled:(BOOL)enabled { | 26 - (void)enabledStateChangedForCommand:(NSInteger)command enabled:(BOOL)enabled { |
| 26 lastCommand_ = command; | 27 lastCommand_ = command; |
| 27 lastState_ = enabled; | 28 lastState_ = enabled; |
| 28 } | 29 } |
| 29 - (int)lastCommand { | 30 - (int)lastCommand { |
| 30 return lastCommand_; | 31 return lastCommand_; |
| 31 } | 32 } |
| 32 - (bool)lastState { | 33 - (bool)lastState { |
| 33 return lastState_; | 34 return lastState_; |
| 34 } | 35 } |
| 35 @end | 36 @end |
| 36 | 37 |
| 37 namespace { | 38 namespace { |
| 38 | 39 |
| 39 class CommandObserverBridgeTest : public testing::Test { | 40 class CommandObserverBridgeTest : public PlatformTest { |
| 40 public: | 41 public: |
| 41 CommandObserverBridgeTest() | 42 CommandObserverBridgeTest() |
| 42 : updater_(new CommandUpdater(NULL)), | 43 : updater_(new CommandUpdater(NULL)), |
| 43 observer_([[CommandTestObserver alloc] init]) { | 44 observer_([[CommandTestObserver alloc] init]) { |
| 44 } | 45 } |
| 45 scoped_ptr<CommandUpdater> updater_; | 46 scoped_ptr<CommandUpdater> updater_; |
| 46 scoped_nsobject<CommandTestObserver> observer_; | 47 scoped_nsobject<CommandTestObserver> observer_; |
| 47 }; | 48 }; |
| 48 | 49 |
| 49 // Tests creation and deletion. NULL arguments aren't allowed. | 50 // Tests creation and deletion. NULL arguments aren't allowed. |
| (...skipping 29 matching lines...) Expand all Loading... |
| 79 | 80 |
| 80 // Change something we're not watching and make sure the last state hasn't | 81 // Change something we're not watching and make sure the last state hasn't |
| 81 // changed. | 82 // changed. |
| 82 updater_->UpdateCommandEnabled(3, false); | 83 updater_->UpdateCommandEnabled(3, false); |
| 83 EXPECT_EQ([observer_ lastCommand], 1); | 84 EXPECT_EQ([observer_ lastCommand], 1); |
| 84 EXPECT_NE([observer_ lastCommand], 3); | 85 EXPECT_NE([observer_ lastCommand], 3); |
| 85 EXPECT_EQ([observer_ lastState], true); | 86 EXPECT_EQ([observer_ lastState], true); |
| 86 } | 87 } |
| 87 | 88 |
| 88 } // namespace | 89 } // namespace |
| OLD | NEW |