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 11316164: Implement ComplexFeature to support permission features with multiple rules. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Renames and add TODO Created 8 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 | « chrome/common/extensions/api/extension_api.cc ('k') | chrome/common/extensions/extension.cc » ('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 "chrome/common/extensions/api/extension_api.h" 5 #include "chrome/common/extensions/api/extension_api.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/file_path.h" 10 #include "base/file_path.h"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/json/json_writer.h" 12 #include "base/json/json_writer.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/path_service.h" 15 #include "base/path_service.h"
16 #include "base/values.h" 16 #include "base/values.h"
17 #include "chrome/common/chrome_paths.h" 17 #include "chrome/common/chrome_paths.h"
18 #include "chrome/common/extensions/extension.h" 18 #include "chrome/common/extensions/extension.h"
19 #include "chrome/common/extensions/features/simple_feature.h"
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 21
21 namespace extensions { 22 namespace extensions {
22 namespace { 23 namespace {
23 24
24 class TestFeatureProvider : public FeatureProvider { 25 class TestFeatureProvider : public FeatureProvider {
25 public: 26 public:
26 explicit TestFeatureProvider(Feature::Context context) 27 explicit TestFeatureProvider(Feature::Context context)
27 : context_(context) { 28 : context_(context) {
28 } 29 }
29 30
30 virtual Feature* GetFeature(const std::string& name) OVERRIDE { 31 virtual Feature* GetFeature(const std::string& name) OVERRIDE {
31 Feature* result = new Feature(); 32 SimpleFeature* result = new SimpleFeature();
32 result->set_name(name); 33 result->set_name(name);
33 result->extension_types()->insert(Extension::TYPE_EXTENSION); 34 result->extension_types()->insert(Extension::TYPE_EXTENSION);
34 result->contexts()->insert(context_); 35 result->GetContexts()->insert(context_);
35 to_destroy_.push_back(make_linked_ptr(result)); 36 to_destroy_.push_back(make_linked_ptr(result));
36 return result; 37 return result;
37 } 38 }
38 39
39 private: 40 private:
40 std::vector<linked_ptr<Feature> > to_destroy_; 41 std::vector<linked_ptr<Feature> > to_destroy_;
41 Feature::Context context_; 42 Feature::Context context_;
42 }; 43 };
43 44
44 TEST(ExtensionAPI, Creation) { 45 TEST(ExtensionAPI, Creation) {
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 std::string api_name = api->GetAPINameFromFullName(test_data[i].input, 346 std::string api_name = api->GetAPINameFromFullName(test_data[i].input,
346 &child_name); 347 &child_name);
347 EXPECT_EQ(test_data[i].api_name, api_name) << test_data[i].input; 348 EXPECT_EQ(test_data[i].api_name, api_name) << test_data[i].input;
348 EXPECT_EQ(test_data[i].child_name, child_name) << test_data[i].input; 349 EXPECT_EQ(test_data[i].child_name, child_name) << test_data[i].input;
349 } 350 }
350 } 351 }
351 352
352 TEST(ExtensionAPI, DefaultConfigurationFeatures) { 353 TEST(ExtensionAPI, DefaultConfigurationFeatures) {
353 scoped_ptr<ExtensionAPI> api(ExtensionAPI::CreateWithDefaultConfiguration()); 354 scoped_ptr<ExtensionAPI> api(ExtensionAPI::CreateWithDefaultConfiguration());
354 355
355 Feature* bookmarks = api->GetFeature("bookmarks"); 356 SimpleFeature* bookmarks =
356 Feature* bookmarks_create = api->GetFeature("bookmarks.create"); 357 static_cast<SimpleFeature*>(api->GetFeature("bookmarks"));
358 SimpleFeature* bookmarks_create =
359 static_cast<SimpleFeature*>(api->GetFeature("bookmarks.create"));
357 360
358 struct { 361 struct {
359 Feature* feature; 362 SimpleFeature* feature;
360 // TODO(aa): More stuff to test over time. 363 // TODO(aa): More stuff to test over time.
361 } test_data[] = { 364 } test_data[] = {
362 { bookmarks }, 365 { bookmarks },
363 { bookmarks_create } 366 { bookmarks_create }
364 }; 367 };
365 368
366 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { 369 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
367 Feature* feature = test_data[i].feature; 370 SimpleFeature* feature = test_data[i].feature;
368 ASSERT_TRUE(feature) << i; 371 ASSERT_TRUE(feature) << i;
369 372
370 EXPECT_TRUE(feature->whitelist()->empty()); 373 EXPECT_TRUE(feature->whitelist()->empty());
371 EXPECT_TRUE(feature->extension_types()->empty()); 374 EXPECT_TRUE(feature->extension_types()->empty());
372 375
373 EXPECT_EQ(1u, feature->contexts()->size()); 376 EXPECT_EQ(1u, feature->GetContexts()->size());
374 EXPECT_TRUE(feature->contexts()->count( 377 EXPECT_TRUE(feature->GetContexts()->count(
375 Feature::BLESSED_EXTENSION_CONTEXT)); 378 Feature::BLESSED_EXTENSION_CONTEXT));
376 379
377 EXPECT_EQ(Feature::UNSPECIFIED_LOCATION, feature->location()); 380 EXPECT_EQ(Feature::UNSPECIFIED_LOCATION, feature->location());
378 EXPECT_EQ(Feature::UNSPECIFIED_PLATFORM, feature->platform()); 381 EXPECT_EQ(Feature::UNSPECIFIED_PLATFORM, feature->platform());
379 EXPECT_EQ(0, feature->min_manifest_version()); 382 EXPECT_EQ(0, feature->min_manifest_version());
380 EXPECT_EQ(0, feature->max_manifest_version()); 383 EXPECT_EQ(0, feature->max_manifest_version());
381 } 384 }
382 } 385 }
383 386
384 TEST(ExtensionAPI, FeaturesRequireContexts) { 387 TEST(ExtensionAPI, FeaturesRequireContexts) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 GetDictionaryFromList(dict, "parameters", 0, &sub_dict); 482 GetDictionaryFromList(dict, "parameters", 0, &sub_dict);
480 EXPECT_TRUE(sub_dict->GetString("$ref", &type)); 483 EXPECT_TRUE(sub_dict->GetString("$ref", &type));
481 EXPECT_EQ("test.foo.TestType", type); 484 EXPECT_EQ("test.foo.TestType", type);
482 GetDictionaryFromList(dict, "parameters", 1, &sub_dict); 485 GetDictionaryFromList(dict, "parameters", 1, &sub_dict);
483 EXPECT_TRUE(sub_dict->GetString("$ref", &type)); 486 EXPECT_TRUE(sub_dict->GetString("$ref", &type));
484 EXPECT_EQ("fully.qualified.Type", type); 487 EXPECT_EQ("fully.qualified.Type", type);
485 } 488 }
486 489
487 } // namespace 490 } // namespace
488 } // namespace extensions 491 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/common/extensions/api/extension_api.cc ('k') | chrome/common/extensions/extension.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698