- add sources.
[platform/framework/web/crosswalk.git] / src / android_webview / javatests / src / org / chromium / android_webview / test / util / ImagePageGenerator.java
1 // Copyright (c) 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 org.chromium.net.test.util.TestWebServer;
8
9 // The purpose of the generator is to provide a sequence of distinct images
10 // to avoid caching side-effects.  As we don't need too many images, I've
11 // found it easier to hardcode image samples. It is possible to generate
12 // images on the fly, but it will require hooking up additional packages.
13 public class ImagePageGenerator {
14
15     public static final String IMAGE_LOADED_STRING = "1";
16     public static final String IMAGE_NOT_LOADED_STRING = "0";
17
18     private final static String[] COLORS = {
19         "AAAAIAAc3j0Ss", "AQABIAEayS9b0", "AgACIAIQ8BmAc", "AwADIAMW5wvJE",
20         "BAAEIAQZNWRTI", "BQAFIAUfInYaQ", "BgAGIAYVG0DB4", "BwAHIAcTDFKIg",
21         "CAAIIAgXCI+Rk", "CQAJIAkRH53Y8", "CgAKIAobJqsDU", "CwALIAsdMblKM",
22         "DAAMIAwS49bQA", "DQANIA0U9MSZY", "DgAOIA4ezfJCw", "DwAPIA8Y2uALo",
23         "D+AQAA/9vaUwc", "D/AQEBANNhzkw"
24     };
25
26     private final static String IMAGE_PREFIX = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA" +
27             "6fptVAAAAAXNSR0IArs4c6QAAAA1JREFUCB0BAgD9/w";
28
29     private final static String IMAGE_SUFFIX = "AAAAASUVORK5CYII=";
30
31     private int mIndex;
32     private final boolean mAdvance;
33
34     public ImagePageGenerator(int startIndex, boolean advance) {
35         mIndex = startIndex;
36         mAdvance = advance;
37     }
38
39     public String getImageSourceNoAdvance() {
40         return IMAGE_PREFIX + COLORS[mIndex] + IMAGE_SUFFIX;
41     }
42
43     public String getPageTemplateSource(String imageSrc) {
44         return CommonResources.getOnImageLoadedHtml(imageSrc);
45     }
46
47     public String getPageSource() {
48         String result =
49                 getPageTemplateSource("data:image/png;base64," + getImageSourceNoAdvance());
50         if (mAdvance) mIndex += 2;
51         return result;
52     }
53
54     public String getPageUrl(TestWebServer webServer) {
55         final String imagePath = "/image_" + mIndex + ".png";
56         final String pagePath = "/html_image_" + mIndex + ".html";
57         webServer.setResponseBase64(imagePath, getImageSourceNoAdvance(),
58                 CommonResources.getImagePngHeaders(false));
59         if (mAdvance) mIndex += 2;
60         return webServer.setResponse(pagePath, getPageTemplateSource(imagePath), null);
61     }
62 }