blob: ef0a72dcf0514756a309767c5b5864b49f64ae57 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.android_webview.test.util;
import org.chromium.net.test.util.TestWebServer;
// The purpose of the generator is to provide a sequence of distinct images
// to avoid caching side-effects. As we don't need too many images, I've
// found it easier to hardcode image samples. It is possible to generate
// images on the fly, but it will require hooking up additional packages.
public class ImagePageGenerator {
public static final String IMAGE_LOADED_STRING = "1";
public static final String IMAGE_NOT_LOADED_STRING = "0";
private final static String[] COLORS = {
"AAAAIAAc3j0Ss", "AQABIAEayS9b0", "AgACIAIQ8BmAc", "AwADIAMW5wvJE",
"BAAEIAQZNWRTI", "BQAFIAUfInYaQ", "BgAGIAYVG0DB4", "BwAHIAcTDFKIg",
"CAAIIAgXCI+Rk", "CQAJIAkRH53Y8", "CgAKIAobJqsDU", "CwALIAsdMblKM",
"DAAMIAwS49bQA", "DQANIA0U9MSZY", "DgAOIA4ezfJCw", "DwAPIA8Y2uALo",
"D+AQAA/9vaUwc", "D/AQEBANNhzkw"
};
private final static String IMAGE_PREFIX = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA" +
"6fptVAAAAAXNSR0IArs4c6QAAAA1JREFUCB0BAgD9/w";
private final static String IMAGE_SUFFIX = "AAAAASUVORK5CYII=";
private int mIndex;
private final boolean mAdvance;
public ImagePageGenerator(int startIndex, boolean advance) {
mIndex = startIndex;
mAdvance = advance;
}
public String getImageSourceNoAdvance() {
return IMAGE_PREFIX + COLORS[mIndex] + IMAGE_SUFFIX;
}
public String getPageTemplateSource(String imageSrc) {
return CommonResources.getOnImageLoadedHtml(imageSrc);
}
public String getPageSource() {
String result =
getPageTemplateSource("data:image/png;base64," + getImageSourceNoAdvance());
if (mAdvance) mIndex += 2;
return result;
}
public String getPageUrl(TestWebServer webServer) {
final String imagePath = "/image_" + mIndex + ".png";
final String pagePath = "/html_image_" + mIndex + ".html";
webServer.setResponseBase64(imagePath, getImageSourceNoAdvance(),
CommonResources.getImagePngHeaders(false));
if (mAdvance) mIndex += 2;
return webServer.setResponse(pagePath, getPageTemplateSource(imagePath), null);
}
}