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

Unified Diff: chrome/browser/chromeos/login/device_settings_test_helper.h

Issue 10828032: Add DeviceSettingsService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Oops. Created 8 years, 5 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
Index: chrome/browser/chromeos/login/device_settings_test_helper.h
diff --git a/chrome/browser/chromeos/login/device_settings_test_helper.h b/chrome/browser/chromeos/login/device_settings_test_helper.h
new file mode 100644
index 0000000000000000000000000000000000000000..39be442dc11a7e741a2a32322c0631cec18fc930
--- /dev/null
+++ b/chrome/browser/chromeos/login/device_settings_test_helper.h
@@ -0,0 +1,98 @@
+// 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.
+
+#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_DEVICE_SETTINGS_TEST_HELPER_H_
+#define CHROME_BROWSER_CHROMEOS_LOGIN_DEVICE_SETTINGS_TEST_HELPER_H_
+
+#include <string>
+#include <vector>
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "chromeos/dbus/session_manager_client.h"
+
+namespace chromeos {
+
+// A helper class for tests mocking out session_manager's device settings
+// interface. The pattern is to initialize DeviceSettingsService with the helper
+// for the SessionManagerClient pointer. The helper records calls made by
+// DeviceSettingsService. The test can then verify state, after which it should
+// call one of the Flush() variants that will resume processing.
pastarmovj 2012/07/30 12:19:19 Working around the "true mocks are bad for your he
Mattias Nissler (ping if slow) 2012/07/31 13:02:15 In this case they are, I actually had the gmock ve
+class DeviceSettingsTestHelper : public SessionManagerClient {
+ public:
+ // Wraps a device settings service instance for testing.
+ DeviceSettingsTestHelper();
+ virtual ~DeviceSettingsTestHelper();
+
+ // Runs all pending store callbacks. Returns false if nothing is pending.
pastarmovj 2012/07/30 12:19:19 Returns false from a void fnc?
Mattias Nissler (ping if slow) 2012/07/31 13:02:15 Done.
+ void FlushStore();
+
+ // Runs all pending retrieve callbacks. Returns false if nothing is pending.
pastarmovj 2012/07/30 12:19:19 Returns false from a void fnc?
Mattias Nissler (ping if slow) 2012/07/31 13:02:15 Done.
+ void FlushRetrieve();
+
+ // Flushes all pending operations.
+ void Flush();
+
+ bool store_result() {
+ return store_result_;
+ }
+ void set_store_result(bool store_result) {
+ store_result_ = store_result;
+ }
+
+ const std::string& policy_blob() {
+ return policy_blob_;
+ }
+ void set_policy_blob(const std::string& policy_blob) {
+ policy_blob_ = policy_blob;
+ }
+
+ // SessionManagerClient:
+ virtual void AddObserver(Observer* observer) OVERRIDE;
+ virtual void RemoveObserver(Observer* observer) OVERRIDE;
+ virtual bool HasObserver(Observer* observer) OVERRIDE;
+ virtual void EmitLoginPromptReady() OVERRIDE;
+ virtual void EmitLoginPromptVisible() OVERRIDE;
+ virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE;
+ virtual void RestartEntd() OVERRIDE;
+ virtual void StartSession(const std::string& user_email) OVERRIDE;
+ virtual void StopSession() OVERRIDE;
+ virtual void RequestLockScreen() OVERRIDE;
+ virtual void RequestUnlockScreen() OVERRIDE;
+ virtual bool GetIsScreenLocked() OVERRIDE;
+ virtual void RetrieveDevicePolicy(
+ const RetrievePolicyCallback& callback) OVERRIDE;
+ virtual void RetrieveUserPolicy(
+ const RetrievePolicyCallback& callback) OVERRIDE;
+ virtual void StoreDevicePolicy(const std::string& policy_blob,
+ const StorePolicyCallback& callback) OVERRIDE;
+ virtual void StoreUserPolicy(const std::string& policy_blob,
+ const StorePolicyCallback& callback) OVERRIDE;
+
+ private:
+ void FlushLoops();
+
+ bool store_result_;
+ std::string policy_blob_;
+
+ std::vector<StorePolicyCallback> store_callbacks_;
+ std::vector<RetrievePolicyCallback> retrieve_callbacks_;
+
+ DISALLOW_COPY_AND_ASSIGN(DeviceSettingsTestHelper);
+};
+
+// Wraps the singleton device settings and initializes it to the point where it
+// reports OWNERSHIP_NONE for the ownership status.
+class ScopedDeviceSettingsTestHelper : public DeviceSettingsTestHelper {
+ public:
+ ScopedDeviceSettingsTestHelper();
+ virtual ~ScopedDeviceSettingsTestHelper();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ScopedDeviceSettingsTestHelper);
+};
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_CHROMEOS_LOGIN_DEVICE_SETTINGS_TEST_HELPER_H_

Powered by Google App Engine
This is Rietveld 408576698