LayoutTestsAutoTest.java revision f013e1afd1e68af5e3b868c26a653bbfb39538f8
1/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.dumprendertree;
18
19import android.app.Instrumentation;
20import android.app.Instrumentation.ActivityMonitor;
21import android.content.ContentResolver;
22import android.content.ContentValues;
23import android.util.Log;
24import android.view.KeyEvent;
25
26import android.test.ActivityInstrumentationTestCase;
27import android.test.AndroidTestCase;
28import android.test.suitebuilder.annotation.LargeTest;
29
30import com.android.dumprendertree.HTMLHostActivity;
31
32public class LayoutTestsAutoTest extends ActivityInstrumentationTestCase<Menu> {
33
34    private final static String LOGTAG = "LayoutTests";
35    private final static String LAYOUT_TESTS_ROOT = "/sdcard/android/layout_tests/";
36
37    public LayoutTestsAutoTest() {
38      super("com.android.dumprendertree", Menu.class);
39    }
40
41    // Invokes running of layout tests
42    // and waits till it has finished running.
43    public void executeLayoutTests(String folder) {
44      Instrumentation inst = getInstrumentation();
45      getActivity().processFile(folder, true);
46
47      ActivityMonitor htmlHostActivityMonitor =
48          inst.addMonitor("com.android.dumprendertree.HTMLHostActivity", null, false);
49      HTMLHostActivity activity =
50          (HTMLHostActivity) htmlHostActivityMonitor.waitForActivityWithTimeout(6000);
51
52      while (!activity.hasFinishedRunning()) {
53          // Poll every 5 seconds to determine if the layout
54          // tests have finished running
55          try {Thread.sleep(5000); } catch(Exception e){}
56      }
57
58      // Wait few more seconds so that results are
59      // flushed to the /sdcard
60      try {Thread.sleep(5000); } catch(Exception e){}
61
62      return ;
63    }
64
65    // Running all the layout tests at once sometimes
66    // causes the dumprendertree to run out of memory.
67    // So, additional tests are added to run the tests
68    // in chunks.
69    @LargeTest
70    public void testAllLayoutTests() {
71      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast");
72    }
73
74    @LargeTest
75    public void testLayoutSubset1() {
76      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/backgrounds");
77      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/borders");
78      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/box-shadow");
79      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/box-sizing");
80      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/canvas");
81    }
82
83    @LargeTest
84    public void testLayoutSubset2() {
85      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/clip");
86      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/compact");
87      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/cookies");
88      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/css");
89      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/css-generated-content");
90      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/doctypes");
91    }
92
93    @LargeTest
94    public void testLayoutSubset3() {
95      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/dom");
96      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/dynamic");
97      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/encoding");
98      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/events");
99      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/flexbox");
100    }
101
102    @LargeTest
103    public void testLayoutSubset4() {
104      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/forms");
105      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/frames");
106      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/gradients");
107      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/history");
108      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/html");
109    }
110
111    @LargeTest
112    public void testLayoutSubset5() {
113      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/images");
114      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/inline");
115      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/inline-block");
116      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/innerHTML");
117      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/invalid");
118    }
119
120    @LargeTest
121    public void testLayoutSubset6() {
122      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/js");
123      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/layers");
124      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/leaks");
125      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/lists");
126      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/loader");
127      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/media");
128    }
129
130    @LargeTest
131    public void testLayoutSubset7() {
132      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/multicol");
133      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/overflow");
134      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/parser");
135      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/profiler");
136      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/reflections");
137      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/regex");
138    }
139
140    @LargeTest
141    public void testLayoutSubset8() {
142      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/repaint");
143      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/replaced");
144      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/runin");
145      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/selectors");
146      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/table");
147      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/text");
148    }
149
150    @LargeTest
151    public void testLayoutSubset9() {
152      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/tokenizer");
153      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/transforms");
154      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/xpath");
155      executeLayoutTests(LAYOUT_TESTS_ROOT + "fast/xsl");
156    }
157}
158