summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/kernel/qjniobject/testdata/src/org/qtproject/qt/android/testdata/QtJniObjectTestClass.java22
-rw-r--r--tests/auto/corelib/kernel/qjniobject/tst_qjniobject.cpp142
2 files changed, 164 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qjniobject/testdata/src/org/qtproject/qt/android/testdata/QtJniObjectTestClass.java b/tests/auto/corelib/kernel/qjniobject/testdata/src/org/qtproject/qt/android/testdata/QtJniObjectTestClass.java
index 4d6db749a5..5865391ac9 100644
--- a/tests/auto/corelib/kernel/qjniobject/testdata/src/org/qtproject/qt/android/testdata/QtJniObjectTestClass.java
+++ b/tests/auto/corelib/kernel/qjniobject/testdata/src/org/qtproject/qt/android/testdata/QtJniObjectTestClass.java
@@ -44,6 +44,28 @@ public class QtJniObjectTestClass
static final Throwable A_THROWABLE_OBJECT = new Throwable(A_STRING_OBJECT);
// --------------------------------------------------------------------------------------------
+
+ byte BYTE_VAR;
+ short SHORT_VAR;
+ int INT_VAR;
+ long LONG_VAR;
+ float FLOAT_VAR;
+ double DOUBLE_VAR;
+ boolean BOOLEAN_VAR;
+ char CHAR_VAR;
+ String STRING_OBJECT_VAR;
+
+ static byte S_BYTE_VAR;
+ static short S_SHORT_VAR;
+ static int S_INT_VAR;
+ static long S_LONG_VAR;
+ static float S_FLOAT_VAR;
+ static double S_DOUBLE_VAR;
+ static boolean S_BOOLEAN_VAR;
+ static char S_CHAR_VAR;
+ static String S_STRING_OBJECT_VAR;
+
+ // --------------------------------------------------------------------------------------------
public static void staticVoidMethod() { return; }
public static void staticVoidMethodWithArgs(int a, boolean b, char c) { return; }
diff --git a/tests/auto/corelib/kernel/qjniobject/tst_qjniobject.cpp b/tests/auto/corelib/kernel/qjniobject/tst_qjniobject.cpp
index 173f955ce7..4c0d9e1e6e 100644
--- a/tests/auto/corelib/kernel/qjniobject/tst_qjniobject.cpp
+++ b/tests/auto/corelib/kernel/qjniobject/tst_qjniobject.cpp
@@ -108,6 +108,26 @@ private slots:
void getStaticCharField();
void getBooleanField();
void getIntField();
+
+ void setIntField();
+ void setByteField();
+ void setLongField();
+ void setDoubleField();
+ void setFloatField();
+ void setShortField();
+ void setCharField();
+ void setBooleanField();
+ void setObjectField();
+ void setStaticIntField();
+ void setStaticByteField();
+ void setStaticLongField();
+ void setStaticDoubleField();
+ void setStaticFloatField();
+ void setStaticShortField();
+ void setStaticCharField();
+ void setStaticBooleanField();
+ void setStaticObjectField();
+
void templateApiCheck();
void isClassAvailable();
void fromLocalRef();
@@ -889,6 +909,128 @@ void tst_QJniObject::getIntField()
QCOMPARE(res, -1);
}
+template <typename T>
+void setField(const char *fieldName, T testValue)
+{
+ QJniObject obj(testClassName);
+ QVERIFY(obj.isValid());
+
+ obj.setField(fieldName, testValue);
+
+ T res = obj.getField<T>(fieldName);
+ QCOMPARE(res, testValue);
+}
+
+void tst_QJniObject::setIntField()
+{
+ setField("INT_VAR", 555);
+}
+
+void tst_QJniObject::setByteField()
+{
+ setField("BYTE_VAR", jbyte(555));
+}
+
+void tst_QJniObject::setLongField()
+{
+ setField("LONG_VAR", jlong(9223372036847758232L));
+}
+
+void tst_QJniObject::setDoubleField()
+{
+ setField("DOUBLE_VAR", jdouble(1.2));
+}
+
+void tst_QJniObject::setFloatField()
+{
+ setField("FLOAT_VAR", jfloat(1.2));
+}
+
+void tst_QJniObject::setShortField()
+{
+ setField("SHORT_VAR", jshort(123));
+}
+
+void tst_QJniObject::setCharField()
+{
+ setField("CHAR_VAR", jchar('A'));
+}
+
+void tst_QJniObject::setBooleanField()
+{
+ setField("BOOLEAN_VAR", jboolean(true));
+}
+
+void tst_QJniObject::setObjectField()
+{
+ QJniObject obj(testClassName);
+ QVERIFY(obj.isValid());
+
+ QJniObject testValue = QJniObject::fromString(QStringLiteral("Hello"));
+ obj.setField("STRING_OBJECT_VAR", testValue.object<jstring>());
+
+ QJniObject res = obj.getObjectField<jstring>("STRING_OBJECT_VAR");
+ QCOMPARE(res.toString(), testValue.toString());
+}
+
+template <typename T>
+void setStaticField(const char *fieldName, T testValue)
+{
+ QJniObject::setStaticField(testClassName, fieldName, testValue);
+
+ T res = QJniObject::getStaticField<T>(testClassName, fieldName);
+ QCOMPARE(res, testValue);
+}
+
+void tst_QJniObject::setStaticIntField()
+{
+ setStaticField("S_INT_VAR", 555);
+}
+
+void tst_QJniObject::setStaticByteField()
+{
+ setStaticField("S_BYTE_VAR", jbyte(555));
+}
+
+void tst_QJniObject::setStaticLongField()
+{
+ setStaticField("S_LONG_VAR", jlong(9223372036847758232L));
+}
+
+void tst_QJniObject::setStaticDoubleField()
+{
+ setStaticField("S_DOUBLE_VAR", jdouble(1.2));
+}
+
+void tst_QJniObject::setStaticFloatField()
+{
+ setStaticField("S_FLOAT_VAR", jfloat(1.2));
+}
+
+void tst_QJniObject::setStaticShortField()
+{
+ setStaticField("S_SHORT_VAR", jshort(123));
+}
+
+void tst_QJniObject::setStaticCharField()
+{
+ setStaticField("S_CHAR_VAR", jchar('A'));
+}
+
+void tst_QJniObject::setStaticBooleanField()
+{
+ setStaticField("S_BOOLEAN_VAR", jboolean(true));
+}
+
+void tst_QJniObject::setStaticObjectField()
+{
+ QJniObject testValue = QJniObject::fromString(QStringLiteral("Hello"));
+ QJniObject::setStaticField(testClassName, "S_STRING_OBJECT_VAR", testValue.object<jstring>());
+
+ QJniObject res = QJniObject::getStaticObjectField<jstring>(testClassName, "S_STRING_OBJECT_VAR");
+ QCOMPARE(res.toString(), testValue.toString());
+}
+
void tst_QJniObject::templateApiCheck()
{
QJniObject testClass(testClassName);