blob: e7f13e8aeef4757a169dc417b950c16c952e2ee0 [file] [log] [blame]
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package tests.support;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Date;
/**
* Represents test data used by the Request API tests
*/
public class Support_TestWebData {
public final static byte[] test1 = utfBytes();
public final static byte[] test2 = newBinaryFile(8192);
// Although the tests report the content length of this file as being large, a file is created
// that is much shorter. Actually creating a large file is not practical during tests. This
// file should only be used for checking header information.
private static final long TEST_3_CONTENT_LENGTH = ((long) Integer.MAX_VALUE) + 1;
public final static byte[] test3 = newBinaryFile(3);
private static byte[] utfBytes() {
try {
return "<html>\n<body>\n<h1>Hello World!</h1>\n</body>\n</html>\n".getBytes("UTF-8");
} catch (UnsupportedEncodingException ex) {
throw new AssertionError();
}
}
private static byte[] newBinaryFile(int byteCount) {
byte[] result = new byte[byteCount];
for (int i = 0; i < result.length; ++i) {
result[i] = (byte) i;
}
return result;
}
// string for test request post body
public final static String postContent = "user=111";
// Array of all test data
public final static byte[][] tests = {
test1,
test2,
test3,
};
/**
* List of static test cases for use with test server
*/
public static Support_TestWebData[] testParams = {
new Support_TestWebData(test1.length, 14000000, "test1", "text/html", false, 0),
new Support_TestWebData(test2.length, 14000002, "test2", "unknown/unknown", false,
new Date().getTime() + 100000),
new Support_TestWebData(TEST_3_CONTENT_LENGTH, 14000004, "test3", "unknown/unknown", false,
new Date().getTime() + 100000),
};
/**
* List of response strings for use by the test server
*/
public static String[] testServerResponse = {
"Redirecting 301",
"Redirecting 302",
"Redirecting 303",
"Redirecting 307"
};
// Redirection indices into testServerResponse
public final static int REDIRECT_301 = 0;
public final static int REDIRECT_302 = 1;
public final static int REDIRECT_303 = 2;
public final static int REDIRECT_307 = 3;
/**
* Creates a data package with information used by the server when responding
* to requests
*/
Support_TestWebData(long length, int lastModified, String name, String type, boolean isDir, long expDate) {
testLength = length;
testLastModified = lastModified;
testName = name;
testType = type;
testDir = isDir;
testExp = expDate;
}
/**
* Creates a data package with information used by the server when responding
* to requests
*/
private Support_TestWebData(String path, String type) {
File file = new File(path);
testLength = file.length();
testLastModified = file.lastModified();
testName = file.getName();
testType = type;
testDir = file.isDirectory();
ByteArrayOutputStream out = new ByteArrayOutputStream();
FileInputStream in = null;
try {
in = new FileInputStream(file);
while (in.available() > 0) {
out.write(in.read());
}
in.close();
out.flush();
test0Data = out.toByteArray();
out.close();
test0DataAvailable = true;
return;
} catch (Exception e) {
// ignore
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
// ignore
}
}
}
public static void initDynamicTestWebData(String path, String type) {
test0Params = new Support_TestWebData(path, type);
}
// Length of test entity body
public long testLength;
// Last modified date value (milliseconds)
public long testLastModified;
// Test identification name
public String testName;
// The MIME type to assume for this test
public String testType;
// The expiration date
public long testExp;
// Indicates if this is a directory or not
public boolean testDir;
// Indicate if test0 data has bin initialized
public static boolean test0DataAvailable = false;
// test0 data
public static byte[] test0Data;
// test0 parameters
public static Support_TestWebData test0Params;
}