• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  // Copyright 2012 The Chromium Authors. All rights reserved.
2  // Use of this source code is governed by a BSD-style license that can be
3  // found in the LICENSE file.
4  
5  package org.chromium.android_webview.test.util;
6  
7  import android.util.Pair;
8  
9  import java.util.ArrayList;
10  import java.util.List;
11  
12  /**
13   * Auxiliary class providing common HTML and base64 resources using for testing.
14   */
15  public class CommonResources {
16  
17      // Content-type headers used for HTML code.
getTextHtmlHeaders(boolean disableCache)18      public static List<Pair<String, String>> getTextHtmlHeaders(boolean disableCache) {
19          return getContentTypeAndCacheHeaders("text/html", disableCache);
20      }
21  
22      // Content-type headers used for javascript code.
getTextJavascriptHeaders(boolean disableCache)23      public static List<Pair<String, String>> getTextJavascriptHeaders(boolean disableCache) {
24          return getContentTypeAndCacheHeaders("text/javascript", disableCache);
25      }
26  
27      // Content-type headers used for png images.
getImagePngHeaders(boolean disableCache)28      public static List<Pair<String, String>> getImagePngHeaders(boolean disableCache) {
29          return getContentTypeAndCacheHeaders("image/png", disableCache);
30      }
31  
getContentTypeAndCacheHeaders( String contentType, boolean disableCache)32      public static List<Pair<String, String>> getContentTypeAndCacheHeaders(
33              String contentType, boolean disableCache) {
34          List<Pair<String, String>> headers = new ArrayList<Pair<String, String>>();
35          headers.add(Pair.create("Content-Type", contentType));
36          if (disableCache) headers.add(Pair.create("Cache-Control", "no-store"));
37          return headers;
38      }
39  
40      // Returns the HTML code used to verify if an image has been successfully loaded.
getOnImageLoadedHtml(String imageSrc)41      public static String getOnImageLoadedHtml(String imageSrc) {
42          return "<html>" +
43                 "  <head>" +
44                 "    <script>" +
45                 "      function updateTitle() {" +
46                 "        document.title=document.getElementById('img').naturalHeight" +
47                 "      }" +
48                 "    </script>" +
49                 "  </head>" +
50                 "  <body onload='updateTitle();'>" +
51                 "    <img id='img' onload='updateTitle();' src='" + imageSrc + "'>" +
52                 "  </body>" +
53                 "</html>";
54      }
55  
56      // Default name for the favicon image.
57      public static final String FAVICON_FILENAME = "favicon.png";
58  
59      // HTML code of a static simple page with a favicon.
60      public static final String FAVICON_STATIC_HTML =
61          "<html><head><link rel=\"icon\" type=\"image/png\" href=\"" + FAVICON_FILENAME + "\">" +
62          "</head><body>Favicon example</body></html>";
63  
64      // Base64 data of a favicon image resource.
65      public static final String FAVICON_DATA_BASE64 =
66          "iVBORw0KGgoAAAANSUhEUgAAABAAAAAFCAYAAABM6GxJAAAABHNCSVQICAgIfAhkiAAAASJJREFU" +
67          "GJU9yDtLQnEYwOHfOZ40L3gZDJKgJCKaamvpGzS09wUaormh7xA0S5C0ZDTkZJsNUltkkpAUZkIX" +
68          "L3g9FzzH/9vm9vAgoqRUGUu20JHTXFfafUdERJSIKJnOPFUTERHpqIYclY5nb2QKFumky95OlO+W" +
69          "TSgATqOO5k3xr6ZxelXmDFDhdaqfLkPRWQglULaN/V5DPzl3iIb9xCI+Eskog/wdyhowLlb4vThE" +
70          "giF8zRsurx55beg8lMfMezZW9hqz20M/Owhwe2/yUrPI5Ds8//mRehN7JYWxvIX6eWJkbLK9laL8" +
71          "ZrKxFETzxTBNB5SOJjKV/mhCq+uSjGvE4hHc4QA9YGAEwnhWF1ePkCtOWFv0+PiasL8bR3QDr93h" +
72          "HyFup9LWUksHAAAAAElFTkSuQmCC";
73  
74      // Default name for an example 'about' HTML page.
75      public static final String ABOUT_FILENAME = "about.html";
76  
77      // Title used in the 'about' example.
78      public static final String ABOUT_TITLE = "About the Google";
79  
80      // HTML code of an 'about' example.
81      public static final String ABOUT_HTML =
82          "<html>" +
83          "  <head>" +
84          "    <title>" + ABOUT_TITLE + "</title>" +
85          "  </head>" +
86          "  <body>" +
87          "    This is the Google!" +
88          "  </body>" +
89          "</html>";
90  
makeHtmlPageFrom(String headers, String body)91      public static String makeHtmlPageFrom(String headers, String body) {
92          return "<html>" +
93                   "<head>" +
94                       "<style type=\"text/css\">" +
95                           // Make the image take up all of the page so that we don't have to do
96                           // any fancy hit target calculations when synthesizing the touch event
97                           // to click it.
98                           "img.big { width:100%; height:100%; background-color:blue; }" +
99                           ".full_view { height:100%; width:100%; position:absolute; }" +
100                       "</style>" +
101                       headers +
102                   "</head>" +
103                   "<body>" +
104                       body +
105                   "</body>" +
106               "</html>";
107      }
108  
makeHtmlPageWithSimpleLinkTo(String headers, String destination)109      public static String makeHtmlPageWithSimpleLinkTo(String headers, String destination) {
110          return makeHtmlPageFrom(headers,
111                          "<a href=\"" + destination + "\" id=\"link\">" +
112                             "<img class=\"big\" />" +
113                          "</a>");
114      }
115  
makeHtmlPageWithSimpleLinkTo(String destination)116      public static String makeHtmlPageWithSimpleLinkTo(String destination) {
117          return makeHtmlPageWithSimpleLinkTo("", destination);
118      }
119  
makeHtmlPageWithSimplePostFormTo(String destination)120      public static String makeHtmlPageWithSimplePostFormTo(String destination) {
121          return makeHtmlPageFrom("",
122                  "<form action=\"" + destination + "\" method=\"post\">" +
123                    "<input type=\"submit\" value=\"post\" id=\"link\">" +
124                  "</form>");
125      }
126  }
127