summaryrefslogtreecommitdiffstats
path: root/tests/auto/sql/models/qsqlrelationaldelegate
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2020-07-31 13:07:09 +0200
committerAndy Shaw <andy.shaw@qt.io>2020-08-23 00:22:04 +0200
commit7ec818e74ad1d346f40b17c338de424a0f45fa12 (patch)
treee05ac9025e84156abc602d65e780c28a616c554e /tests/auto/sql/models/qsqlrelationaldelegate
parentaa2c6690fdf44422ae1a5edebb35e46d6ffda83c (diff)
Interbase: Fix tests when running against Firebird
Change-Id: Ibfcf6b557aed3b0cd2e0ece5cf122819a1acc0c1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/auto/sql/models/qsqlrelationaldelegate')
-rw-r--r--tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp39
1 files changed, 25 insertions, 14 deletions
diff --git a/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp b/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp
index 9b00cda3dd..b7a85353d3 100644
--- a/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp
+++ b/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp
@@ -34,9 +34,6 @@
#include "../../kernel/qsqldatabase/tst_databases.h"
-QString reltest1;
-QString reltest2;
-
class tst_QSqlRelationalDelegate : public QObject
{
Q_OBJECT
@@ -62,11 +59,6 @@ private:
tst_QSqlRelationalDelegate::tst_QSqlRelationalDelegate()
{
- static QSqlDatabase static_qtest_db_1 = QSqlDatabase();
- reltest1 = qTableName("reltest1", __FILE__, static_qtest_db_1);
-
- static QSqlDatabase static_qtest_db_2 = QSqlDatabase();
- reltest2 = qTableName("reltest2", __FILE__, static_qtest_db_2);
}
void tst_QSqlRelationalDelegate::initTestCase_data()
@@ -78,11 +70,23 @@ void tst_QSqlRelationalDelegate::initTestCase_data()
void tst_QSqlRelationalDelegate::recreateTestTables(QSqlDatabase db)
{
+ const auto reltest1 = qTableName("reltest1", __FILE__, db);
+ const auto reltest2 = qTableName("reltest2", __FILE__, db);
+
dropTestTables(db);
QSqlQuery q(db);
+ const auto idField = db.driver()->escapeIdentifier(QLatin1String("id"), QSqlDriver::FieldName);
+ const auto nameField = db.driver()->escapeIdentifier(QLatin1String("name"), QSqlDriver::FieldName);
+ const auto titleKeyField = db.driver()->escapeIdentifier(QLatin1String("title_key"),
+ QSqlDriver::FieldName);
+ const auto anotherTitleField = db.driver()->escapeIdentifier(QLatin1String("another_title_key"),
+ QSqlDriver::FieldName);
+ const auto titleField = db.driver()->escapeIdentifier(QLatin1String("title"),
+ QSqlDriver::FieldName);
QVERIFY_SQL(q, exec("create table " + reltest1 +
- " (id int not null primary key, name varchar(20), title_key int, another_title_key int)"));
+ " (" + idField + " int not null primary key, " + nameField + " varchar(20), " +
+ titleKeyField + " int, " + anotherTitleField + "int)"));
QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(1, 'harry', 1, 2)"));
QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(2, 'trond', 2, 1)"));
QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(3, 'vohi', 1, 2)"));
@@ -90,7 +94,8 @@ void tst_QSqlRelationalDelegate::recreateTestTables(QSqlDatabase db)
QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(5, 'nat', NULL, NULL)"));
QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(6, 'ale', NULL, 2)"));
- QVERIFY_SQL(q, exec("create table " + reltest2 + " (id int not null primary key, title varchar(20))"));
+ QVERIFY_SQL(q, exec("create table " + reltest2 + " (" + idField + " int not null primary key, "
+ + titleKeyField + " varchar(20))"));
QVERIFY_SQL(q, exec("insert into " + reltest2 + " values(1, 'herr')"));
QVERIFY_SQL(q, exec("insert into " + reltest2 + " values(2, 'mister')"));
}
@@ -124,7 +129,7 @@ void tst_QSqlRelationalDelegate::cleanupTestCase()
void tst_QSqlRelationalDelegate::dropTestTables(QSqlDatabase db)
{
- QStringList tableNames = { reltest1, reltest2 };
+ QStringList tableNames = { qTableName("reltest1", __FILE__, db), qTableName("reltest2", __FILE__, db) };
tst_Databases::safeDropTables(db, tableNames);
}
@@ -142,12 +147,18 @@ void tst_QSqlRelationalDelegate::comboBoxEditor()
QSqlDatabase db = QSqlDatabase::database(dbName);
CHECK_DATABASE(db);
+ const auto reltest1 = qTableName("reltest1", __FILE__, db);
+ const auto reltest2 = qTableName("reltest2", __FILE__, db);
+ const auto idField = db.driver()->escapeIdentifier(QLatin1String("id"), QSqlDriver::FieldName);
+ const auto nameField = db.driver()->escapeIdentifier(QLatin1String("name"), QSqlDriver::FieldName);
+ const auto titleKeyField = db.driver()->escapeIdentifier(QLatin1String("title_key"),
+ QSqlDriver::FieldName);
QTableView tv;
QSqlRelationalTableModel model(0, db);
model.setEditStrategy(QSqlTableModel::OnManualSubmit);
model.setTable(reltest1);
- model.setRelation(2, QSqlRelation(reltest2, "id", "title"));
- model.setRelation(3, QSqlRelation(reltest2, "id", "title"));
+ model.setRelation(2, QSqlRelation(reltest2, idField, titleKeyField));
+ model.setRelation(3, QSqlRelation(reltest2, idField, titleKeyField));
tv.setModel(&model);
QVERIFY_SQL(model, select());
@@ -171,7 +182,7 @@ void tst_QSqlRelationalDelegate::comboBoxEditor()
QVERIFY_SQL(model, submitAll());
QSqlQuery qry(db);
- QVERIFY_SQL(qry, exec("SELECT title_key FROM " + reltest1 + " WHERE id=1"));
+ QVERIFY_SQL(qry, exec("SELECT " + titleKeyField + " FROM " + reltest1 + " WHERE " + idField + "=1"));
QVERIFY(qry.next());
QCOMPARE(qry.value(0).toString(), "2");
}