diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/kernel/qjniobject/testdata/src/org/qtproject/qt/android/testdata/QtJniObjectTestClass.java | 22 | ||||
-rw-r--r-- | tests/auto/corelib/kernel/qjniobject/tst_qjniobject.cpp | 142 |
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); |