Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: chrome/browser/chromeos/cros/cros_library.h

Issue 1142005: Mocks for all libcros elements (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/browser_main.cc ('k') | chrome/browser/chromeos/cros/cros_library.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/cros/cros_library.h
===================================================================
--- chrome/browser/chromeos/cros/cros_library.h (revision 42341)
+++ chrome/browser/chromeos/cros/cros_library.h (working copy)
@@ -7,31 +7,111 @@
#include <string>
#include "base/basictypes.h"
+#include "base/singleton.h"
namespace chromeos {
-// This class handles the loading of the ChromeOS shared library.
+class CryptohomeLibrary;
+class LanguageLibrary;
+class LibraryLoader;
+class LoginLibrary;
+class MountLibrary;
+class NetworkLibrary;
+class PowerLibrary;
+class SynapticsLibrary;
+
+// This class handles access to sub-parts of ChromeOS library. it provides
+// a level of indirection so individual libraries that it exposes can
+// be mocked for testing.
class CrosLibrary {
public:
+
+ // This class provides access to internal members of CrosLibrary class for
+ // purpose of testing (i.e. replacement of members' implementation with
+ // mock objects).
+ class TestApi {
+ public:
+ // Setter for LibraryLoader.
+ void SetLibraryLoader(LibraryLoader* loader);
+ // Setter for CryptohomeLibrary.
+ void SetCryptohomeLibrary(CryptohomeLibrary* library);
+ // Setter for LanguageLibrary
+ void SetLanguageLibrary(LanguageLibrary* library);
+ // Setter for LoginLibrary.
+ void SetLoginLibrary(LoginLibrary* library);
+ // Setter for MountLibrary.
+ void SetMountLibrary(MountLibrary* library);
+ // Setter for NetworkLibrary.
+ void SetNetworkLibrary(NetworkLibrary* library);
+ // Setter for PowerLibrary.
+ void SetPowerLibrary(PowerLibrary* library);
+ // Setter for SynapticsLibrary.
+ void SetSynapticsLibrary(SynapticsLibrary* library);
+
+ private:
+ friend class CrosLibrary;
+ explicit TestApi(CrosLibrary* library) : library_(library) {}
+ CrosLibrary* library_;
+ };
+
+ // This gets the CrosLibrary.
+ static CrosLibrary* Get();
+
+ // Getter for CryptohomeLibrary.
+ CryptohomeLibrary* GetCryptohomeLibrary();
+
+ // // Getter for LanguageLibrary
+ LanguageLibrary* GetLanguageLibrary();
+
+ // Getter for LoginLibrary.
+ LoginLibrary* GetLoginLibrary();
+
+ // Getter for MountLibrary
+ MountLibrary* GetMountLibrary();
+
+ // Getter for NetworkLibrary
+ NetworkLibrary* GetNetworkLibrary();
+
+ // Getter for PowerLibrary
+ PowerLibrary* GetPowerLibrary();
+
+ // This gets the singleton SynapticsLibrary.
+ SynapticsLibrary* GetSynapticsLibrary();
+
+ // Getter for Test API that gives access to internal members of this class.
+ TestApi* GetTestApi();
+
// Ensures that the library is loaded, loading it if needed. If the library
// could not be loaded, returns false.
- static bool EnsureLoaded();
+ bool EnsureLoaded();
// Returns an unlocalized string describing the last load error (if any).
- static const std::string& load_error_string() {
+ const std::string& load_error_string() {
return load_error_string_;
}
private:
- CrosLibrary() {}
- ~CrosLibrary() {}
+ friend struct DefaultSingletonTraits<chromeos::CrosLibrary>;
+ friend class CrosLibrary::TestApi;
+ CrosLibrary();
+ virtual ~CrosLibrary();
+
+ LibraryLoader* library_loader_;
+ CryptohomeLibrary* crypto_lib_;
+ LanguageLibrary* language_lib_;
+ LoginLibrary* login_lib_;
+ MountLibrary* mount_lib_;
+ NetworkLibrary* network_lib_;
+ PowerLibrary* power_lib_;
+ SynapticsLibrary* synaptics_lib_;
// True if libcros was successfully loaded.
- static bool loaded_;
+ bool loaded_;
// True if the last load attempt had an error.
- static bool load_error_;
+ bool load_error_;
// Contains the error string from the last load attempt.
- static std::string load_error_string_;
+ std::string load_error_string_;
+ TestApi* test_api_;
DISALLOW_COPY_AND_ASSIGN(CrosLibrary);
};
« no previous file with comments | « chrome/browser/browser_main.cc ('k') | chrome/browser/chromeos/cros/cros_library.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698