// Copyright (c) 2011 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. #ifndef CHROME_BROWSER_CHROMEOS_CROS_CROS_MOCK_H_ #define CHROME_BROWSER_CHROMEOS_CROS_CROS_MOCK_H_ #include "chrome/browser/chromeos/cros/cros_library.h" #include "chrome/browser/chromeos/cros/network_library.h" #include "chrome/test/base/in_process_browser_test.h" namespace chromeos { class MockCryptohomeLibrary; class MockKeyboardLibrary; class MockLibraryLoader; class MockNetworkLibrary; // Class for initializing mocks for some parts of CrosLibrary. Once you mock // part of CrosLibrary it will be considered as successfully loaded and // libraries that compose CrosLibrary will be created. CrosMock also defines a // minimum set of mocks that is used by status area elements (network, // input language, power). class CrosMock { public: CrosMock(); virtual ~CrosMock(); // This method sets up basic mocks that are used by status area items: // LibraryLoader, Language, Network, Power, libraries. // Add a call to this method at the beginning of your // SetUpInProcessBrowserTestFixture. void InitStatusAreaMocks(); // Initialization of CrosLibrary mock loader. If you intend calling // separate init methods for mocks call this one first. void InitMockLibraryLoader(); // Initialization of mocks. void InitMockCryptohomeLibrary(); void InitMockKeyboardLibrary(); void InitMockNetworkLibrary(); // Get mocks. MockCryptohomeLibrary* mock_cryptohome_library(); MockKeyboardLibrary* mock_keyboard_library(); MockNetworkLibrary* mock_network_library(); // This method sets up corresponding expectations for basic mocks that // are used by status area items. // Make sure that InitStatusAreaMocks was called before. // Add a call to this method in your SetUpInProcessBrowserTestFixture. // They are all configured with RetiresOnSaturation(). // Once such expectation is used it won't block expectations you've defined. void SetStatusAreaMocksExpectations(); // Methods to setup minimal mocks expectations for status area. void SetKeyboardLibraryStatusAreaExpectations(); void SetNetworkLibraryStatusAreaExpectations(); void TearDownMocks(); // TestApi gives access to CrosLibrary private members. chromeos::CrosLibrary::TestApi* test_api(); private: // Mocks, destroyed by CrosLibrary class. MockLibraryLoader* loader_; MockCryptohomeLibrary* mock_cryptohome_library_; MockKeyboardLibrary* mock_keyboard_library_; MockNetworkLibrary* mock_network_library_; WifiNetworkVector wifi_networks_; WimaxNetworkVector wimax_networks_; CellularNetworkVector cellular_networks_; VirtualNetworkVector virtual_networks_; std::string empty_string_; DISALLOW_COPY_AND_ASSIGN(CrosMock); }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_CROS_CROS_MOCK_H_