Index: chrome/common/extensions/api/sockets/sockets_manifest_permission_unittest.cc |
diff --git a/chrome/common/extensions/api/sockets/sockets_manifest_permission_unittest.cc b/chrome/common/extensions/api/sockets/sockets_manifest_permission_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d936d804ce9584c89efea77a34f57c9ed46409eb |
--- /dev/null |
+++ b/chrome/common/extensions/api/sockets/sockets_manifest_permission_unittest.cc |
@@ -0,0 +1,75 @@ |
+// Copyright 2013 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 "base/pickle.h" |
+#include "base/values.h" |
+#include "chrome/common/extensions/api/sockets/sockets_manifest_permission.h" |
+#include "chrome/common/extensions/extension_messages.h" |
+#include "extensions/common/manifest_constants.h" |
+#include "ipc/ipc_message.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace extensions { |
+ |
+namespace { |
+ |
+static void AssertEmptyPermission(SocketsManifestPermission* permission) { |
+ EXPECT_TRUE(permission); |
+ EXPECT_EQ(std::string(extensions::manifest_keys::kSockets), permission->id()); |
+ EXPECT_EQ(permission->id(), permission->name()); |
+ EXPECT_EQ(false, permission->HasMessages()); |
+} |
+ |
+} // namespace |
+ |
+TEST(SocketsManifestPermissionTest, Empty) { |
+ // Construction |
+ scoped_ptr<SocketsManifestPermission> permission( |
+ new SocketsManifestPermission()); |
+ AssertEmptyPermission(permission.get()); |
+ |
+ // Clone()/Equal() |
+ scoped_ptr<SocketsManifestPermission> clone( |
+ static_cast<SocketsManifestPermission*>(permission->Clone())); |
+ AssertEmptyPermission(clone.get()); |
+ |
+ EXPECT_TRUE(permission->Equal(clone.get())); |
+ |
+ // ToValue()/FromValue() |
+ scoped_ptr<const base::Value> value(permission->ToValue()); |
+ EXPECT_TRUE(value.get()); |
+ |
+ scoped_ptr<SocketsManifestPermission> permission2( |
+ new SocketsManifestPermission()); |
+ EXPECT_TRUE(permission2->FromValue(value.get())); |
+ AssertEmptyPermission(permission2.get()); |
+ |
+ // Union/Diff/Intersection |
+ scoped_ptr<SocketsManifestPermission> diff_perm( |
+ static_cast<SocketsManifestPermission*>(permission->Diff(clone.get()))); |
+ AssertEmptyPermission(diff_perm.get()); |
+ |
+ scoped_ptr<SocketsManifestPermission> union_perm( |
+ static_cast<SocketsManifestPermission*>(permission->Union(clone.get()))); |
+ AssertEmptyPermission(union_perm.get()); |
+ |
+ scoped_ptr<SocketsManifestPermission> intersect_perm( |
+ static_cast<SocketsManifestPermission*>( |
+ permission->Intersect(clone.get()))); |
+ AssertEmptyPermission(intersect_perm.get()); |
+ |
+ // IPC |
+ scoped_ptr<SocketsManifestPermission> ipc_perm( |
+ new SocketsManifestPermission()); |
+ scoped_ptr<SocketsManifestPermission> ipc_perm2( |
+ new SocketsManifestPermission()); |
+ |
+ IPC::Message m; |
+ ipc_perm->Write(&m); |
+ PickleIterator iter(m); |
+ EXPECT_TRUE(ipc_perm2->Read(&m, &iter)); |
+ AssertEmptyPermission(ipc_perm2.get()); |
+} |
+ |
+} // namespace extensions |