Commit 556c3fd7 authored by isandrk's avatar isandrk Committed by Commit bot

Extracted MockManifestPermission to its own file

BUG=715638

Review-Url: https://codereview.chromium.org/2850493002
Cr-Commit-Position: refs/heads/master@{#468612}
parent eb6696a1
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
#include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_constants.h"
#include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/api_permission.h"
#include "extensions/common/permissions/api_permission_set.h" #include "extensions/common/permissions/api_permission_set.h"
#include "extensions/common/permissions/manifest_permission.h"
#include "extensions/common/permissions/manifest_permission_set.h" #include "extensions/common/permissions/manifest_permission_set.h"
#include "extensions/common/permissions/mock_manifest_permission.h"
#include "extensions/common/permissions/permission_set.h" #include "extensions/common/permissions/permission_set.h"
#include "extensions/common/url_pattern.h" #include "extensions/common/url_pattern.h"
#include "extensions/common/url_pattern_set.h" #include "extensions/common/url_pattern_set.h"
...@@ -29,51 +29,6 @@ namespace { ...@@ -29,51 +29,6 @@ namespace {
const char kWhitelistedId[] = "cbkkbcmdlboombapidmoeolnmdacpkch"; const char kWhitelistedId[] = "cbkkbcmdlboombapidmoeolnmdacpkch";
const char kBogusId[] = "bogus"; const char kBogusId[] = "bogus";
// TODO(isandrk, crbug.com/715638): Extract MockManifestPermission into its own
// file (since it's duplicated in two places).
class MockManifestPermission : public ManifestPermission {
public:
MockManifestPermission(const std::string& name)
: name_(name) {
}
std::string name() const override { return name_; }
std::string id() const override { return name(); }
PermissionIDSet GetPermissions() const override { return PermissionIDSet(); }
bool FromValue(const base::Value* value) override { return true; }
std::unique_ptr<base::Value> ToValue() const override {
return base::MakeUnique<base::Value>();
}
ManifestPermission* Diff(const ManifestPermission* rhs) const override {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return NULL;
}
ManifestPermission* Union(const ManifestPermission* rhs) const override {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return new MockManifestPermission(name_);
}
ManifestPermission* Intersect(const ManifestPermission* rhs) const override {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return new MockManifestPermission(name_);
}
private:
std::string name_;
};
scoped_refptr<Extension> CreateExtension(const std::string& id) { scoped_refptr<Extension> CreateExtension(const std::string& id) {
std::string error; std::string error;
base::DictionaryValue manifest; base::DictionaryValue manifest;
......
...@@ -100,6 +100,8 @@ static_library("test_support") { ...@@ -100,6 +100,8 @@ static_library("test_support") {
"common/extension_builder.h", "common/extension_builder.h",
"common/manifest_test.cc", "common/manifest_test.cc",
"common/manifest_test.h", "common/manifest_test.h",
"common/permissions/mock_manifest_permission.cc",
"common/permissions/mock_manifest_permission.h",
"common/permissions/permission_message_test_util.cc", "common/permissions/permission_message_test_util.cc",
"common/permissions/permission_message_test_util.h", "common/permissions/permission_message_test_util.h",
"common/test_util.cc", "common/test_util.cc",
......
...@@ -7,55 +7,12 @@ ...@@ -7,55 +7,12 @@
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/pickle.h" #include "base/pickle.h"
#include "base/values.h" #include "base/values.h"
#include "extensions/common/permissions/manifest_permission.h" #include "extensions/common/permissions/mock_manifest_permission.h"
#include "ipc/ipc_message.h" #include "ipc/ipc_message.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
namespace extensions { namespace extensions {
class MockManifestPermission : public ManifestPermission {
public:
MockManifestPermission(const std::string& name)
: name_(name) {
}
std::string name() const override { return name_; }
std::string id() const override { return name(); }
PermissionIDSet GetPermissions() const override { return PermissionIDSet(); }
bool FromValue(const base::Value* value) override { return true; }
std::unique_ptr<base::Value> ToValue() const override {
return base::MakeUnique<base::Value>();
}
ManifestPermission* Diff(const ManifestPermission* rhs) const override {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return NULL;
}
ManifestPermission* Union(const ManifestPermission* rhs) const override {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return new MockManifestPermission(name_);
}
ManifestPermission* Intersect(const ManifestPermission* rhs) const override {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return new MockManifestPermission(name_);
}
private:
std::string name_;
};
TEST(ManifestPermissionSetTest, General) { TEST(ManifestPermissionSetTest, General) {
ManifestPermissionSet set; ManifestPermissionSet set;
set.insert(new MockManifestPermission("p1")); set.insert(new MockManifestPermission("p1"));
......
// Copyright 2017 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 "extensions/common/permissions/mock_manifest_permission.h"
#include "base/memory/ptr_util.h"
#include "extensions/common/permissions/api_permission_set.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace extensions {
MockManifestPermission::MockManifestPermission(const std::string& name)
: name_(name) {}
std::string MockManifestPermission::name() const {
return name_;
}
std::string MockManifestPermission::id() const {
return name();
}
PermissionIDSet MockManifestPermission::GetPermissions() const {
return PermissionIDSet();
}
bool MockManifestPermission::FromValue(const base::Value* value) {
return true;
}
std::unique_ptr<base::Value> MockManifestPermission::ToValue() const {
return base::MakeUnique<base::Value>();
}
ManifestPermission* MockManifestPermission::Diff(
const ManifestPermission* rhs) const {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return nullptr;
}
ManifestPermission* MockManifestPermission::Union(
const ManifestPermission* rhs) const {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return new MockManifestPermission(name_);
}
ManifestPermission* MockManifestPermission::Intersect(
const ManifestPermission* rhs) const {
const MockManifestPermission* other =
static_cast<const MockManifestPermission*>(rhs);
EXPECT_EQ(name_, other->name_);
return new MockManifestPermission(name_);
}
} // namespace extensions
// Copyright 2017 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.
#ifndef EXTENSIONS_COMMON_PERMISSIONS_MOCK_MANIFEST_PERMISSION_H_
#define EXTENSIONS_COMMON_PERMISSIONS_MOCK_MANIFEST_PERMISSION_H_
#include <memory>
#include <string>
#include "base/macros.h"
#include "extensions/common/permissions/manifest_permission.h"
namespace base {
class Value;
}
namespace extensions {
// Useful for mocking ManifestPermission in tests.
class MockManifestPermission : public ManifestPermission {
public:
explicit MockManifestPermission(const std::string& name);
std::string name() const override;
std::string id() const override;
PermissionIDSet GetPermissions() const override;
bool FromValue(const base::Value* value) override;
std::unique_ptr<base::Value> ToValue() const override;
ManifestPermission* Diff(const ManifestPermission* rhs) const override;
ManifestPermission* Union(const ManifestPermission* rhs) const override;
ManifestPermission* Intersect(const ManifestPermission* rhs) const override;
private:
std::string name_;
DISALLOW_COPY_AND_ASSIGN(MockManifestPermission);
};
} // namespace extensions
#endif // EXTENSIONS_COMMON_PERMISSIONS_MOCK_MANIFEST_PERMISSION_H_
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