1// Copyright (c) 2012 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#include "chrome/browser/ui/ash/caps_lock_delegate_chromeos.h" 6 7#include "chrome/test/base/in_process_browser_test.h" 8#include "chrome/test/base/ui_test_utils.h" 9#include "chromeos/ime/mock_xkeyboard.h" 10 11namespace { 12 13class CapsLockDelegateTest : public InProcessBrowserTest { 14 public: 15 CapsLockDelegateTest() : initial_caps_lock_state_(false) { 16 } 17 18 virtual void SetUp() OVERRIDE { 19 delegate_.reset(new CapsLockDelegate(&xkeyboard_)); 20 // Force CapsLockDelegate::ToggleCapsLock() to toggle the lock state. 21 delegate_->set_is_running_on_chromeos_for_test(true); 22 } 23 virtual void TearDown() OVERRIDE { 24 delegate_.reset(); 25 } 26 27 protected: 28 const bool initial_caps_lock_state_; 29 chromeos::input_method::MockXKeyboard xkeyboard_; 30 scoped_ptr<CapsLockDelegate> delegate_; 31 32 DISALLOW_COPY_AND_ASSIGN(CapsLockDelegateTest); 33}; 34 35// Check if ToggleCapsLock() really changes the lock state. 36IN_PROC_BROWSER_TEST_F(CapsLockDelegateTest, TestCapsLock) { 37 EXPECT_EQ(initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); 38 delegate_->ToggleCapsLock(); 39 EXPECT_EQ(!initial_caps_lock_state_, xkeyboard_.CapsLockIsEnabled()); 40 delegate_->OnCapsLockChange(!initial_caps_lock_state_); 41 EXPECT_EQ(!initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); 42 delegate_->ToggleCapsLock(); 43 delegate_->OnCapsLockChange(initial_caps_lock_state_); 44 EXPECT_EQ(initial_caps_lock_state_, xkeyboard_.CapsLockIsEnabled()); 45 EXPECT_EQ(initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); 46 47 // Check if SetCapsLockEnabled really changes the lock state. 48 delegate_->SetCapsLockEnabled(!initial_caps_lock_state_); 49 EXPECT_EQ(!initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); 50 EXPECT_EQ(!initial_caps_lock_state_, xkeyboard_.CapsLockIsEnabled()); 51 EXPECT_EQ(!initial_caps_lock_state_, delegate_->IsCapsLockEnabled()); 52 delegate_->SetCapsLockEnabled(initial_caps_lock_state_); 53 EXPECT_EQ(initial_caps_lock_state_, delegate_->caps_lock_is_on_for_test()); 54 EXPECT_EQ(initial_caps_lock_state_, xkeyboard_.CapsLockIsEnabled()); 55 EXPECT_EQ(initial_caps_lock_state_, delegate_->IsCapsLockEnabled()); 56} 57 58} // namespace 59