Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / users / mock_user_manager.cc
index 8802890..b459256 100644 (file)
@@ -4,54 +4,74 @@
 
 #include "chrome/browser/chromeos/login/users/mock_user_manager.h"
 
+#include "base/task_runner.h"
 #include "chrome/browser/chromeos/login/users/fake_supervised_user_manager.h"
+#include "chrome/browser/chromeos/profiles/profile_helper.h"
+
+namespace {
+
+class FakeTaskRunner : public base::TaskRunner {
+ public:
+  virtual bool PostDelayedTask(const tracked_objects::Location& from_here,
+                               const base::Closure& task,
+                               base::TimeDelta delay) OVERRIDE {
+    task.Run();
+    return true;
+  }
+  virtual bool RunsTasksOnCurrentThread() const OVERRIDE { return true; }
+
+ protected:
+  virtual ~FakeTaskRunner() {}
+};
+
+}  // namespace
 
 namespace chromeos {
 
 MockUserManager::MockUserManager()
-    : user_flow_(new DefaultUserFlow()),
-      supervised_user_manager_(new FakeSupervisedUserManager()) {}
+    : ChromeUserManager(new FakeTaskRunner(), new FakeTaskRunner()),
+      user_flow_(new DefaultUserFlow()),
+      supervised_user_manager_(new FakeSupervisedUserManager()) {
+  ProfileHelper::SetProfileToUserForTestingEnabled(true);
+}
 
 MockUserManager::~MockUserManager() {
+  ProfileHelper::SetProfileToUserForTestingEnabled(false);
   ClearUserList();
 }
 
-const UserList& MockUserManager::GetUsers() const {
+const user_manager::UserList& MockUserManager::GetUsers() const {
   return user_list_;
 }
 
-const User* MockUserManager::GetLoggedInUser() const {
+const user_manager::User* MockUserManager::GetLoggedInUser() const {
   return user_list_.empty() ? NULL : user_list_.front();
 }
 
-User* MockUserManager::GetLoggedInUser() {
+user_manager::User* MockUserManager::GetLoggedInUser() {
   return user_list_.empty() ? NULL : user_list_.front();
 }
 
-UserList MockUserManager::GetUnlockUsers() const {
+user_manager::UserList MockUserManager::GetUnlockUsers() const {
   return user_list_;
 }
 
-const std::string& MockUserManager::GetOwnerEmail() {
+const std::string& MockUserManager::GetOwnerEmail() const {
   return GetLoggedInUser()->email();
 }
 
-const User* MockUserManager::GetActiveUser() const {
+const user_manager::User* MockUserManager::GetActiveUser() const {
   return GetLoggedInUser();
 }
 
-User* MockUserManager::GetActiveUser() {
+user_manager::User* MockUserManager::GetActiveUser() {
   return GetLoggedInUser();
 }
 
-const User* MockUserManager::GetPrimaryUser() const {
+const user_manager::User* MockUserManager::GetPrimaryUser() const {
   return GetLoggedInUser();
 }
 
-User* MockUserManager::GetUserByProfile(Profile* profile) const {
-  return user_list_.empty() ? NULL : user_list_.front();
-}
-
 MultiProfileUserController* MockUserManager::GetMultiProfileUserController() {
   return NULL;
 }
@@ -79,29 +99,27 @@ UserFlow* MockUserManager::GetUserFlow(const std::string&) const {
   return user_flow_.get();
 }
 
-User* MockUserManager::CreatePublicAccountUser(const std::string& email) {
+user_manager::User* MockUserManager::CreatePublicAccountUser(
+    const std::string& email) {
   ClearUserList();
-  user_list_.push_back(User::CreatePublicAccountUser(email));
+  user_manager::User* user = user_manager::User::CreatePublicAccountUser(email);
+  user_list_.push_back(user);
+  ProfileHelper::Get()->SetProfileToUserMappingForTesting(user);
   return user_list_.back();
 }
 
 void MockUserManager::AddUser(const std::string& email) {
-  user_list_.push_back(User::CreateRegularUser(email));
+  user_manager::User* user = user_manager::User::CreateRegularUser(email);
+  user_list_.push_back(user);
+  ProfileHelper::Get()->SetProfileToUserMappingForTesting(user);
 }
 
 void MockUserManager::ClearUserList() {
   // Can't use STLDeleteElements because of the protected destructor of User.
-  UserList::iterator user;
+  user_manager::UserList::iterator user;
   for (user = user_list_.begin(); user != user_list_.end(); ++user)
     delete *user;
   user_list_.clear();
 }
 
-bool MockUserManager::RespectLocalePreference(
-    Profile* profile,
-    const User* user,
-    scoped_ptr<locale_util::SwitchLanguageCallback> callback) const {
-  return false;
-}
-
 }  // namespace chromeos