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