apps_helper.cc revision 3551c9c881056c480085172ff9840cab31610854
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/strings/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 "extensions/common/manifest.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::Manifest::TYPE_HOSTED_APP);
48}
49
50std::string InstallPlatformApp(Profile* profile, int index) {
51  return SyncExtensionHelper::GetInstance()->InstallExtension(
52      profile,
53      CreateFakeAppName(index),
54      extensions::Manifest::TYPE_PLATFORM_APP);
55}
56
57std::string InstallAppForAllProfiles(int index) {
58  for (int i = 0; i < test()->num_clients(); ++i)
59    InstallApp(test()->GetProfile(i), index);
60  return InstallApp(test()->verifier(), index);
61}
62
63void UninstallApp(Profile* profile, int index) {
64  return SyncExtensionHelper::GetInstance()->UninstallExtension(
65      profile, CreateFakeAppName(index));
66}
67
68void EnableApp(Profile* profile, int index) {
69  return SyncExtensionHelper::GetInstance()->EnableExtension(
70      profile, CreateFakeAppName(index));
71}
72
73void DisableApp(Profile* profile, int index) {
74  return SyncExtensionHelper::GetInstance()->DisableExtension(
75      profile, CreateFakeAppName(index));
76}
77
78void IncognitoEnableApp(Profile* profile, int index) {
79  return SyncExtensionHelper::GetInstance()->IncognitoEnableExtension(
80      profile, CreateFakeAppName(index));
81}
82
83void IncognitoDisableApp(Profile* profile, int index) {
84  return SyncExtensionHelper::GetInstance()->IncognitoDisableExtension(
85      profile, CreateFakeAppName(index));
86}
87
88void InstallAppsPendingForSync(Profile* profile) {
89  SyncExtensionHelper::GetInstance()->InstallExtensionsPendingForSync(profile);
90}
91
92syncer::StringOrdinal GetPageOrdinalForApp(Profile* profile,
93                                           int app_index) {
94  return SyncAppHelper::GetInstance()->GetPageOrdinalForApp(
95      profile, CreateFakeAppName(app_index));
96}
97
98void SetPageOrdinalForApp(Profile* profile,
99                          int app_index,
100                          const syncer::StringOrdinal& page_ordinal) {
101  SyncAppHelper::GetInstance()->SetPageOrdinalForApp(
102      profile, CreateFakeAppName(app_index), page_ordinal);
103}
104
105syncer::StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile,
106                                                int app_index) {
107  return SyncAppHelper::GetInstance()->GetAppLaunchOrdinalForApp(
108      profile, CreateFakeAppName(app_index));
109}
110
111void SetAppLaunchOrdinalForApp(
112    Profile* profile,
113    int app_index,
114    const syncer::StringOrdinal& app_launch_ordinal) {
115  SyncAppHelper::GetInstance()->SetAppLaunchOrdinalForApp(
116      profile, CreateFakeAppName(app_index), app_launch_ordinal);
117}
118
119void CopyNTPOrdinals(Profile* source, Profile* destination, int index) {
120  SetPageOrdinalForApp(destination, index, GetPageOrdinalForApp(source, index));
121  SetAppLaunchOrdinalForApp(
122      destination, index, GetAppLaunchOrdinalForApp(source, index));
123}
124
125void FixNTPOrdinalCollisions(Profile* profile) {
126  SyncAppHelper::GetInstance()->FixNTPOrdinalCollisions(profile);
127}
128
129}  // namespace apps_helper
130