summaryrefslogtreecommitdiffstats
path: root/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2017-12-01 16:00:06 +0100
committerAndy Shaw <andy.shaw@qt.io>2018-01-02 08:50:54 +0000
commitfa1397882ac322da376ad3bc1f2094334eb67e6e (patch)
treefe4469f181b310e45f98a0126e551ff94ec30c79 /tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
parent9b361f0e90fb1c154a16e65ec087ad36d5cca9b4 (diff)
Test calling setRelation() with QSqlRelation() clears the relation
Change-Id: I93dbec54bfb9402b9044323862c2ae1d41e1790a Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Diffstat (limited to 'tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp')
-rw-r--r--tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
index 799b93c33b..84cca482fb 100644
--- a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
+++ b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
@@ -77,6 +77,7 @@ private slots:
void psqlSchemaTest();
void selectAfterUpdate();
void relationOnFirstColumn();
+ void setRelation();
private:
void dropTestTables( QSqlDatabase db );
@@ -1550,5 +1551,27 @@ void tst_QSqlRelationalTableModel::relationOnFirstColumn()
tst_Databases::safeDropTables(db, QStringList() << testTable1 << testTable2);
}
+void tst_QSqlRelationalTableModel::setRelation()
+{
+ QFETCH_GLOBAL(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+ recreateTestTables(db);
+
+ QSqlRelationalTableModel model(0, db);
+ model.setTable(reltest1);
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 2)), QVariant(1));
+
+ model.setRelation(2, QSqlRelation(reltest2, "id", "title"));
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 2)), QVariant("herr"));
+
+ // Check that setting an invalid QSqlRelation() clears the relation
+ model.setRelation(2, QSqlRelation());
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 2)), QVariant(1));
+}
+
QTEST_MAIN(tst_QSqlRelationalTableModel)
#include "tst_qsqlrelationaltablemodel.moc"