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

Unified Diff: chrome/common/extensions/extension_unittest.cc

Issue 10692160: Support socket endpoint permissions for AppsV2 Socket API. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Support socket endpoint permissions Created 8 years, 4 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
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, &param);
+}
+
+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,

Powered by Google App Engine
This is Rietveld 408576698