apps_helper.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 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/sync/test/integration/apps_helper.h"
6
7#include "base/logging.h"
8#include "base/string_number_conversions.h"
9#include "chrome/browser/profiles/profile.h"
10#include "chrome/browser/sync/test/integration/sync_app_helper.h"
11#include "chrome/browser/sync/test/integration/sync_datatype_helper.h"
12#include "chrome/browser/sync/test/integration/sync_extension_helper.h"
13#include "chrome/common/extensions/extension.h"
14
15using sync_datatype_helper::test;
16
17namespace {
18
19std::string CreateFakeAppName(int index) {
20  return "fakeapp" + base::IntToString(index);
21}
22
23}  // namespace
24
25namespace apps_helper {
26
27bool HasSameAppsAsVerifier(int index) {
28  return SyncAppHelper::GetInstance()->AppStatesMatch(
29      test()->GetProfile(index), test()->verifier());
30}
31
32bool AllProfilesHaveSameAppsAsVerifier() {
33  for (int i = 0; i < test()->num_clients(); ++i) {
34    if (!HasSameAppsAsVerifier(i)) {
35      LOG(ERROR) << "Profile " << i << " doesn't have the same apps as the"
36                                       " verifier profile.";
37      return false;
38    }
39  }
40  return true;
41}
42
43std::string InstallApp(Profile* profile, int index) {
44  return SyncExtensionHelper::GetInstance()->InstallExtension(
45      profile,
46      CreateFakeAppName(index),
47      extensions::Extension::TYPE_HOSTED_APP);
48}
49
50std::string InstallAppForAllProfiles(int index) {
51  for (int i = 0; i < test()->num_clients(); ++i)
52    InstallApp(test()->GetProfile(i), index);
53  return InstallApp(test()->verifier(), index);
54}
55
56void UninstallApp(Profile* profile, int index) {
57  return SyncExtensionHelper::GetInstance()->UninstallExtension(
58      profile, CreateFakeAppName(index));
59}
60
61void EnableApp(Profile* profile, int index) {
62  return SyncExtensionHelper::GetInstance()->EnableExtension(
63      profile, CreateFakeAppName(index));
64}
65
66void DisableApp(Profile* profile, int index) {
67  return SyncExtensionHelper::GetInstance()->DisableExtension(
68      profile, CreateFakeAppName(index));
69}
70
71void IncognitoEnableApp(Profile* profile, int index) {
72  return SyncExtensionHelper::GetInstance()->IncognitoEnableExtension(
73      profile, CreateFakeAppName(index));
74}
75
76void IncognitoDisableApp(Profile* profile, int index) {
77  return SyncExtensionHelper::GetInstance()->IncognitoDisableExtension(
78      profile, CreateFakeAppName(index));
79}
80
81void InstallAppsPendingForSync(Profile* profile) {
82  SyncExtensionHelper::GetInstance()->InstallExtensionsPendingForSync(
83      profile, extensions::Extension::TYPE_HOSTED_APP);
84}
85
86syncer::StringOrdinal GetPageOrdinalForApp(Profile* profile,
87                                           int app_index) {
88  return SyncAppHelper::GetInstance()->GetPageOrdinalForApp(
89      profile, CreateFakeAppName(app_index));
90}
91
92void SetPageOrdinalForApp(Profile* profile,
93                          int app_index,
94                          const syncer::StringOrdinal& page_ordinal) {
95  SyncAppHelper::GetInstance()->SetPageOrdinalForApp(
96      profile, CreateFakeAppName(app_index), page_ordinal);
97}
98
99syncer::StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile,
100                                                int app_index) {
101  return SyncAppHelper::GetInstance()->GetAppLaunchOrdinalForApp(
102      profile, CreateFakeAppName(app_index));
103}
104
105void SetAppLaunchOrdinalForApp(
106    Profile* profile,
107    int app_index,
108    const syncer::StringOrdinal& app_launch_ordinal) {
109  SyncAppHelper::GetInstance()->SetAppLaunchOrdinalForApp(
110      profile, CreateFakeAppName(app_index), app_launch_ordinal);
111}
112
113void CopyNTPOrdinals(Profile* source, Profile* destination, int index) {
114  SetPageOrdinalForApp(destination, index, GetPageOrdinalForApp(source, index));
115  SetAppLaunchOrdinalForApp(
116      destination, index, GetAppLaunchOrdinalForApp(source, index));
117}
118
119void FixNTPOrdinalCollisions(Profile* profile) {
120  SyncAppHelper::GetInstance()->FixNTPOrdinalCollisions(profile);
121}
122
123}  // namespace apps_helper
124