• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
15 using sync_datatype_helper::test;
16 
17 namespace {
18 
CreateFakeAppName(int index)19 std::string CreateFakeAppName(int index) {
20   return "fakeapp" + base::IntToString(index);
21 }
22 
23 }  // namespace
24 
25 namespace apps_helper {
26 
HasSameAppsAsVerifier(int index)27 bool HasSameAppsAsVerifier(int index) {
28   return SyncAppHelper::GetInstance()->AppStatesMatch(
29       test()->GetProfile(index), test()->verifier());
30 }
31 
AllProfilesHaveSameAppsAsVerifier()32 bool 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 
InstallApp(Profile * profile,int index)43 std::string InstallApp(Profile* profile, int index) {
44   return SyncExtensionHelper::GetInstance()->InstallExtension(
45       profile,
46       CreateFakeAppName(index),
47       extensions::Manifest::TYPE_HOSTED_APP);
48 }
49 
InstallPlatformApp(Profile * profile,int index)50 std::string InstallPlatformApp(Profile* profile, int index) {
51   return SyncExtensionHelper::GetInstance()->InstallExtension(
52       profile,
53       CreateFakeAppName(index),
54       extensions::Manifest::TYPE_PLATFORM_APP);
55 }
56 
InstallAppForAllProfiles(int index)57 std::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 
UninstallApp(Profile * profile,int index)63 void UninstallApp(Profile* profile, int index) {
64   return SyncExtensionHelper::GetInstance()->UninstallExtension(
65       profile, CreateFakeAppName(index));
66 }
67 
EnableApp(Profile * profile,int index)68 void EnableApp(Profile* profile, int index) {
69   return SyncExtensionHelper::GetInstance()->EnableExtension(
70       profile, CreateFakeAppName(index));
71 }
72 
DisableApp(Profile * profile,int index)73 void DisableApp(Profile* profile, int index) {
74   return SyncExtensionHelper::GetInstance()->DisableExtension(
75       profile, CreateFakeAppName(index));
76 }
77 
IncognitoEnableApp(Profile * profile,int index)78 void IncognitoEnableApp(Profile* profile, int index) {
79   return SyncExtensionHelper::GetInstance()->IncognitoEnableExtension(
80       profile, CreateFakeAppName(index));
81 }
82 
IncognitoDisableApp(Profile * profile,int index)83 void IncognitoDisableApp(Profile* profile, int index) {
84   return SyncExtensionHelper::GetInstance()->IncognitoDisableExtension(
85       profile, CreateFakeAppName(index));
86 }
87 
InstallAppsPendingForSync(Profile * profile)88 void InstallAppsPendingForSync(Profile* profile) {
89   SyncExtensionHelper::GetInstance()->InstallExtensionsPendingForSync(profile);
90 }
91 
GetPageOrdinalForApp(Profile * profile,int app_index)92 syncer::StringOrdinal GetPageOrdinalForApp(Profile* profile,
93                                            int app_index) {
94   return SyncAppHelper::GetInstance()->GetPageOrdinalForApp(
95       profile, CreateFakeAppName(app_index));
96 }
97 
SetPageOrdinalForApp(Profile * profile,int app_index,const syncer::StringOrdinal & page_ordinal)98 void 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 
GetAppLaunchOrdinalForApp(Profile * profile,int app_index)105 syncer::StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile,
106                                                 int app_index) {
107   return SyncAppHelper::GetInstance()->GetAppLaunchOrdinalForApp(
108       profile, CreateFakeAppName(app_index));
109 }
110 
SetAppLaunchOrdinalForApp(Profile * profile,int app_index,const syncer::StringOrdinal & app_launch_ordinal)111 void 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 
CopyNTPOrdinals(Profile * source,Profile * destination,int index)119 void CopyNTPOrdinals(Profile* source, Profile* destination, int index) {
120   SetPageOrdinalForApp(destination, index, GetPageOrdinalForApp(source, index));
121   SetAppLaunchOrdinalForApp(
122       destination, index, GetAppLaunchOrdinalForApp(source, index));
123 }
124 
FixNTPOrdinalCollisions(Profile * profile)125 void FixNTPOrdinalCollisions(Profile* profile) {
126   SyncAppHelper::GetInstance()->FixNTPOrdinalCollisions(profile);
127 }
128 
129 }  // namespace apps_helper
130