aboutsummaryrefslogtreecommitdiffstats
path: root/tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc')
-rw-r--r--tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc b/tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc
index 854aeaa..9d77564 100644
--- a/tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc
+++ b/tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc
@@ -37,7 +37,11 @@
#include <UnitTest++.h>
#include <npapi.h>
+
+#include "browser_mock.h"
+
#include "IcedTeaPluginUtils.h"
+#include "IcedTeaNPPlugin.h"
TEST(NPVariantAsString) {
NPVariant var;
@@ -45,4 +49,36 @@ TEST(NPVariantAsString) {
std::string cppstr = IcedTeaPluginUtilities::NPVariantAsString(var);
CHECK(cppstr == "test");
+
+}
+
+TEST(NPStringCopy) {
+ std::string cppstr = "test";
+ NPString npstr = IcedTeaPluginUtilities::NPStringCopy(cppstr);
+
+ CHECK_EQUAL(4, npstr.UTF8Length);
+ CHECK_EQUAL("test", npstr.UTF8Characters);
+
+ // NPAPI states that browser allocation function should be used for NPString/NPVariant
+ CHECK_EQUAL(1, browsermock_unfreed_allocations());
+
+ browser_functions.memfree((void*) npstr.UTF8Characters);
+
+ CHECK_EQUAL(0, browsermock_unfreed_allocations());
+}
+
+TEST(NPVariantStringCopy) {
+ std::string cppstr = "test";
+ NPVariant npvar = IcedTeaPluginUtilities::NPVariantStringCopy(cppstr);
+
+ CHECK_EQUAL(NPVariantType_String, npvar.type);
+
+ CHECK_EQUAL(4, npvar.value.stringValue.UTF8Length);
+ CHECK_EQUAL("test", npvar.value.stringValue.UTF8Characters);
+
+ CHECK_EQUAL(1, browsermock_unfreed_allocations());
+
+ browser_functions.memfree((void*) npvar.value.stringValue.UTF8Characters);
+
+ CHECK_EQUAL(0, browsermock_unfreed_allocations());
}