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

Unified Diff: ppapi/proxy/plugin_resource_tracker_unittest.cc

Issue 6334016: Refactor PPAPI proxy resource handling to maintain which host they came from,... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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
« no previous file with comments | « ppapi/proxy/plugin_resource_tracker.cc ('k') | ppapi/proxy/plugin_var_serialization_rules.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/proxy/plugin_resource_tracker_unittest.cc
===================================================================
--- ppapi/proxy/plugin_resource_tracker_unittest.cc (revision 0)
+++ ppapi/proxy/plugin_resource_tracker_unittest.cc (revision 0)
@@ -0,0 +1,75 @@
+// Copyright (c) 2011 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/process.h"
+#include "base/scoped_ptr.h"
+#include "ppapi/proxy/mock_resource.h"
+#include "ppapi/proxy/plugin_dispatcher.h"
+#include "ppapi/proxy/plugin_resource_tracker.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/proxy/ppapi_proxy_test.h"
+
+namespace pp {
+namespace proxy {
+
+namespace {
+
+// Object so we know when a resource has been released.
+class TrackedMockResource : public MockResource {
+ public:
+ TrackedMockResource(const HostResource& serialized)
+ : MockResource(serialized) {
+ tracked_alive_count++;
+ }
+ ~TrackedMockResource() {
+ tracked_alive_count--;
+ }
+
+ static int tracked_alive_count;
+};
+
+int TrackedMockResource::tracked_alive_count = 0;
+
+} // namespace
+
+class PluginResourceTrackerTest : public PluginProxyTest {
+ public:
+ PluginResourceTrackerTest() {}
+ ~PluginResourceTrackerTest() {}
+
+ PluginResourceTracker& tracker() { return tracker_; }
+
+ private:
+ PluginResourceTracker tracker_;
+};
+
+TEST_F(PluginResourceTrackerTest, PluginResourceForHostResource) {
+ PP_Instance instance = 0x1234;
+ PP_Resource host_resource = 0x5678;
+
+ HostResource serialized;
+ serialized.SetHostResource(instance, host_resource);
+
+ // When we haven't added an object, the return value should be 0.
+ EXPECT_EQ(0, tracker().PluginResourceForHostResource(serialized));
+
+ EXPECT_EQ(0, TrackedMockResource::tracked_alive_count);
+ TrackedMockResource* object = new TrackedMockResource(serialized);
+ EXPECT_EQ(1, TrackedMockResource::tracked_alive_count);
+ PP_Resource plugin_resource =
+ tracker().AddResource(linked_ptr<PluginResource>(object));
+
+ // Now that the object has been added, the return value should be the plugin
+ // resource ID we already got.
+ EXPECT_EQ(plugin_resource,
+ tracker().PluginResourceForHostResource(serialized));
+
+ // Releasing the resource should have freed it.
+ tracker().ReleaseResource(plugin_resource);
+ EXPECT_EQ(0, TrackedMockResource::tracked_alive_count);
+ EXPECT_EQ(0, tracker().PluginResourceForHostResource(serialized));
+}
+
+} // namespace proxy
+} // namespace pp
Property changes on: ppapi/proxy/plugin_resource_tracker_unittest.cc
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « ppapi/proxy/plugin_resource_tracker.cc ('k') | ppapi/proxy/plugin_var_serialization_rules.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698