/** * Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com) * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.gistlabs.mechanize; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.junit.Test; import com.gistlabs.mechanize.impl.DefaultResource; import com.gistlabs.mechanize.impl.MechanizeAgent; import com.gistlabs.mechanize.parameters.Parameters; /** * @author Martin Kersten<Martin.Kersten.mk@gmail.com> */ public class MechanizeAgentIntTest extends MechanizeTestCase { static final String firefoxUserAgent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.1) Gecko/20100122 firefox/3.6.1"; protected Mechanize agent() { return new MechanizeAgent().setUserAgent(firefoxUserAgent); } @Test public void testPostMethod() { Mechanize agent = agent(); Parameters parameters = new Parameters().add("param1", "value").add("param2", "value2"); Resource page = agent.post("http://posttestserver.com/post.php", parameters); String pageString = page.asString(); assertTrue(pageString.contains(" Successfully dumped 2 post variables")); } @Test public void testDownloadToImage() throws IOException { String wikipediaLogoUri = "http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png"; BufferedImage image = ImageIO.read(agent().get(wikipediaLogoUri).getInputStream()); assertEquals(200, image.getWidth()); assertEquals(200, image.getHeight()); } @Test public void testDownloadToFile() throws Exception { String wikipediaLogoUri = "http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png"; File file = File.createTempFile("mechanize", ".png"); file.delete(); agent().get(wikipediaLogoUri).saveTo(file); assertEquals(45283, file.length()); file.delete(); } @Test public void testDownloadPage() throws Exception { String wikipediaLogoUri = "http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png"; File file = File.createTempFile("mechanize", ".png"); file.delete(); Resource page = agent().get(wikipediaLogoUri); assertTrue(page instanceof DefaultResource); assertEquals("image/png", page.getContentType()); page.saveTo(file); assertEquals(45283, file.length()); file.delete(); // in here my copied stream doesn't get the right bytes... page.saveTo(file); assertEquals(45283, file.length()); file.delete(); } }