| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/sync/test/integration/apps_helper.h" |
| |
| #include "base/logging.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/sync/test/integration/sync_app_helper.h" |
| #include "chrome/browser/sync/test/integration/sync_datatype_helper.h" |
| #include "chrome/browser/sync/test/integration/sync_extension_helper.h" |
| #include "extensions/common/manifest.h" |
| |
| using sync_datatype_helper::test; |
| |
| namespace { |
| |
| std::string CreateFakeAppName(int index) { |
| return "fakeapp" + base::IntToString(index); |
| } |
| |
| } // namespace |
| |
| namespace apps_helper { |
| |
| bool HasSameAppsAsVerifier(int index) { |
| return SyncAppHelper::GetInstance()->AppStatesMatch( |
| test()->GetProfile(index), test()->verifier()); |
| } |
| |
| bool AllProfilesHaveSameAppsAsVerifier() { |
| for (int i = 0; i < test()->num_clients(); ++i) { |
| if (!HasSameAppsAsVerifier(i)) { |
| LOG(ERROR) << "Profile " << i << " doesn't have the same apps as the" |
| " verifier profile."; |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| std::string InstallApp(Profile* profile, int index) { |
| return SyncExtensionHelper::GetInstance()->InstallExtension( |
| profile, |
| CreateFakeAppName(index), |
| extensions::Manifest::TYPE_HOSTED_APP); |
| } |
| |
| std::string InstallPlatformApp(Profile* profile, int index) { |
| return SyncExtensionHelper::GetInstance()->InstallExtension( |
| profile, |
| CreateFakeAppName(index), |
| extensions::Manifest::TYPE_PLATFORM_APP); |
| } |
| |
| std::string InstallAppForAllProfiles(int index) { |
| for (int i = 0; i < test()->num_clients(); ++i) |
| InstallApp(test()->GetProfile(i), index); |
| return InstallApp(test()->verifier(), index); |
| } |
| |
| void UninstallApp(Profile* profile, int index) { |
| return SyncExtensionHelper::GetInstance()->UninstallExtension( |
| profile, CreateFakeAppName(index)); |
| } |
| |
| void IncognitoEnableApp(Profile* profile, int index) { |
| return SyncExtensionHelper::GetInstance()->IncognitoEnableExtension( |
| profile, CreateFakeAppName(index)); |
| } |
| |
| void IncognitoDisableApp(Profile* profile, int index) { |
| return SyncExtensionHelper::GetInstance()->IncognitoDisableExtension( |
| profile, CreateFakeAppName(index)); |
| } |
| |
| void InstallAppsPendingForSync(Profile* profile) { |
| SyncExtensionHelper::GetInstance()->InstallExtensionsPendingForSync(profile); |
| } |
| |
| syncer::StringOrdinal GetPageOrdinalForApp(Profile* profile, |
| int app_index) { |
| return SyncAppHelper::GetInstance()->GetPageOrdinalForApp( |
| profile, CreateFakeAppName(app_index)); |
| } |
| |
| void SetPageOrdinalForApp(Profile* profile, |
| int app_index, |
| const syncer::StringOrdinal& page_ordinal) { |
| SyncAppHelper::GetInstance()->SetPageOrdinalForApp( |
| profile, CreateFakeAppName(app_index), page_ordinal); |
| } |
| |
| syncer::StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile, |
| int app_index) { |
| return SyncAppHelper::GetInstance()->GetAppLaunchOrdinalForApp( |
| profile, CreateFakeAppName(app_index)); |
| } |
| |
| void SetAppLaunchOrdinalForApp( |
| Profile* profile, |
| int app_index, |
| const syncer::StringOrdinal& app_launch_ordinal) { |
| SyncAppHelper::GetInstance()->SetAppLaunchOrdinalForApp( |
| profile, CreateFakeAppName(app_index), app_launch_ordinal); |
| } |
| |
| void CopyNTPOrdinals(Profile* source, Profile* destination, int index) { |
| SetPageOrdinalForApp(destination, index, GetPageOrdinalForApp(source, index)); |
| SetAppLaunchOrdinalForApp( |
| destination, index, GetAppLaunchOrdinalForApp(source, index)); |
| } |
| |
| void FixNTPOrdinalCollisions(Profile* profile) { |
| SyncAppHelper::GetInstance()->FixNTPOrdinalCollisions(profile); |
| } |
| |
| } // namespace apps_helper |