Chromium Code Reviews| Index: chrome/common/extensions/extension_unittest.cc |
| diff --git a/chrome/common/extensions/extension_unittest.cc b/chrome/common/extensions/extension_unittest.cc |
| index 6ffccba2a5a0fcd846a8aec801a23cc7e1294abd..148f5105574428ab25691f5093115dd1711ef37e 100644 |
| --- a/chrome/common/extensions/extension_unittest.cc |
| +++ b/chrome/common/extensions/extension_unittest.cc |
| @@ -21,6 +21,7 @@ |
| #include "chrome/common/extensions/extension_resource.h" |
| #include "chrome/common/extensions/permissions/api_permission.h" |
| #include "chrome/common/extensions/permissions/permission_set.h" |
| +#include "chrome/common/extensions/permissions/socket_permission.h" |
| #include "chrome/common/url_constants.h" |
| #include "googleurl/src/gurl.h" |
| #include "net/base/mime_sniffer.h" |
| @@ -30,9 +31,12 @@ |
| #include "third_party/skia/include/core/SkBitmap.h" |
| #include "ui/gfx/codec/png_codec.h" |
| +using extensions::APIPermission; |
| using extensions::APIPermissionSet; |
| using extensions::Extension; |
| using extensions::PermissionSet; |
| +using extensions::SocketPermission; |
| +using extensions::SocketPermissionData; |
| namespace keys = extension_manifest_keys; |
| namespace values = extension_manifest_values; |
| @@ -444,6 +448,39 @@ TEST(ExtensionTest, EffectiveHostPermissions) { |
| EXPECT_TRUE(extension->HasEffectiveAccessToAllHosts()); |
| } |
| +static bool CheckSocketPermission(scoped_refptr<Extension> extension, |
| + SocketPermissionData::OperationType type, |
| + const char* host, |
| + int port) { |
| + SocketPermission::CheckParam param(type, host, port); |
| + return extension->CheckAPIPermissionWithDetail( |
| + APIPermission::kSocket, ¶m); |
| +} |
| + |
| +TEST(ExtensionTest, SocketPermissions) { |
|
miket_OOO
2012/08/06 21:04:06
These are good because they're tests, but you can
Peng
2012/08/07 21:31:55
I added some unitttest for it. Done
|
| + scoped_refptr<Extension> extension; |
| + extension = LoadManifest("socket_permissions", "empty.json"); |
| + EXPECT_FALSE(CheckSocketPermission( |
| + extension, SocketPermissionData::TCP_CONNECT, "www.example.com", 80)); |
| + |
| + extension = LoadManifest("socket_permissions", "socket1.json"); |
| + EXPECT_FALSE(CheckSocketPermission( |
| + extension, SocketPermissionData::TCP_CONNECT, "www.example.com", 80)); |
| + |
| + extension = LoadManifest("socket_permissions", "socket2.json"); |
| + EXPECT_TRUE(CheckSocketPermission( |
| + extension, SocketPermissionData::TCP_CONNECT, "www.example.com", 80)); |
| + EXPECT_FALSE(CheckSocketPermission( |
| + extension, SocketPermissionData::UDP_BIND, "", 80)); |
| + EXPECT_TRUE(CheckSocketPermission( |
| + extension, SocketPermissionData::UDP_BIND, "", 8888)); |
| + |
| + EXPECT_FALSE(CheckSocketPermission( |
| + extension, SocketPermissionData::UDP_SEND_TO, "example.com", 1900)); |
| + EXPECT_TRUE(CheckSocketPermission( |
| + extension, SocketPermissionData::UDP_SEND_TO, "239.255.255.250", 1900)); |
| +} |
| + |
| // Returns a copy of |source| resized to |size| x |size|. |
| static SkBitmap ResizedCopy(const SkBitmap& source, int size) { |
| return skia::ImageOperations::Resize(source, |