Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Unified Diff: extensions/test/test_extensions_client.cc

Issue 399363002: Add support for writing unit tests for Mojo-backed apps/extensions APIs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/test/extensions_unittests_main.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/test/test_extensions_client.cc
diff --git a/extensions/test/test_extensions_client.cc b/extensions/test/test_extensions_client.cc
index 8cee49a19c25046dd71f08138847451721b42cb9..47a6a4750877e313a039f162245dd87955d72437 100644
--- a/extensions/test/test_extensions_client.cc
+++ b/extensions/test/test_extensions_client.cc
@@ -4,15 +4,30 @@
#include "extensions/test/test_extensions_client.h"
+#include "extensions/common/api/generated_schemas.h"
#include "extensions/common/common_manifest_handlers.h"
+#include "extensions/common/features/api_feature.h"
+#include "extensions/common/features/base_feature_provider.h"
#include "extensions/common/features/feature_provider.h"
#include "extensions/common/features/json_feature_provider_source.h"
+#include "extensions/common/features/manifest_feature.h"
+#include "extensions/common/features/permission_feature.h"
#include "extensions/common/manifest_handler.h"
#include "extensions/common/url_pattern_set.h"
#include "extensions/test/test_permission_message_provider.h"
+#include "grit/extensions_resources.h"
namespace extensions {
+namespace {
+
+template <class FeatureClass>
+SimpleFeature* CreateFeature() {
+ return new FeatureClass;
+}
+
+} // namespace
+
TestExtensionsClient::TestExtensionsClient() {
}
@@ -34,17 +49,42 @@ TestExtensionsClient::GetPermissionMessageProvider() const {
return provider;
}
-// TODO(yoz): Implement something reasonable here.
scoped_ptr<FeatureProvider> TestExtensionsClient::CreateFeatureProvider(
const std::string& name) const {
- return scoped_ptr<FeatureProvider>();
+ scoped_ptr<FeatureProvider> provider;
+ scoped_ptr<JSONFeatureProviderSource> source(
+ CreateFeatureProviderSource(name));
+ if (name == "api") {
+ provider.reset(new BaseFeatureProvider(source->dictionary(),
+ CreateFeature<APIFeature>));
+ } else if (name == "manifest") {
+ provider.reset(new BaseFeatureProvider(source->dictionary(),
+ CreateFeature<ManifestFeature>));
+ } else if (name == "permission") {
+ provider.reset(new BaseFeatureProvider(source->dictionary(),
+ CreateFeature<PermissionFeature>));
+ } else {
+ NOTREACHED();
+ }
+ return provider.Pass();
}
-// TODO(yoz): Implement something reasonable here.
scoped_ptr<JSONFeatureProviderSource>
TestExtensionsClient::CreateFeatureProviderSource(
const std::string& name) const {
- return scoped_ptr<JSONFeatureProviderSource>();
+ scoped_ptr<JSONFeatureProviderSource> source(
+ new JSONFeatureProviderSource(name));
+ if (name == "api") {
+ source->LoadJSON(IDR_EXTENSION_API_FEATURES);
+ } else if (name == "manifest") {
+ source->LoadJSON(IDR_EXTENSION_MANIFEST_FEATURES);
+ } else if (name == "permission") {
+ source->LoadJSON(IDR_EXTENSION_PERMISSION_FEATURES);
+ } else {
+ NOTREACHED();
+ source.reset();
+ }
+ return source.Pass();
}
void TestExtensionsClient::FilterHostPermissions(
@@ -77,12 +117,12 @@ bool TestExtensionsClient::IsScriptableURL(const GURL& url,
bool TestExtensionsClient::IsAPISchemaGenerated(
const std::string& name) const {
- return false;
+ return core_api::GeneratedSchemas::IsGenerated(name);
}
base::StringPiece TestExtensionsClient::GetAPISchema(
const std::string& name) const {
- return base::StringPiece();
+ return core_api::GeneratedSchemas::Get(name);
}
void TestExtensionsClient::RegisterAPISchemaResources(ExtensionAPI* api) const {
« no previous file with comments | « extensions/test/extensions_unittests_main.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698