b5869e86972828525470e0b86b311f80629b488d
[WebKit-https.git] / WebKitTools / DumpRenderTree / DumpRenderTree.vcproj / DumpRenderTree / DumpRenderTree.cpp
1 /*
2  * Copyright (C) 2005, 2006 Apple Computer, Inc.  All rights reserved.
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 #include "config.h"
30 #include "FrameWin.h"
31 #include "FrameView.h"
32 #include "Page.h"
33 #include "render_frames.h"
34 #include "DocumentImpl.h"
35 #include "markup.h"
36 #include "KWQRenderTreeDebug.h"
37
38 #include <io.h>
39 #include <fcntl.h>
40 #include <direct.h>
41
42 using namespace WebCore;
43
44 #define LOCAL_FILE_TEST 0
45
46 int main(int argc, char* argv[])
47 {
48     Page* page = new Page();
49     FrameWin* frame = new FrameWin(page, 0);
50     FrameView* frameView = new FrameView(frame);
51     frame->setView(frameView);
52     
53     frame->begin();
54
55 #if LOCAL_FILE_TEST
56     char* path = "c:\\cygwin\\tmp\\test.html";
57     FILE* file = fopen(path, "rb");
58     if (!file) {
59         printf("Failed to open file: %s\n", path);
60         printf("Current path: %s\n", _getcwd(0,0));
61         while(1);
62         exit(1);
63     }
64
65     char buffer[4000];
66     int newBytes = 0;
67     while ((newBytes = fread(buffer, 1, 4000, file)) > 0) {
68         frame->write(buffer, newBytes);
69     }
70     fclose(file);
71 #else
72     frame->write("<html><body><p>hello world</p></body></html>");
73 #endif
74     frame->end();
75
76     QString markup = createMarkup(frame->document());
77     printf("Source:\n\n%s", markup.ascii());
78     
79     QString renderDump = externalRepresentation(frame->renderer());
80     printf("\n\nRenderTree:\n\n%s", renderDump.ascii());
81     fflush(stdout);
82     while(1);
83     return 0;
84 }