#include "chrome/browser/ui/web_applications/sub_apps_service_impl.h"
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "base/test/bind.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/simple_test_clock.h"
#include "base/test/test_future.h"
#include "chrome/browser/notifications/notification_display_service_tester.h"
#include "chrome/browser/permissions/permission_decision_auto_blocker_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/web_applications/sub_apps_install_dialog_controller.h"
#include "chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h"
#include "chrome/browser/ui/web_applications/web_app_browsertest_base.h"
#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_info.h"
#include "chrome/browser/web_applications/proto/web_app_install_state.pb.h"
#include "chrome/browser/web_applications/test/web_app_install_test_utils.h"
#include "chrome/browser/web_applications/web_app.h"
#include "chrome/browser/web_applications/web_app_command_scheduler.h"
#include "chrome/browser/web_applications/web_app_constants.h"
#include "chrome/browser/web_applications/web_app_helpers.h"
#include "chrome/browser/web_applications/web_app_provider.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/browser/web_applications/web_app_registry_update.h"
#include "chrome/browser/web_applications/web_app_sync_bridge.h"
#include "chrome/browser/web_applications/web_app_ui_manager.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/permissions/permission_decision_auto_blocker.h"
#include "components/webapps/browser/uninstall_result_code.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_utils.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/features.h"
#include "url/gurl.h"
#include "url/origin.h"
SubAppsService;
SubAppsServiceAddParameters;
SubAppsServiceAddParametersPtr;
SubAppsServiceListResultEntry;
SubAppsServiceListResultEntryPtr;
SubAppsServiceListResultPtr;
SubAppsServiceRemoveResult;
SubAppsServiceRemoveResultPtr;
SubAppsServiceResultCode;
namespace web_app {
namespace {
constexpr const char kDomain[] = …;
constexpr const char kDifferentDomain[] = …;
constexpr const char kParentAppPath[] = …;
constexpr const char kSubAppPath[] = …;
constexpr const char kSubAppName[] = …;
constexpr const char kSubAppPathMinimalUi[] = …;
constexpr const char kSubAppPath2[] = …;
constexpr const char kSubAppName2[] = …;
constexpr const char kSubAppPath3[] = …;
constexpr const char kSubAppName3[] = …;
constexpr const char kSubAppPathInvalid[] = …;
constexpr const char kSubAppIdInvalid[] = …;
constexpr const char kSub1[] = …;
constexpr const char kSub2[] = …;
}
RemoveResultsMojo;
AddResults;
class SubAppsServiceImplBrowserTest : public IsolatedWebAppBrowserTestHarness { … };
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, EndToEndAdd) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
ApiUndefinedForNonIsolatedApp) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddSingle) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddStandaloneWindow) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
AddSameAppAsSubAndStandalone) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
AddFailParentAppNotInstalled) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
AddFailNotInParentAppContext) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddFailIncorrectId) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddFailForParentApp) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddFailNonExistent) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddFailWrongOrigin) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddDoesntForceReinstall) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddFailAppIsSubApp) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddTwo) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddMultiple) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
AddMultipleWithInvalidSubApps) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, AddZero) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
DialogNotAcceptedReturnsAllSubApps) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
DialogEmbargoedIfDeclinedThreeTimes) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, DialogEmbargoTiming) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
UninstallingParentAppUninstallsSubApps) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
UninstallingParentAppSourceDoesntUninstallSubApps) { … }
IN_PROC_BROWSER_TEST_F(
SubAppsServiceImplBrowserTest,
UninstallingParentAppUninstallsOnlySubAppIfMultipleSources) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, ListSuccess) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
ListDoesntReturnNonSubApp) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
ListFailParentAppNotInstalled) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
ListReturnsOnlyAppsInstalledByTheCurrentParent) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, RemoveOneApp) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, RemoveListOfApps) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, RemoveEmptyList) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, RemoveFailRegularApp) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, RemoveFailWrongParent) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest,
RemoveFailCallingAppNotInstalled) { … }
IN_PROC_BROWSER_TEST_F(SubAppsServiceImplBrowserTest, RemoveFailWrongOrigin) { … }
}