summaryrefslogtreecommitdiff
path: root/chromium/chrome/common/extensions/extension_test_util.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-02-13 10:55:42 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-05 13:33:38 +0000
commit248b70b82a40964d5594eb04feca0fa36716185d (patch)
tree44e31d9dd0ac2cb79f48633eefbc5496e013c347 /chromium/chrome/common/extensions/extension_test_util.cc
parentcabfcdd1db482729ded525feae56911a99792773 (diff)
downloadqtwebengine-chromium-248b70b82a40964d5594eb04feca0fa36716185d.tar.gz
BASELINE: Update Chromium to 79.0.3945.147
And new simplified snapshot filter Change-Id: I7c692bedd5b3833f05565bd6f6939115350b233a Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/chrome/common/extensions/extension_test_util.cc')
-rw-r--r--chromium/chrome/common/extensions/extension_test_util.cc115
1 files changed, 115 insertions, 0 deletions
diff --git a/chromium/chrome/common/extensions/extension_test_util.cc b/chromium/chrome/common/extensions/extension_test_util.cc
new file mode 100644
index 00000000000..ee6ef94256b
--- /dev/null
+++ b/chromium/chrome/common/extensions/extension_test_util.cc
@@ -0,0 +1,115 @@
+// 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/common/extensions/extension_test_util.h"
+
+#include <memory>
+
+#include "base/command_line.h"
+#include "base/files/file_path.h"
+#include "base/json/json_file_value_serializer.h"
+#include "base/path_service.h"
+#include "base/values.h"
+#include "chrome/common/chrome_paths.h"
+#include "chrome/common/chrome_switches.h"
+#include "components/version_info/channel.h"
+#include "extensions/common/extension.h"
+#include "extensions/common/extensions_client.h"
+#include "extensions/common/features/feature_channel.h"
+#include "extensions/common/manifest_constants.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+using extensions::Extension;
+using extensions::Manifest;
+
+namespace extension_test_util {
+
+scoped_refptr<Extension> LoadManifestUnchecked(const std::string& dir,
+ const std::string& test_file,
+ Manifest::Location location,
+ int extra_flags,
+ const std::string& id,
+ std::string* error) {
+ base::FilePath path;
+ base::PathService::Get(chrome::DIR_TEST_DATA, &path);
+ path = path.AppendASCII("extensions")
+ .AppendASCII(dir)
+ .AppendASCII(test_file);
+
+ JSONFileValueDeserializer deserializer(path);
+ std::unique_ptr<base::Value> result = deserializer.Deserialize(NULL, error);
+ if (!result)
+ return NULL;
+ const base::DictionaryValue* dict;
+ CHECK(result->GetAsDictionary(&dict));
+
+ scoped_refptr<Extension> extension = Extension::Create(
+ path.DirName(), location, *dict, extra_flags, id, error);
+ return extension;
+}
+
+scoped_refptr<Extension> LoadManifestUnchecked(const std::string& dir,
+ const std::string& test_file,
+ Manifest::Location location,
+ int extra_flags,
+ std::string* error) {
+ return LoadManifestUnchecked(
+ dir, test_file, location, extra_flags, std::string(), error);
+}
+
+scoped_refptr<Extension> LoadManifest(const std::string& dir,
+ const std::string& test_file,
+ Manifest::Location location,
+ int extra_flags) {
+ std::string error;
+ scoped_refptr<Extension> extension =
+ LoadManifestUnchecked(dir, test_file, location, extra_flags, &error);
+
+ EXPECT_TRUE(extension.get()) << test_file << ":" << error;
+ return extension;
+}
+
+scoped_refptr<Extension> LoadManifest(const std::string& dir,
+ const std::string& test_file,
+ int extra_flags) {
+ return LoadManifest(dir, test_file, Manifest::INVALID_LOCATION, extra_flags);
+}
+
+scoped_refptr<Extension> LoadManifestStrict(const std::string& dir,
+ const std::string& test_file) {
+ return LoadManifest(dir, test_file, Extension::NO_FLAGS);
+}
+
+scoped_refptr<Extension> LoadManifest(const std::string& dir,
+ const std::string& test_file) {
+ return LoadManifest(dir, test_file, Extension::NO_FLAGS);
+}
+
+void SetGalleryUpdateURL(const GURL& new_url) {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ command_line->AppendSwitchASCII(switches::kAppsGalleryUpdateURL,
+ new_url.spec());
+ extensions::ExtensionsClient::Get()->InitializeWebStoreUrls(command_line);
+}
+
+std::unique_ptr<extensions::ScopedCurrentChannel>
+GetOverrideChannelForActionType(extensions::ActionInfo::Type action_type) {
+ std::unique_ptr<extensions::ScopedCurrentChannel> channel;
+ // The "action" key is currently restricted to trunk. Use a fake channel iff
+ // we're testing that key, so that we still get multi-channel coverage for
+ // browser and page actions.
+ switch (action_type) {
+ case extensions::ActionInfo::TYPE_ACTION:
+ channel = std::make_unique<extensions::ScopedCurrentChannel>(
+ version_info::Channel::UNKNOWN);
+ break;
+ case extensions::ActionInfo::TYPE_PAGE:
+ case extensions::ActionInfo::TYPE_BROWSER:
+ break;
+ }
+ return channel;
+}
+
+} // namespace extension_test_util