package com.canoo.webtest.extension;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.ArrayUtils;
import com.canoo.webtest.boundary.FileBoundary;
import junit.framework.TestCase;
/**
* Test for {@link VerifyContentBinDiff}.
*
* @author Marc Guillemot
*/
public class VerifyContentBinDiffTest extends TestCase
{
public void testMessage() throws Exception
{
final File file1 = FileBoundary.getFile("/testDocForms.pdf", getClass());
final byte[] bytes1 = FileUtils.readFileToByteArray(file1);
final File file2 = FileBoundary.getFile("/testDocFormsSecure.pdf", getClass());
final byte[] bytes2 = FileUtils.readFileToByteArray(file2);
final VerifyContentBinDiff diff = new VerifyContentBinDiff();
assertEquals("First difference at position 17: 32312030206f626a0d3c <> 33352030206f626a0d3c",
diff.produceBinDiffMessage(bytes1, bytes2));
}
public void testMessageReachTheEnd() throws Exception
{
final byte[] additional = {35, -103, 94, 87, -22, 1, 12, 127, -65, -74};
final byte[] bytes1 = new byte[56];
for (int i = 0; i < bytes1.length; i++)
{
final double rnd = Math.random();
bytes1[i] = (byte) (Math.floor(256 * rnd) - 128);
}
final byte[] bytes2 = ArrayUtils.addAll(bytes1, additional);
final VerifyContentBinDiff diff = new VerifyContentBinDiff();
assertEquals("Reference binary content starts with actual binary content. Longer content continues with: 23995e57ea010c7fbfb6",
diff.produceBinDiffMessage(bytes1, bytes2));
assertEquals("Actual binary content starts with reference binary content. Longer content continues with: 23995e57ea010c7fbfb6",
diff.produceBinDiffMessage(bytes2, bytes1));
}
}