package com.crawljax.browser; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.IOException; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import com.crawljax.core.CrawljaxException; import com.crawljax.test.BrowserTest; import com.crawljax.test.RunWithWebServer; import com.crawljax.util.DomUtils; import com.google.common.collect.ImmutableSortedSet; @Category(BrowserTest.class) public class WebDriverBackedEmbeddedBrowserTest { @ClassRule public static final RunWithWebServer SERVER = new RunWithWebServer( "/site/iframe"); @Rule public final BrowserProvider provider = new BrowserProvider(); @Test public void testGetDocument() throws Exception { // TODO Stefan; refactor out the direct use of the FirefoxDriver WebDriverBackedEmbeddedBrowser browser = WebDriverBackedEmbeddedBrowser .withDriver(provider.newBrowser(), ImmutableSortedSet.<String> of(), 100, 100); Document doc; browser.goToUrl(SERVER.getSiteUrl()); doc = DomUtils.asDocument(browser.getStrippedDom()); NodeList frameNodes = doc.getElementsByTagName("IFRAME"); assertEquals(2, frameNodes.getLength()); doc = DomUtils.asDocument(browser.getStrippedDomWithoutIframeContent()); frameNodes = doc.getElementsByTagName("IFRAME"); assertEquals(2, frameNodes.getLength()); } @Test public void saveScreenShot() throws CrawljaxException, IOException { // TODO Stefan; refactor out the direct use of the FirefoxDriver WebDriverBackedEmbeddedBrowser browser = WebDriverBackedEmbeddedBrowser .withDriver(provider.newBrowser(), ImmutableSortedSet.<String> of(), 500, 500); File f = File .createTempFile("webdriverfirefox-test-screenshot", ".png"); if (!f.exists()) { browser.goToUrl(SERVER.getSiteUrl()); browser.saveScreenShot(f); assertTrue(f.exists()); assertTrue(f.delete()); } } }