2011-02-28 Benjamin Poulain <benjamin.poulain@nokia.com>
[WebKit-https.git] / Source / WebKit2 / UIProcess / API / qt / tests / qgraphicswkview / tst_qgraphicswkview.cpp
1 /*
2     Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19
20 #include "../util.h"
21 #include <QGraphicsScene>
22 #include <QGraphicsView>
23 #include <QResizeEvent>
24 #include <QSignalSpy>
25 #include <QtTest/QtTest>
26 #include <qgraphicswkview.h>
27 #include <qwkcontext.h>
28
29 class View;
30
31 class tst_QGraphicsWKView : public QObject {
32     Q_OBJECT
33
34 private slots:
35     void init();
36     void cleanup();
37
38     void loadEmptyPage();
39
40 private:
41     View* m_view;
42 };
43
44 class View : public QGraphicsView {
45 public:
46     View();
47     QGraphicsWKView* m_webView;
48
49 protected:
50     void resizeEvent(QResizeEvent*);
51 };
52
53 View::View()
54 {
55     QGraphicsScene* const scene = new QGraphicsScene(this);
56     setScene(scene);
57
58     QWKContext* context = new QWKContext(this);
59     m_webView = new QGraphicsWKView(context);
60     scene->addItem(m_webView);
61 }
62
63 void View::resizeEvent(QResizeEvent* event)
64 {
65     QGraphicsView::resizeEvent(event);
66     QRectF rect(QPoint(0, 0), event->size());
67     m_webView->setGeometry(rect);
68     scene()->setSceneRect(rect);
69 }
70
71 void tst_QGraphicsWKView::init()
72 {
73     m_view = new View;
74 }
75
76 void tst_QGraphicsWKView::cleanup()
77 {
78     delete m_view;
79     m_view = 0;
80 }
81
82 void tst_QGraphicsWKView::loadEmptyPage()
83 {
84     m_view->show();
85
86     m_view->m_webView-> load(QUrl::fromLocalFile(TESTDIR "/html/basic_page.html"));
87     QVERIFY(waitForSignal(m_view->m_webView, SIGNAL(loadFinished(bool))));
88 }
89
90 QTEST_MAIN(tst_QGraphicsWKView)
91
92 #include "tst_qgraphicswkview.moc"
93