1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
#include <qtest.h>
#include "../../../shared/util.h"
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcomponent.h>
#include <private/qmlgraphicswebview_p.h>
#include <QtWebKit/qwebpage.h>
#include <QtWebKit/qwebframe.h>
#include <QtCore/qdir.h>
#include <QtCore/qfile.h>
class tst_qfxwebview : public QObject
{
Q_OBJECT
public:
tst_qfxwebview() {}
private slots:
void testBasicProperties();
void cleanupTestCase();
private:
void checkNoErrors(const QmlComponent& component);
QmlEngine engine;
QString tmpDir() const
{
static QString tmpd = QDir::tempPath()+"/tst_qfxwebview-"
+ QDateTime::currentDateTime().toString(QLatin1String("yyyyMMddhhmmss"));
return tmpd;
}
};
void removeRecursive(const QString& dirname)
{
QDir dir(dirname);
QFileInfoList entries(dir.entryInfoList(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot));
for (int i = 0; i < entries.count(); ++i)
if (entries[i].isDir())
removeRecursive(entries[i].filePath());
else
dir.remove(entries[i].fileName());
QDir().rmdir(dirname);
}
void tst_qfxwebview::cleanupTestCase()
{
removeRecursive(tmpDir());
}
void tst_qfxwebview::checkNoErrors(const QmlComponent& component)
{
if (component.isError()) {
QList<QmlError> errors = component.errors();
for (int ii = 0; ii < errors.count(); ++ii) {
const QmlError &error = errors.at(ii);
QByteArray errorStr = QByteArray::number(error.line()) + ":" +
QByteArray::number(error.column()) + ":" +
error.description().toUtf8();
qWarning() << errorStr;
}
}
QVERIFY(!component.isError());
}
void tst_qfxwebview::testBasicProperties()
{
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/basic.qml"));
checkNoErrors(component);
QWebSettings::enablePersistentStorage(tmpDir());
QmlGraphicsWebView *wv = qobject_cast<QmlGraphicsWebView*>(component.create());
QVERIFY(wv != 0);
QTRY_COMPARE(wv->progress(), 1.0);
QCOMPARE(wv->title(),QString("Basic"));
QTRY_COMPARE(wv->icon().width(), 48);
QCOMPARE(wv->icon(),QPixmap(SRCDIR "/data/basic.png"));
QCOMPARE(wv->statusText(),QString(""));
QFile htmlfile(SRCDIR "/data/basic.html");
QVERIFY(htmlfile.open(QIODevice::ReadOnly));
QString actualhtml____ = wv->html(); // "____" is to make errors line up for easier reading
QString expectedhtml = htmlfile.readAll();
actualhtml____.replace(QRegExp("\\s+"),"");
expectedhtml.replace(QRegExp("\\s+"),"");
QCOMPARE(actualhtml____,expectedhtml); // same, ignoring whitespace
QCOMPARE(wv->width(), 123.0);
QCOMPARE(wv->webPageWidth(), 0);
QCOMPARE(wv->preferredWidth(), 0);
QCOMPARE(wv->zoomFactor(), 1.0);
QCOMPARE(wv->url(), QUrl::fromLocalFile(SRCDIR "/data/basic.html"));
QCOMPARE(wv->status(), QmlGraphicsWebView::Ready);
QVERIFY(wv->reloadAction());
QVERIFY(wv->reloadAction()->isEnabled());
QVERIFY(wv->backAction());
QVERIFY(!wv->backAction()->isEnabled());
QVERIFY(wv->forwardAction());
QVERIFY(!wv->forwardAction()->isEnabled());
QVERIFY(wv->stopAction());
QVERIFY(!wv->stopAction()->isEnabled());
}
QTEST_MAIN(tst_qfxwebview)
#include "tst_qfxwebview.moc"
|