aboutsummaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
authorAdam Domurad <[email protected]>2013-06-21 11:39:00 -0400
committerAdam Domurad <[email protected]>2013-06-21 11:39:00 -0400
commit698509ab278c4af69c055c7c8fb69141000d1895 (patch)
treef61aee57b4726333389a70f8507e69ee606e2ae9 /plugin
parentda8ec0b9cba22448fbb5b599bff3e1f5fb8c0bf7 (diff)
More unit tests for scriptable object creation, destruction
Diffstat (limited to 'plugin')
-rw-r--r--plugin/icedteanp/IcedTeaPluginUtils.cc20
-rw-r--r--plugin/icedteanp/IcedTeaPluginUtils.h10
2 files changed, 28 insertions, 2 deletions
diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc b/plugin/icedteanp/IcedTeaPluginUtils.cc
index 6ed17bb..8e690bd 100644
--- a/plugin/icedteanp/IcedTeaPluginUtils.cc
+++ b/plugin/icedteanp/IcedTeaPluginUtils.cc
@@ -498,6 +498,14 @@ IcedTeaPluginUtilities::removeInstanceID(void* member_ptr)
instance_map->erase(member_ptr);
}
+/* Clear instance_map. Useful for tests. */
+void
+IcedTeaPluginUtilities::clearInstanceIDs()
+{
+ delete instance_map;
+ instance_map = new std::map<void*, NPP>();
+}
+
/**
* Removes all mappings to a given instance, and all associated objects
*/
@@ -603,6 +611,18 @@ IcedTeaPluginUtilities::removeObjectMapping(std::string key)
object_map->erase(key);
}
+/* Clear object_map. Useful for tests. */
+void
+IcedTeaPluginUtilities::clearObjectMapping()
+{
+ std::map<std::string, NPObject*>::iterator iter = object_map->begin();
+ for (; iter != object_map->end(); ++iter) {
+ browser_functions.releaseobject(iter->second);
+ }
+ delete object_map;
+ object_map = new std::map<std::string, NPObject*>();
+}
+
/*
* Similar to printStringVector, but takes a vector of string pointers instead
*
diff --git a/plugin/icedteanp/IcedTeaPluginUtils.h b/plugin/icedteanp/IcedTeaPluginUtils.h
index b55355b..634b675 100644
--- a/plugin/icedteanp/IcedTeaPluginUtils.h
+++ b/plugin/icedteanp/IcedTeaPluginUtils.h
@@ -252,9 +252,12 @@ class IcedTeaPluginUtilities
static void storeInstanceID(void* member_ptr, NPP instance);
- static void removeInstanceID(void* member_ptr);
+ static void removeInstanceID(void* member_ptr);
- static NPP getInstanceFromMemberPtr(void* member_ptr);
+ /* Clear object_map. Useful for tests. */
+ static void clearInstanceIDs();
+
+ static NPP getInstanceFromMemberPtr(void* member_ptr);
static NPObject* getNPObjectFromJavaKey(std::string key);
@@ -262,6 +265,9 @@ class IcedTeaPluginUtilities
static void removeObjectMapping(std::string key);
+ /* Clear object_map. Useful for tests. */
+ static void clearObjectMapping();
+
static void invalidateInstance(NPP instance);
static bool isObjectJSArray(NPP instance, NPObject* object);