// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/ui/ash/caps_lock_delegate_chromeos.h" #include "chrome/browser/chromeos/input_method/mock_xkeyboard.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" namespace { class CapsLockDelegateTest : public InProcessBrowserTest { public: CapsLockDelegateTest() : initial_caps_lock_state_(false) { } virtual void SetUp() OVERRIDE { delegate_.reset(new CapsLockDelegate(&xkeyboard_)); // Force CapsLockDelegate::ToggleCapsLock() to toggle the lock state. delegate_->set_is_running_on_chromeos_for_test(true); } virtual void TearDown() OVERRIDE { delegate_.reset(); } protected: const bool initial_caps_lock_state_; chromeos::input_method::MockXKeyboard xkeyboard_; scoped_ptr delegate_; DISALLOW_COPY_AND_ASSIGN(CapsLockDelegateTest); }; // Check if ToggleCapsLock() really changes the lock state. IN_PROC_BROWSER_TEST_F(CapsLockDelegateTest, TestCapsLock) { EXPECT_EQ(initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); delegate_->ToggleCapsLock(); EXPECT_EQ(!initial_caps_lock_state_, xkeyboard_.CapsLockIsEnabled()); delegate_->OnCapsLockChange(!initial_caps_lock_state_); EXPECT_EQ(!initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); delegate_->ToggleCapsLock(); delegate_->OnCapsLockChange(initial_caps_lock_state_); EXPECT_EQ(initial_caps_lock_state_, xkeyboard_.CapsLockIsEnabled()); EXPECT_EQ(initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); // Check if SetCapsLockEnabled really changes the lock state. delegate_->SetCapsLockEnabled(!initial_caps_lock_state_); EXPECT_EQ(!initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); EXPECT_EQ(!initial_caps_lock_state_, xkeyboard_.CapsLockIsEnabled()); EXPECT_EQ(!initial_caps_lock_state_, delegate_->IsCapsLockEnabled()); delegate_->SetCapsLockEnabled(initial_caps_lock_state_); EXPECT_EQ(initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); EXPECT_EQ(initial_caps_lock_state_, xkeyboard_.CapsLockIsEnabled()); EXPECT_EQ(initial_caps_lock_state_, delegate_->IsCapsLockEnabled()); } } // namespace