aboutsummaryrefslogtreecommitdiffstats
path: root/tests/cpp-unit-tests/browser_mock.cc
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 /tests/cpp-unit-tests/browser_mock.cc
parentda8ec0b9cba22448fbb5b599bff3e1f5fb8c0bf7 (diff)
More unit tests for scriptable object creation, destruction
Diffstat (limited to 'tests/cpp-unit-tests/browser_mock.cc')
-rw-r--r--tests/cpp-unit-tests/browser_mock.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/tests/cpp-unit-tests/browser_mock.cc b/tests/cpp-unit-tests/browser_mock.cc
index 6b01224..e333be7 100644
--- a/tests/cpp-unit-tests/browser_mock.cc
+++ b/tests/cpp-unit-tests/browser_mock.cc
@@ -73,17 +73,30 @@ static void mock_releaseobject(NPObject* obj) {
if (obj->_class->deallocate) {
obj->_class->deallocate(obj);
} else {
- free(obj);
+ mock_memfree(obj);
}
}
}
+static NPObject* mock_createobject(NPP instance, NPClass* np_class) {
+ NPObject* obj;
+ if (np_class->allocate) {
+ obj = np_class->allocate(instance, np_class);
+ } else {
+ obj = (NPObject*) mock_memalloc(sizeof(NPObject));
+ }
+ obj->referenceCount = 1;
+ obj->_class = np_class;
+ return obj;
+}
+
void browsermock_setup_functions() {
memset(&browser_functions, 0, sizeof(NPNetscapeFuncs));
browser_functions.memalloc = &mock_memalloc;
browser_functions.memfree = &mock_memfree;
+ browser_functions.createobject = &mock_createobject;
browser_functions.retainobject = &mock_retainobject;
browser_functions.releaseobject= &mock_releaseobject;
}