1 38 package com.gargoylesoftware.htmlunit.javascript.host; 39 40 import java.util.ArrayList; 41 import java.util.Arrays; 42 import java.util.List; 43 44 import com.gargoylesoftware.htmlunit.CollectingAlertHandler; 45 import com.gargoylesoftware.htmlunit.MockWebConnection; 46 import com.gargoylesoftware.htmlunit.WebClient; 47 import com.gargoylesoftware.htmlunit.WebTestCase; 48 49 55 public class IFrameTest extends WebTestCase { 56 57 61 public IFrameTest( final String name ) { 62 super(name); 63 } 64 65 66 69 public void testStyle() throws Exception { 70 final String content 71 = "<html><head><title>First</title><script>\n" 72 + "function doTest() {\n" 73 + " alert(document.getElementById('myIFrame').style == undefined);\n" 74 + "}\n</script></head>" 75 + "<body onload='doTest()'>" 76 + "<iframe id='myIFrame' SRC='about:blank'></iframe></body></html>"; 77 78 final List collectedAlerts = new ArrayList(); 79 loadPage(content, collectedAlerts); 80 final List expectedAlerts = Arrays.asList( new String[]{"false"} ); 81 createTestPageForRealBrowserIfNeeded(content, expectedAlerts); 82 assertEquals( expectedAlerts, collectedAlerts ); 83 } 84 85 88 public void testReferenceFromJavaScript() throws Exception { 89 final String content 90 = "<html><head><title>First</title><script>\n" 91 + "function doTest() {\n" 92 + " alert(window.frames.length);\n" 93 + " alert(window.frames['myIFrame'].name);\n" 94 + "}\n</script></head>" 95 + "<body onload='doTest()'>" 96 + "<iframe name='myIFrame' SRC='about:blank'></iframe></body></html>"; 97 98 final List collectedAlerts = new ArrayList(); 99 loadPage(content, collectedAlerts); 100 final List expectedAlerts = Arrays.asList( new String[]{"1", "myIFrame"} ); 101 createTestPageForRealBrowserIfNeeded(content, expectedAlerts); 102 assertEquals( expectedAlerts, collectedAlerts ); 103 } 104 105 109 public void testOnLoadGetsIFrameElementByIdInParent() throws Exception { 110 final String firstContent 111 = "<html><head><title>First</title></head>" 112 + "<body>" 113 + "<iframe id='myIFrame' SRC='frame.html'></iframe></body></html>"; 114 115 final String frameContent 116 = "<html><head><title>Frame</title><script>\n" 117 + "function doTest() {\n" 118 + " alert(parent.document.getElementById('myIFrame').tagName);\n" 119 + "}\n</script></head>" 120 + "<body onload='doTest()'>" 121 + "</body></html>"; 122 123 final WebClient webClient = new WebClient(); 124 final MockWebConnection webConnection = 125 new MockWebConnection(webClient); 126 127 webConnection.setDefaultResponse(frameContent); 128 webConnection.setResponse(URL_FIRST, firstContent); 129 webClient.setWebConnection(webConnection); 130 131 final List collectedAlerts = new ArrayList(); 132 webClient.setAlertHandler(new CollectingAlertHandler(collectedAlerts)); 133 134 final List expectedAlerts = Arrays.asList( new String[]{"IFRAME"} ); 135 webClient.getPage(URL_FIRST); 136 assertEquals( expectedAlerts, collectedAlerts ); 137 } 138 } 139 | Popular Tags |