Reviewed and landed by Anders.
[WebKit-https.git] / WebKitTools / DumpRenderTree / DumpRenderTree.qtproj / DumpRenderTree.h
1 /*
2  * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer. 
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution. 
13  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14  *     its contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission. 
16  *
17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 #ifndef DUMPRENDERTREE_H
30 #define DUMPRENDERTREE_H
31
32 #include <QList>
33 #include <QObject>
34 #include <QTextStream>
35 #include <QSocketNotifier>
36
37 #include "DumpRenderTreeClient.h"
38
39 namespace WebCore {
40
41 class DumpRenderTree : public QObject {
42 Q_OBJECT
43
44 public:
45     DumpRenderTree();
46     ~DumpRenderTree();
47
48     // Initialize in multi-file mode, used by run-webkit-tests.
49     void open();
50
51     // Initialize in single-file mode.
52     void open(const KURL& url);
53    
54 public Q_SLOTS:
55     void readStdin(int);
56     void checkLoaded();
57
58 private:
59     friend class DumpRenderTreeClient;
60
61     FrameQt* frame() const;
62
63 private:
64     void readSkipFile();
65  
66     FrameQt* m_frame;
67     DumpRenderTreeClient* m_client;
68
69     QTextStream* m_stdin;
70     QSocketNotifier* m_notifier;
71
72     // To be skipped tests
73     QList<QString> m_skipped;
74 };
75
76 }
77
78 #endif