summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@theqtcompany.com>2016-05-31 13:21:31 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2016-06-02 15:53:46 +0000
commit15a1836beaeb11a8244c0700bea37ecca0c28e5a (patch)
treea5b28f02b59b2b5aef759a1fb7aa35d2dd9ca617 /tests
parent7c722f423299548a143fed98239dd94c9c287559 (diff)
Use parent's loader for loading sub state machines.
Change-Id: Id0b21aab862fdcd7a6a5e964e1c3dd30bd3fccad Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/scion/tst_scion.cpp44
1 files changed, 24 insertions, 20 deletions
diff --git a/tests/auto/scion/tst_scion.cpp b/tests/auto/scion/tst_scion.cpp
index 695d1ba..b5e0d0f 100644
--- a/tests/auto/scion/tst_scion.cpp
+++ b/tests/auto/scion/tst_scion.cpp
@@ -94,42 +94,46 @@ public:
class DynamicLoader: public QScxmlParser::Loader
{
public:
- DynamicLoader(QScxmlParser *parser);
- QByteArray load(const QString &name, const QString &baseDir, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
+ DynamicLoader();
+ QByteArray load(const QString &name,
+ const QString &baseDir,
+ QStringList *errors) Q_DECL_OVERRIDE Q_DECL_FINAL;
};
-DynamicLoader::DynamicLoader(QScxmlParser *parser)
- : Loader(parser)
+DynamicLoader::DynamicLoader()
+ : Loader()
{}
-QByteArray DynamicLoader::load(const QString &name, const QString &baseDir, bool *ok)
+QByteArray DynamicLoader::load(const QString &name,
+ const QString &baseDir,
+ QStringList *errors)
{
- Q_ASSERT(ok != nullptr);
-
- *ok = false;
+ QStringList errs;
+ QByteArray contents;
QUrl url(name);
if (!url.isLocalFile() && !url.isRelative())
- parser()->addError(QStringLiteral("src attribute is not a local file (%1)").arg(name));
+ errs << QStringLiteral("src attribute is not a local file (%1)").arg(name);
QFileInfo fInfo = url.isLocalFile() ? url.toLocalFile() : name;
if (fInfo.isRelative())
fInfo = QFileInfo(QDir(baseDir).filePath(fInfo.filePath()));
fInfo = QFileInfo(QLatin1String(":/") + fInfo.filePath()); // take it from resources
if (!fInfo.exists()) {
- parser()->addError(QStringLiteral("src attribute resolves to non existing file (%1)").arg(fInfo.absoluteFilePath()));
+ errs << QStringLiteral("src attribute resolves to non existing file (%1)")
+ .arg(fInfo.absoluteFilePath());
} else {
QFile f(fInfo.absoluteFilePath());
- if (f.open(QFile::ReadOnly)) {
- *ok = true;
- QByteArray array = f.readAll();
- return array;
- } else {
- parser()->addError(QStringLiteral("Failure opening file %1: %2")
- .arg(fInfo.absoluteFilePath(), f.errorString()));
- }
+ if (f.open(QFile::ReadOnly))
+ contents = f.readAll();
+ else
+ errs << QStringLiteral("Failure opening file %1: %2")
+ .arg(fInfo.absoluteFilePath(), f.errorString());
}
- return QByteArray();
+ if (errors)
+ *errors = errs;
+
+ return contents;
}
@@ -204,7 +208,7 @@ void TestScion::dynamic()
QXmlStreamReader xmlReader(&scxmlFile);
QScxmlParser parser(&xmlReader);
parser.setFileName(scxml);
- DynamicLoader loader(&parser);
+ DynamicLoader loader;
parser.setLoader(&loader);
parser.parse();
QVERIFY(parser.errors().isEmpty());