1// Copyright 2014 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/stub_user_accounts_delegate.h"
6
7#include <cctype>
8
9#include "base/logging.h"
10
11StubUserAccountsDelegate::StubUserAccountsDelegate(const std::string& owner_id)
12    : primary_account_(owner_id) {}
13
14StubUserAccountsDelegate::~StubUserAccountsDelegate() {}
15
16std::string StubUserAccountsDelegate::GetPrimaryAccountId() {
17  return primary_account_;
18}
19
20std::vector<std::string> StubUserAccountsDelegate::GetSecondaryAccountIds() {
21  return secondary_accounts_;
22}
23
24std::string StubUserAccountsDelegate::GetAccountDisplayName(
25    const std::string& account_id) {
26  std::string res(1, std::toupper(account_id[0]));
27  res += account_id.substr(1);
28  return res;
29}
30
31void StubUserAccountsDelegate::DeleteAccount(const std::string& account_id) {
32  secondary_accounts_.erase(
33      std::remove(
34          secondary_accounts_.begin(), secondary_accounts_.end(), account_id),
35      secondary_accounts_.end());
36  NotifyAccountListChanged();
37}
38
39void StubUserAccountsDelegate::AddAccount(const std::string& account_id) {
40  if (primary_account_ == account_id)
41    return;
42  if (std::find(secondary_accounts_.begin(),
43                secondary_accounts_.end(),
44                account_id) != secondary_accounts_.end())
45    return;
46  secondary_accounts_.push_back(account_id);
47  NotifyAccountListChanged();
48}
49
50void StubUserAccountsDelegate::LaunchAddAccountDialog() {
51  NOTIMPLEMENTED();
52}
53