Commit fdf52725 authored by Eric Willigers's avatar Eric Willigers Committed by Commit Bot

Extensions: kWebAppFileHandlers key now available on stable

We make the kWebAppFileHandlers key available on stable rather than
trunk.

The ExtensionFromWebApp unit tests now use a test fixture that sets up
a testing environment (by inheriting from ExtensionServiceTestBase).

This is a speculative fix for a bug (crbug.com/1062239) that seems to
have been introduced by a change to ConvertWebAppToExtension
(crrev.com/c/2087327).

The test WebAppFileHandlersAreCorrectlyConverted is re-enabled.

This CL replaces
https://chromium-review.googlesource.com/c/chromium/src/+/2108208

Bug: 1062239
Change-Id: I107a0731ab5b17faa51660384c10cab400e3cb7c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2120676
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: default avatarAlexey Baskakov <loyso@chromium.org>
Reviewed-by: default avatarIstiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#753544}
parent 52e587b1
...@@ -14,11 +14,14 @@ ...@@ -14,11 +14,14 @@
#include "base/files/file_util.h" #include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h" #include "base/files/scoped_temp_dir.h"
#include "base/path_service.h" #include "base/path_service.h"
#include "base/run_loop.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "base/version.h" #include "base/version.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_service_test_base.h"
#include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_paths.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h" #include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "chrome/common/extensions/manifest_handlers/linked_app_icons.h" #include "chrome/common/extensions/manifest_handlers/linked_app_icons.h"
...@@ -93,10 +96,30 @@ base::Time GetTestTime(int year, int month, int day, int hour, int minute, ...@@ -93,10 +96,30 @@ base::Time GetTestTime(int year, int month, int day, int hour, int minute,
} // namespace } // namespace
TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp) { class ExtensionFromWebApp : public extensions::ExtensionServiceTestBase {
base::ScopedTempDir extensions_dir; public:
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir()); void SetUp() override {
extensions::ExtensionServiceTestBase::SetUp();
ASSERT_TRUE(extensions_dir_.CreateUniqueTempDir());
}
void StartExtensionService() {
InitializeEmptyExtensionService();
service()->Init();
base::RunLoop().RunUntilIdle();
ASSERT_TRUE(service()->is_ready());
}
const base::FilePath& ExtensionPath() const {
return extensions_dir_.GetPath();
}
private:
base::ScopedTempDir extensions_dir_;
};
TEST_F(ExtensionFromWebApp, GetScopeURLFromBookmarkApp) {
StartExtensionService();
base::DictionaryValue manifest; base::DictionaryValue manifest;
manifest.SetString(keys::kName, "Test App"); manifest.SetString(keys::kName, "Test App");
manifest.SetString(keys::kVersion, "0"); manifest.SetString(keys::kVersion, "0");
...@@ -117,17 +140,15 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp) { ...@@ -117,17 +140,15 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp) {
std::string error; std::string error;
scoped_refptr<Extension> bookmark_app = scoped_refptr<Extension> bookmark_app =
Extension::Create(extensions_dir.GetPath(), Manifest::INTERNAL, manifest, Extension::Create(ExtensionPath(), Manifest::INTERNAL, manifest,
Extension::FROM_BOOKMARK, &error); Extension::FROM_BOOKMARK, &error);
ASSERT_TRUE(bookmark_app.get()); ASSERT_TRUE(bookmark_app.get());
EXPECT_EQ(scope_url, GetScopeURLFromBookmarkApp(bookmark_app.get())); EXPECT_EQ(scope_url, GetScopeURLFromBookmarkApp(bookmark_app.get()));
} }
TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_NoURLHandlers) { TEST_F(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_NoURLHandlers) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
base::DictionaryValue manifest; base::DictionaryValue manifest;
manifest.SetString(keys::kName, "Test App"); manifest.SetString(keys::kName, "Test App");
manifest.SetString(keys::kVersion, "0"); manifest.SetString(keys::kVersion, "0");
...@@ -137,17 +158,15 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_NoURLHandlers) { ...@@ -137,17 +158,15 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_NoURLHandlers) {
std::string error; std::string error;
scoped_refptr<Extension> bookmark_app = scoped_refptr<Extension> bookmark_app =
Extension::Create(extensions_dir.GetPath(), Manifest::INTERNAL, manifest, Extension::Create(ExtensionPath(), Manifest::INTERNAL, manifest,
Extension::FROM_BOOKMARK, &error); Extension::FROM_BOOKMARK, &error);
ASSERT_TRUE(bookmark_app.get()); ASSERT_TRUE(bookmark_app.get());
EXPECT_EQ(GURL(), GetScopeURLFromBookmarkApp(bookmark_app.get())); EXPECT_EQ(GURL(), GetScopeURLFromBookmarkApp(bookmark_app.get()));
} }
TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_WrongURLHandler) { TEST_F(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_WrongURLHandler) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
base::DictionaryValue manifest; base::DictionaryValue manifest;
manifest.SetString(keys::kName, "Test App"); manifest.SetString(keys::kName, "Test App");
manifest.SetString(keys::kVersion, "0"); manifest.SetString(keys::kVersion, "0");
...@@ -174,17 +193,15 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_WrongURLHandler) { ...@@ -174,17 +193,15 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_WrongURLHandler) {
std::string error; std::string error;
scoped_refptr<Extension> bookmark_app = scoped_refptr<Extension> bookmark_app =
Extension::Create(extensions_dir.GetPath(), Manifest::INTERNAL, manifest, Extension::Create(ExtensionPath(), Manifest::INTERNAL, manifest,
Extension::FROM_BOOKMARK, &error); Extension::FROM_BOOKMARK, &error);
ASSERT_TRUE(bookmark_app.get()); ASSERT_TRUE(bookmark_app.get());
EXPECT_EQ(GURL(), GetScopeURLFromBookmarkApp(bookmark_app.get())); EXPECT_EQ(GURL(), GetScopeURLFromBookmarkApp(bookmark_app.get()));
} }
TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_ExtraURLHandler) { TEST_F(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_ExtraURLHandler) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
base::DictionaryValue manifest; base::DictionaryValue manifest;
manifest.SetString(keys::kName, "Test App"); manifest.SetString(keys::kName, "Test App");
manifest.SetString(keys::kVersion, "0"); manifest.SetString(keys::kVersion, "0");
...@@ -219,7 +236,7 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_ExtraURLHandler) { ...@@ -219,7 +236,7 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_ExtraURLHandler) {
std::string error; std::string error;
scoped_refptr<Extension> bookmark_app = scoped_refptr<Extension> bookmark_app =
Extension::Create(extensions_dir.GetPath(), Manifest::INTERNAL, manifest, Extension::Create(ExtensionPath(), Manifest::INTERNAL, manifest,
Extension::FROM_BOOKMARK, &error); Extension::FROM_BOOKMARK, &error);
ASSERT_TRUE(bookmark_app.get()); ASSERT_TRUE(bookmark_app.get());
...@@ -228,7 +245,8 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_ExtraURLHandler) { ...@@ -228,7 +245,8 @@ TEST(ExtensionFromWebApp, GetScopeURLFromBookmarkApp_ExtraURLHandler) {
EXPECT_EQ(scope_url, GetScopeURLFromBookmarkApp(bookmark_app.get())); EXPECT_EQ(scope_url, GetScopeURLFromBookmarkApp(bookmark_app.get()));
} }
TEST(ExtensionFromWebApp, GenerateVersion) { TEST_F(ExtensionFromWebApp, GenerateVersion) {
StartExtensionService();
EXPECT_EQ("2010.1.1.0", EXPECT_EQ("2010.1.1.0",
ConvertTimeToExtensionVersion( ConvertTimeToExtensionVersion(
GetTestTime(2010, 1, 1, 0, 0, 0, 0))); GetTestTime(2010, 1, 1, 0, 0, 0, 0)));
...@@ -240,10 +258,8 @@ TEST(ExtensionFromWebApp, GenerateVersion) { ...@@ -240,10 +258,8 @@ TEST(ExtensionFromWebApp, GenerateVersion) {
GetTestTime(2010, 10, 1, 23, 59, 59, 999))); GetTestTime(2010, 10, 1, 23, 59, 59, 999)));
} }
TEST(ExtensionFromWebApp, Basic) { TEST_F(ExtensionFromWebApp, Basic) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
WebApplicationInfo web_app; WebApplicationInfo web_app;
web_app.title = base::ASCIIToUTF16("Gearpad"); web_app.title = base::ASCIIToUTF16("Gearpad");
web_app.description = web_app.description =
...@@ -262,7 +278,7 @@ TEST(ExtensionFromWebApp, Basic) { ...@@ -262,7 +278,7 @@ TEST(ExtensionFromWebApp, Basic) {
} }
scoped_refptr<Extension> extension = ConvertWebAppToExtension( scoped_refptr<Extension> extension = ConvertWebAppToExtension(
web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), extensions_dir.GetPath(), web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), ExtensionPath(),
Extension::NO_FLAGS, Manifest::INTERNAL); Extension::NO_FLAGS, Manifest::INTERNAL);
ASSERT_TRUE(extension.get()); ASSERT_TRUE(extension.get());
...@@ -314,16 +330,14 @@ TEST(ExtensionFromWebApp, Basic) { ...@@ -314,16 +330,14 @@ TEST(ExtensionFromWebApp, Basic) {
} }
} }
TEST(ExtensionFromWebApp, Minimal) { TEST_F(ExtensionFromWebApp, Minimal) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
WebApplicationInfo web_app; WebApplicationInfo web_app;
web_app.title = base::ASCIIToUTF16("Gearpad"); web_app.title = base::ASCIIToUTF16("Gearpad");
web_app.app_url = GURL("http://aaronboodman.com/gearpad/"); web_app.app_url = GURL("http://aaronboodman.com/gearpad/");
scoped_refptr<Extension> extension = ConvertWebAppToExtension( scoped_refptr<Extension> extension = ConvertWebAppToExtension(
web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), extensions_dir.GetPath(), web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), ExtensionPath(),
Extension::NO_FLAGS, Manifest::INTERNAL); Extension::NO_FLAGS, Manifest::INTERNAL);
ASSERT_TRUE(extension.get()); ASSERT_TRUE(extension.get());
...@@ -354,16 +368,14 @@ TEST(ExtensionFromWebApp, Minimal) { ...@@ -354,16 +368,14 @@ TEST(ExtensionFromWebApp, Minimal) {
ASSERT_EQ(0u, extension->web_extent().patterns().size()); ASSERT_EQ(0u, extension->web_extent().patterns().size());
} }
TEST(ExtensionFromWebApp, ExtraInstallationFlags) { TEST_F(ExtensionFromWebApp, ExtraInstallationFlags) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
WebApplicationInfo web_app; WebApplicationInfo web_app;
web_app.title = base::ASCIIToUTF16("Gearpad"); web_app.title = base::ASCIIToUTF16("Gearpad");
web_app.app_url = GURL("http://aaronboodman.com/gearpad/"); web_app.app_url = GURL("http://aaronboodman.com/gearpad/");
scoped_refptr<Extension> extension = ConvertWebAppToExtension( scoped_refptr<Extension> extension = ConvertWebAppToExtension(
web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), extensions_dir.GetPath(), web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), ExtensionPath(),
Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_OEM, Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_OEM,
Manifest::INTERNAL); Manifest::INTERNAL);
ASSERT_TRUE(extension.get()); ASSERT_TRUE(extension.get());
...@@ -379,16 +391,14 @@ TEST(ExtensionFromWebApp, ExtraInstallationFlags) { ...@@ -379,16 +391,14 @@ TEST(ExtensionFromWebApp, ExtraInstallationFlags) {
EXPECT_EQ(Manifest::INTERNAL, extension->location()); EXPECT_EQ(Manifest::INTERNAL, extension->location());
} }
TEST(ExtensionFromWebApp, ExternalPolicyLocation) { TEST_F(ExtensionFromWebApp, ExternalPolicyLocation) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
WebApplicationInfo web_app; WebApplicationInfo web_app;
web_app.title = base::ASCIIToUTF16("Gearpad"); web_app.title = base::ASCIIToUTF16("Gearpad");
web_app.app_url = GURL("http://aaronboodman.com/gearpad/"); web_app.app_url = GURL("http://aaronboodman.com/gearpad/");
scoped_refptr<Extension> extension = ConvertWebAppToExtension( scoped_refptr<Extension> extension = ConvertWebAppToExtension(
web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), extensions_dir.GetPath(), web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), ExtensionPath(),
Extension::NO_FLAGS, Manifest::EXTERNAL_POLICY); Extension::NO_FLAGS, Manifest::EXTERNAL_POLICY);
ASSERT_TRUE(extension.get()); ASSERT_TRUE(extension.get());
...@@ -403,10 +413,8 @@ TEST(ExtensionFromWebApp, ExternalPolicyLocation) { ...@@ -403,10 +413,8 @@ TEST(ExtensionFromWebApp, ExternalPolicyLocation) {
// Tests that a scope not ending in "/" works correctly. // Tests that a scope not ending in "/" works correctly.
// The tested behavior is unexpected but is working correctly according // The tested behavior is unexpected but is working correctly according
// to the Web Manifest spec. https://github.com/w3c/manifest/issues/554 // to the Web Manifest spec. https://github.com/w3c/manifest/issues/554
TEST(ExtensionFromWebApp, ScopeDoesNotEndInSlash) { TEST_F(ExtensionFromWebApp, ScopeDoesNotEndInSlash) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
WebApplicationInfo web_app; WebApplicationInfo web_app;
web_app.title = base::ASCIIToUTF16("Gearpad"); web_app.title = base::ASCIIToUTF16("Gearpad");
web_app.description = web_app.description =
...@@ -415,7 +423,7 @@ TEST(ExtensionFromWebApp, ScopeDoesNotEndInSlash) { ...@@ -415,7 +423,7 @@ TEST(ExtensionFromWebApp, ScopeDoesNotEndInSlash) {
web_app.scope = GURL("http://aaronboodman.com/gear"); web_app.scope = GURL("http://aaronboodman.com/gear");
scoped_refptr<Extension> extension = ConvertWebAppToExtension( scoped_refptr<Extension> extension = ConvertWebAppToExtension(
web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), extensions_dir.GetPath(), web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), ExtensionPath(),
Extension::NO_FLAGS, Manifest::INTERNAL); Extension::NO_FLAGS, Manifest::INTERNAL);
ASSERT_TRUE(extension.get()); ASSERT_TRUE(extension.get());
EXPECT_EQ(web_app.scope, GetScopeURLFromBookmarkApp(extension.get())); EXPECT_EQ(web_app.scope, GetScopeURLFromBookmarkApp(extension.get()));
...@@ -423,10 +431,8 @@ TEST(ExtensionFromWebApp, ScopeDoesNotEndInSlash) { ...@@ -423,10 +431,8 @@ TEST(ExtensionFromWebApp, ScopeDoesNotEndInSlash) {
// Tests that |file_handler| on the WebAppManifest is correctly converted // Tests that |file_handler| on the WebAppManifest is correctly converted
// to |file_handlers| on an extension manifest. // to |file_handlers| on an extension manifest.
TEST(ExtensionFromWebApp, FileHandlersAreCorrectlyConverted) { TEST_F(ExtensionFromWebApp, FileHandlersAreCorrectlyConverted) {
base::ScopedTempDir extensions_dir; StartExtensionService();
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
WebApplicationInfo web_app; WebApplicationInfo web_app;
web_app.title = base::ASCIIToUTF16("Graphr"); web_app.title = base::ASCIIToUTF16("Graphr");
web_app.description = base::ASCIIToUTF16("A magical graphy thing"); web_app.description = base::ASCIIToUTF16("A magical graphy thing");
...@@ -452,46 +458,43 @@ TEST(ExtensionFromWebApp, FileHandlersAreCorrectlyConverted) { ...@@ -452,46 +458,43 @@ TEST(ExtensionFromWebApp, FileHandlersAreCorrectlyConverted) {
} }
scoped_refptr<Extension> extension = ConvertWebAppToExtension( scoped_refptr<Extension> extension = ConvertWebAppToExtension(
web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), extensions_dir.GetPath(), web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), ExtensionPath(),
Extension::NO_FLAGS, Manifest::INTERNAL); Extension::NO_FLAGS, Manifest::INTERNAL);
ASSERT_TRUE(extension.get()); ASSERT_TRUE(extension.get());
const std::vector<apps::FileHandlerInfo> file_handler_info = const std::vector<apps::FileHandlerInfo>* file_handler_infos =
*extensions::FileHandlers::GetFileHandlers(extension.get()); extensions::FileHandlers::GetFileHandlers(extension.get());
EXPECT_EQ(2u, file_handler_info.size()); ASSERT_TRUE(file_handler_infos);
EXPECT_EQ(2u, file_handler_infos->size());
EXPECT_EQ("https://graphr.n/open-graph/", file_handler_info[0].id); {
EXPECT_FALSE(file_handler_info[0].include_directories); const apps::FileHandlerInfo& info = file_handler_infos->at(0);
EXPECT_EQ(apps::file_handler_verbs::kOpenWith, file_handler_info[0].verb); EXPECT_EQ("https://graphr.n/open-graph/", info.id);
EXPECT_FALSE(info.include_directories);
EXPECT_EQ(apps::file_handler_verbs::kOpenWith, info.verb);
// Extensions should contain SVG, and only SVG // Extensions should contain SVG, and only SVG
EXPECT_THAT(file_handler_info[0].extensions, EXPECT_THAT(info.extensions, testing::UnorderedElementsAre("svg"));
testing::UnorderedElementsAre("svg"));
// Mime types should contain text/svg+xml and only text/svg+xml // Mime types should contain text/svg+xml and only text/svg+xml
EXPECT_THAT(file_handler_info[0].types, EXPECT_THAT(info.types, testing::UnorderedElementsAre("text/svg+xml"));
testing::UnorderedElementsAre("text/svg+xml")); }
{
EXPECT_EQ("https://graphr.n/open-raw/", file_handler_info[1].id); const apps::FileHandlerInfo& info = file_handler_infos->at(1);
EXPECT_FALSE(file_handler_info[1].include_directories); EXPECT_EQ("https://graphr.n/open-raw/", info.id);
EXPECT_EQ(apps::file_handler_verbs::kOpenWith, file_handler_info[1].verb); EXPECT_FALSE(info.include_directories);
EXPECT_EQ(apps::file_handler_verbs::kOpenWith, info.verb);
// Extensions should contain csv, and only csv // Extensions should contain csv, and only csv
EXPECT_THAT(file_handler_info[1].extensions, EXPECT_THAT(info.extensions, testing::UnorderedElementsAre("csv"));
testing::UnorderedElementsAre("csv"));
// Mime types should contain text/csv and only text/csv // Mime types should contain text/csv and only text/csv
EXPECT_THAT(file_handler_info[1].types, EXPECT_THAT(info.types, testing::UnorderedElementsAre("text/csv"));
testing::UnorderedElementsAre("text/csv")); }
} }
// Tests that |file_handler| on the WebAppManifest is correctly converted // Tests that |file_handler| on the WebAppManifest is correctly converted
// to |web_app_file_handlers| on an extension manifest. // to |web_app_file_handlers| on an extension manifest.
// TEST_F(ExtensionFromWebApp, WebAppFileHandlersAreCorrectlyConverted) {
// TODO(crbug.com/1062239): This test is failing on Windows trunk builds. It can StartExtensionService();
// be temporarily disabled, since the feature hasn't shipped yet.
TEST(ExtensionFromWebApp, DISABLED_WebAppFileHandlersAreCorrectlyConverted) {
base::ScopedTempDir extensions_dir;
ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
WebApplicationInfo web_app; WebApplicationInfo web_app;
web_app.title = base::ASCIIToUTF16("Graphr"); web_app.title = base::ASCIIToUTF16("Graphr");
web_app.description = base::ASCIIToUTF16("A magical graphy thing."); web_app.description = base::ASCIIToUTF16("A magical graphy thing.");
...@@ -518,27 +521,33 @@ TEST(ExtensionFromWebApp, DISABLED_WebAppFileHandlersAreCorrectlyConverted) { ...@@ -518,27 +521,33 @@ TEST(ExtensionFromWebApp, DISABLED_WebAppFileHandlersAreCorrectlyConverted) {
} }
scoped_refptr<Extension> extension = ConvertWebAppToExtension( scoped_refptr<Extension> extension = ConvertWebAppToExtension(
web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), extensions_dir.GetPath(), web_app, GetTestTime(1978, 12, 11, 0, 0, 0, 0), ExtensionPath(),
Extension::NO_FLAGS, Manifest::INTERNAL); Extension::NO_FLAGS, Manifest::INTERNAL);
ASSERT_TRUE(extension.get()); ASSERT_TRUE(extension.get());
const apps::FileHandlers file_handlers = const apps::FileHandlers* file_handlers =
*extensions::WebAppFileHandlers::GetWebAppFileHandlers(extension.get()); extensions::WebAppFileHandlers::GetWebAppFileHandlers(extension.get());
EXPECT_EQ(2u, file_handlers.size()); ASSERT_TRUE(file_handlers);
EXPECT_EQ(2u, file_handlers->size());
EXPECT_EQ("https://graphr.n/open-graph/", file_handlers[0].action); {
EXPECT_EQ(1u, file_handlers[0].accept.size()); const apps::FileHandler& file_handler = file_handlers->at(0);
EXPECT_EQ("text/svg+xml", file_handlers[0].accept[0].mime_type); EXPECT_EQ("https://graphr.n/open-graph/", file_handler.action);
EXPECT_THAT(file_handlers[0].accept[0].file_extensions, EXPECT_EQ(1u, file_handler.accept.size());
EXPECT_EQ("text/svg+xml", file_handler.accept[0].mime_type);
EXPECT_THAT(file_handler.accept[0].file_extensions,
testing::UnorderedElementsAre(".svg")); testing::UnorderedElementsAre(".svg"));
}
EXPECT_EQ("https://graphr.n/open-raw/", file_handlers[1].action); {
EXPECT_EQ(1u, file_handlers[1].accept.size()); const apps::FileHandler& file_handler = file_handlers->at(1);
EXPECT_EQ("text/csv", file_handlers[1].accept[0].mime_type); EXPECT_EQ("https://graphr.n/open-raw/", file_handler.action);
EXPECT_THAT(file_handlers[1].accept[0].file_extensions, EXPECT_EQ(1u, file_handler.accept.size());
EXPECT_EQ("text/csv", file_handler.accept[0].mime_type);
EXPECT_THAT(file_handler.accept[0].file_extensions,
testing::UnorderedElementsAre(".csv")); testing::UnorderedElementsAre(".csv"));
}
} }
} // namespace extensions } // namespace extensions
...@@ -359,7 +359,7 @@ ...@@ -359,7 +359,7 @@
} }
], ],
"web_app_file_handlers": { "web_app_file_handlers": {
"channel": "trunk", "channel": "stable",
"extension_types": ["hosted_app"] "extension_types": ["hosted_app"]
}, },
"webview": { "webview": {
......
...@@ -5,9 +5,7 @@ ...@@ -5,9 +5,7 @@
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
#include "base/test/values_test_util.h" #include "base/test/values_test_util.h"
#include "components/services/app_service/public/cpp/file_handler.h" #include "components/services/app_service/public/cpp/file_handler.h"
#include "components/version_info/version_info.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
#include "extensions/common/features/feature_channel.h"
#include "extensions/common/manifest.h" #include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/web_app_file_handler.h" #include "extensions/common/manifest_handlers/web_app_file_handler.h"
...@@ -23,12 +21,6 @@ namespace errors = manifest_errors; ...@@ -23,12 +21,6 @@ namespace errors = manifest_errors;
namespace { namespace {
class WebAppFileHandlersManifestTest : public ManifestTest { class WebAppFileHandlersManifestTest : public ManifestTest {
public:
// version_info::Channel::UNKNOWN needs to be specified here as long as the
// "web_app_file_handlers" manifest key is only enabled on trunk in
// extensions/common/api/_manifest_features.json.
WebAppFileHandlersManifestTest() : channel_(version_info::Channel::UNKNOWN) {}
protected: protected:
ManifestData CreateManifest(const char* web_app_file_handlers) { ManifestData CreateManifest(const char* web_app_file_handlers) {
const char kManifestTemplate[] = const char kManifestTemplate[] =
...@@ -47,9 +39,6 @@ class WebAppFileHandlersManifestTest : public ManifestTest { ...@@ -47,9 +39,6 @@ class WebAppFileHandlersManifestTest : public ManifestTest {
base::StringPrintf(kManifestTemplate, web_app_file_handlers)); base::StringPrintf(kManifestTemplate, web_app_file_handlers));
return ManifestData(std::move(manifest), "test"); return ManifestData(std::move(manifest), "test");
} }
private:
ScopedCurrentChannel channel_;
}; };
} // namespace } // namespace
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment