AbstractResult.java revision 7ddc0b7a72aa66d699fecce3d855a6c70f844647
13c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski/* 23c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * Copyright (C) 2010 The Android Open Source Project 33c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * 43c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * Licensed under the Apache License, Version 2.0 (the "License"); 53c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * you may not use this file except in compliance with the License. 63c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * You may obtain a copy of the License at 73c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * 83c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * http://www.apache.org/licenses/LICENSE-2.0 93c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * 103c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * Unless required by applicable law or agreed to in writing, software 113c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * distributed under the License is distributed on an "AS IS" BASIS, 123c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * See the License for the specific language governing permissions and 143c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * limitations under the License. 153c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski */ 163c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 173c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowskipackage com.android.dumprendertree2; 183c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 197ddc0b7a72aa66d699fecce3d855a6c70f844647Maksymilian Osowskiimport android.os.Bundle; 204ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowskiimport android.os.Message; 214ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowskiimport android.webkit.WebView; 224ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski 233c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski/** 243c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * A class that represent a result of the test. It is responsible for returning the result's 253c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * raw data and generating its own diff in HTML format. 263c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski */ 273c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowskipublic abstract class AbstractResult { 283c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 293c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski public enum TestType { 303c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski TEXT, 313c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski PIXEL 323c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski } 333c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 343c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski public enum ResultCode { 353c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski PASS("Passed"), 363c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski FAIL_RESULT_DIFFERS("Failed: different results"), 373c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski FAIL_NO_EXPECTED_RESULT("Failed: no expected result"), 383c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski FAIL_TIMED_OUT("Failed: timed out"), 393c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski FAIL_CRASHED("Failed: crashed"); 403c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 413c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski private String mTitle; 423c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 433c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski private ResultCode(String title) { 443c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski mTitle = title; 453c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski } 463c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 473c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski @Override 483c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski public String toString() { 493c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski return mTitle; 503c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski } 513c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski } 523c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 533c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski /** 547ddc0b7a72aa66d699fecce3d855a6c70f844647Maksymilian Osowski * Makes the result object obtain the results of the test from the webview 557ddc0b7a72aa66d699fecce3d855a6c70f844647Maksymilian Osowski * and store them in the format that suits itself bests. This method is asynchronous. 564ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * The message passed as a parameter is a message that should be sent to its target 574ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * when the result finishes obtaining the result. 584ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * 594ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * @param webview 604ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * @param resultObtainedMsg 614ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski */ 627ddc0b7a72aa66d699fecce3d855a6c70f844647Maksymilian Osowski public abstract void obtainActualResults(WebView webview, Message resultObtainedMsg); 634ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski 644ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski public abstract void setExpectedImageResult(byte[] expectedResult); 654ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski 664ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski public abstract void setExpectedTextResult(String expectedResult); 674ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski 684ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski /** 694ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * Returns result's image data that can be written to the disk. It can be null 704ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * if there is an error of some sort or for example the test times out. 714ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * 724ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * <p> Some tests will not provide data (like text tests) 734ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * 744ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * @return 754ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * results image data 764ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski */ 774ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski public abstract byte[] getActualImageResult(); 784ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski 794ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski /** 804ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * Returns result's text data. It can be null 814ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * if there is an error of some sort or for example the test times out. 823c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * 833c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * @return 844ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski * results text data 853c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski */ 864ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski public abstract String getActualTextResult(); 873c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 883c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski /** 893c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * Returns the code of this result. 903c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * 913c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * @return 923c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * the code of this result 933c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski */ 944ee7f4b19489f4dc9b87e90d1e5c7742cfa7ebe0Maksymilian Osowski public abstract ResultCode getResultCode(); 953c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 963c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski /** 973c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * Return the type of the result data. 983c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * 993c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * @return 1003c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * the type of the result data. 1013c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski */ 1023c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski public abstract TestType getType(); 1033c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski 1043c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski /** 1053c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * Returns a piece of HTML code that presents a visual diff between a result and 1063c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * the expected result. 1073c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * 1083c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * @return 1093c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski * a piece of HTML code with a visual diff between the result and the expected result 1103c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski */ 1113c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski public abstract String getDiffAsHtml(); 1127ddc0b7a72aa66d699fecce3d855a6c70f844647Maksymilian Osowski 1137ddc0b7a72aa66d699fecce3d855a6c70f844647Maksymilian Osowski public abstract Bundle getBundle(); 1143c8ccb384513dd9bae0f98ac516ea36fbaa3173bMaksymilian Osowski}