|  | // Copyright 2024 The Chromium Authors | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "chrome/browser/webapps/installable/installable_utils.h" | 
|  |  | 
|  | #include "chrome/browser/web_applications/test/web_app_install_test_utils.h" | 
|  | #include "chrome/browser/web_applications/test/web_app_test.h" | 
|  | #include "testing/gmock/include/gmock/gmock.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | namespace { | 
|  | // This only tests the desktop implementation. | 
|  | // TODO(crbug.com/354971473): Add unit tests for the android implementation. | 
|  | class InstallableUtilsTest : public WebAppTest { | 
|  | public: | 
|  | void SetUp() override { | 
|  | WebAppTest::SetUp(); | 
|  | web_app::test::AwaitStartWebAppProviderAndSubsystems(profile()); | 
|  | } | 
|  | }; | 
|  |  | 
|  | TEST_F(InstallableUtilsTest, DoesOriginContainAnyInstalledWebApp) { | 
|  | web_app::test::InstallDummyWebApp(profile(), "abc", | 
|  | GURL("https://www.example.com/app")); | 
|  |  | 
|  | EXPECT_TRUE(DoesOriginContainAnyInstalledWebApp( | 
|  | profile(), GURL("https://www.example.com"))); | 
|  | EXPECT_FALSE(DoesOriginContainAnyInstalledWebApp( | 
|  | profile(), GURL("https://www.example2.com"))); | 
|  | } | 
|  |  | 
|  | TEST_F(InstallableUtilsTest, GetOriginsWithInstalledWebApps) { | 
|  | web_app::test::InstallDummyWebApp(profile(), "abc", | 
|  | GURL("https://www.example.com/app")); | 
|  | web_app::test::InstallDummyWebApp(profile(), "abc", | 
|  | GURL("https://www.example2.com/app")); | 
|  | EXPECT_THAT(GetOriginsWithInstalledWebApps(profile()), | 
|  | testing::UnorderedElementsAre(GURL("https://www.example.com/"), | 
|  | GURL("https://www.example2.com"))); | 
|  | } | 
|  |  | 
|  | }  // namespace |