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

Side by Side Diff: chrome/common/extensions/api/extension_api_unittest.cc

Issue 109683007: Pass a Feature* to IsAnyFeatureAvailableToContext instead of a string name. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update extension_api_stub.cc Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/common/extensions/features/base_feature_provider.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/common/extension_api.h" 5 #include "extensions/common/extension_api.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 309
310 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { 310 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
311 ExtensionAPI api; 311 ExtensionAPI api;
312 api.RegisterDependencyProvider("api", &api_feature_provider); 312 api.RegisterDependencyProvider("api", &api_feature_provider);
313 for (base::DictionaryValue::Iterator iter(*value); !iter.IsAtEnd(); 313 for (base::DictionaryValue::Iterator iter(*value); !iter.IsAtEnd();
314 iter.Advance()) { 314 iter.Advance()) {
315 if (iter.key().find(".") == std::string::npos) 315 if (iter.key().find(".") == std::string::npos)
316 api.RegisterSchemaResource(iter.key(), 0); 316 api.RegisterSchemaResource(iter.key(), 0);
317 } 317 }
318 318
319 Feature* test_feature =
320 api_feature_provider.GetFeature(test_data[i].api_full_name);
321 ASSERT_TRUE(test_feature);
319 EXPECT_EQ(test_data[i].expect_is_available, 322 EXPECT_EQ(test_data[i].expect_is_available,
320 api.IsAnyFeatureAvailableToContext(test_data[i].api_full_name, 323 api.IsAnyFeatureAvailableToContext(*test_feature,
321 test_data[i].extension, 324 test_data[i].extension,
322 test_data[i].context, 325 test_data[i].context,
323 test_data[i].url)) << i; 326 test_data[i].url))
327 << i;
324 } 328 }
325 } 329 }
326 330
327 TEST(ExtensionAPITest, LazyGetSchema) { 331 TEST(ExtensionAPITest, LazyGetSchema) {
328 scoped_ptr<ExtensionAPI> apis(ExtensionAPI::CreateWithDefaultConfiguration()); 332 scoped_ptr<ExtensionAPI> apis(ExtensionAPI::CreateWithDefaultConfiguration());
329 333
330 EXPECT_EQ(NULL, apis->GetSchema(std::string())); 334 EXPECT_EQ(NULL, apis->GetSchema(std::string()));
331 EXPECT_EQ(NULL, apis->GetSchema(std::string())); 335 EXPECT_EQ(NULL, apis->GetSchema(std::string()));
332 EXPECT_EQ(NULL, apis->GetSchema("experimental")); 336 EXPECT_EQ(NULL, apis->GetSchema("experimental"));
333 EXPECT_EQ(NULL, apis->GetSchema("experimental")); 337 EXPECT_EQ(NULL, apis->GetSchema("experimental"));
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 { 387 {
384 std::set<std::string> permissions; 388 std::set<std::string> permissions;
385 permissions.insert("storage"); 389 permissions.insert("storage");
386 permissions.insert("history"); 390 permissions.insert("history");
387 extension = CreateExtensionWithPermissions(permissions); 391 extension = CreateExtensionWithPermissions(permissions);
388 } 392 }
389 393
390 scoped_ptr<ExtensionAPI> extension_api( 394 scoped_ptr<ExtensionAPI> extension_api(
391 ExtensionAPI::CreateWithDefaultConfiguration()); 395 ExtensionAPI::CreateWithDefaultConfiguration());
392 396
393 // "runtime" has privileged parts that should not be accessed by content 397 const FeatureProvider& api_features = *FeatureProvider::GetAPIFeatures();
394 // scripts.
395 EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext(
396 "runtime.getBackgroundPage",
397 NULL,
398 Feature::CONTENT_SCRIPT_CONTEXT,
399 GURL()));
400 EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext(
401 "runtime.sendNativeMessage",
402 NULL,
403 Feature::CONTENT_SCRIPT_CONTEXT,
404 GURL()));
405 // "runtime" also has unprivileged parts.
406 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
407 "runtime.sendMessage",
408 NULL,
409 Feature::CONTENT_SCRIPT_CONTEXT,
410 GURL()));
411 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
412 "runtime.id",
413 NULL,
414 Feature::CONTENT_SCRIPT_CONTEXT,
415 GURL()));
416 398
417 // "storage" is completely unprivileged. 399 // "storage" is completely unprivileged.
418 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( 400 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
419 "storage", 401 *api_features.GetFeature("storage"),
420 NULL, 402 NULL,
421 Feature::BLESSED_EXTENSION_CONTEXT, 403 Feature::BLESSED_EXTENSION_CONTEXT,
422 GURL())); 404 GURL()));
423 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( 405 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
424 "storage", 406 *api_features.GetFeature("storage"),
425 NULL, 407 NULL,
426 Feature::UNBLESSED_EXTENSION_CONTEXT, 408 Feature::UNBLESSED_EXTENSION_CONTEXT,
427 GURL())); 409 GURL()));
428 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( 410 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
429 "storage", 411 *api_features.GetFeature("storage"),
430 NULL, 412 NULL,
431 Feature::CONTENT_SCRIPT_CONTEXT, 413 Feature::CONTENT_SCRIPT_CONTEXT,
432 GURL())); 414 GURL()));
433 415
434 // "extension" is partially unprivileged. 416 // "extension" is partially unprivileged.
435 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( 417 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
436 "extension", 418 *api_features.GetFeature("extension"),
437 NULL, 419 NULL,
438 Feature::BLESSED_EXTENSION_CONTEXT, 420 Feature::BLESSED_EXTENSION_CONTEXT,
439 GURL())); 421 GURL()));
440 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( 422 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
441 "extension", 423 *api_features.GetFeature("extension"),
442 NULL, 424 NULL,
443 Feature::UNBLESSED_EXTENSION_CONTEXT, 425 Feature::UNBLESSED_EXTENSION_CONTEXT,
444 GURL())); 426 GURL()));
445 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( 427 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
446 "extension", 428 *api_features.GetFeature("extension"),
429 NULL,
430 Feature::CONTENT_SCRIPT_CONTEXT,
431 GURL()));
432 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
433 *api_features.GetFeature("extension.getURL"),
447 NULL, 434 NULL,
448 Feature::CONTENT_SCRIPT_CONTEXT, 435 Feature::CONTENT_SCRIPT_CONTEXT,
449 GURL())); 436 GURL()));
450 437
451 // "history" is entirely privileged. 438 // "history" is entirely privileged.
452 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext( 439 EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
453 "history", 440 *api_features.GetFeature("history"),
454 NULL, 441 NULL,
455 Feature::BLESSED_EXTENSION_CONTEXT, 442 Feature::BLESSED_EXTENSION_CONTEXT,
456 GURL())); 443 GURL()));
457 EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext( 444 EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext(
458 "history", 445 *api_features.GetFeature("history"),
459 NULL, 446 NULL,
460 Feature::UNBLESSED_EXTENSION_CONTEXT, 447 Feature::UNBLESSED_EXTENSION_CONTEXT,
461 GURL())); 448 GURL()));
462 EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext( 449 EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext(
463 "history", 450 *api_features.GetFeature("history"),
464 NULL, 451 NULL,
465 Feature::CONTENT_SCRIPT_CONTEXT, 452 Feature::CONTENT_SCRIPT_CONTEXT,
466 GURL())); 453 GURL()));
467 } 454 }
468 455
469 scoped_refptr<Extension> CreateHostedApp() { 456 scoped_refptr<Extension> CreateHostedApp() {
470 base::DictionaryValue values; 457 base::DictionaryValue values;
471 values.SetString(manifest_keys::kName, "test"); 458 values.SetString(manifest_keys::kName, "test");
472 values.SetString(manifest_keys::kVersion, "0.1"); 459 values.SetString(manifest_keys::kVersion, "0.1");
473 values.Set(manifest_keys::kWebURLs, new base::ListValue()); 460 values.Set(manifest_keys::kWebURLs, new base::ListValue());
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 extension.get(), 890 extension.get(),
904 Feature::BLESSED_EXTENSION_CONTEXT, 891 Feature::BLESSED_EXTENSION_CONTEXT,
905 GURL()).is_available()); 892 GURL()).is_available());
906 EXPECT_FALSE(extension_api->IsAvailable("pageAction", 893 EXPECT_FALSE(extension_api->IsAvailable("pageAction",
907 extension.get(), 894 extension.get(),
908 Feature::BLESSED_EXTENSION_CONTEXT, 895 Feature::BLESSED_EXTENSION_CONTEXT,
909 GURL()).is_available()); 896 GURL()).is_available());
910 } 897 }
911 898
912 } // namespace extensions 899 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | chrome/common/extensions/features/base_feature_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698